docs: Add vue3 + bun community playground#1130
Conversation
|
@hunterwilhelm is attempting to deploy a commit to the unnoq-team Team on Vercel. A member of the Team first needs to authorize it. |
|
Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. WalkthroughPlaygrounds documentation updated: table header/spacing adjusted to three columns; a new "Vue + Bun + Monorepo (Community)" playground row and GitHub source link were added; local development instructions include a new Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes
Possibly related PRs
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary of ChangesHello @hunterwilhelm, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces a new playground that showcases the integration of oRPC with a modern web stack consisting of Vue 3 for the frontend and Bun for the backend. The playground provides a functional example of how to build a full-stack application using these technologies, covering common patterns like authentication, data management, and real-time updates via Server-Sent Events. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
More templates
@orpc/arktype
@orpc/client
@orpc/contract
@orpc/experimental-durable-iterator
@orpc/hey-api
@orpc/interop
@orpc/json-schema
@orpc/nest
@orpc/openapi
@orpc/openapi-client
@orpc/otel
@orpc/experimental-publisher
@orpc/react
@orpc/react-query
@orpc/experimental-react-swr
@orpc/server
@orpc/shared
@orpc/solid-query
@orpc/standard-server
@orpc/standard-server-aws-lambda
@orpc/standard-server-fetch
@orpc/standard-server-node
@orpc/standard-server-peer
@orpc/svelte-query
@orpc/tanstack-query
@orpc/trpc
@orpc/valibot
@orpc/vue-colada
@orpc/vue-query
@orpc/zod
commit: |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Code Review
This pull request introduces a new playground for Vue 3 with Bun, which is a great addition. The overall structure is well-organized into front-end and back-end packages. However, I've found several issues that should be addressed. There are critical problems with package dependencies, specifically an invalid version for zod that will break installation. I've also noted some correctness issues in the backend, such as unsafe ID generation and unhandled errors that could crash the server. Additionally, there are some maintainability and documentation improvements, like using more descriptive package names and ensuring README files are accurate. Please review the detailed comments for suggestions on how to resolve these issues.
There was a problem hiding this comment.
Actionable comments posted: 11
🧹 Nitpick comments (15)
playgrounds/vue-bun/packages/back/tsconfig.json (1)
1-103: Well-configured TypeScript setup for Bun backend.The configuration is solid for a Bun-based backend. Key strengths: Bun-specific setup (bundler module resolution and
bun-types), strict mode enabled, appropriate ES2021/ES2022 target-module pairing, andforceConsistentCasingInFileNamesfor import consistency.Consider enabling these optional improvements if applicable to your project:
Path aliases (Line 32): If your backend grows, path aliases can improve import ergonomics. Uncomment or configure
"paths": { "@/*": ["src/*"] }as needed.Unused variable detection (Lines 88–89): For stricter code hygiene, uncomment
"noUnusedLocals": trueand"noUnusedParameters": trueto catch dead code early.JSON imports (Line 41): If you load configuration or data files as JSON, uncomment
"resolveJsonModule": true.These are optional and depend on your project structure and team preferences.
playgrounds/vue-bun/.gitignore (1)
1-3: Consider adding build output and Bun-specific patterns.The existing patterns are appropriate for security and dependency management. However, for a Vue 3 + Bun project, consider adding patterns for build outputs and Bun-specific files:
dist/— Vue 3 build output (almost certainly generated and should not be committed).bun/— Bun package manager cache directory (if not already ignored at the repository root)- Common build artifacts:
.DS_Store,*.log, IDE folders (.idea/,.vscode/)Apply this diff to add commonly-needed patterns:
!.stackblitzrc node_modules .env* +dist +build +.bun +*.log +.DS_StoreNote: Verify whether these patterns should live in this
.gitignoreor in a root-level.gitignoreshared across the monorepo.playgrounds/vue-bun/tsconfig.json (1)
18-18: Consider enabling stricter property access from index signatures.Line 18 explicitly disables
noPropertyAccessFromIndexSignaturewhile"strict": trueis enabled elsewhere. This is a trade-off that loosens type safety for indexed property access. If this is intentional (e.g., to accommodate specific API patterns), document the reason; otherwise, consider aligning with the strict mode philosophy.playgrounds/vue-bun/packages/front/tsconfig.node.json (1)
4-4: Consider relocating the tsBuildInfo cache file.The
tsBuildInfoFileis currently set to./node_modules/.tmp/tsconfig.node.tsbuildinfo, which places the TypeScript build cache insidenode_modules. This is unconventional and may complicate.gitignorepatterns and CI/CD pipelines.Consider moving it to a local cache directory such as:
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "tsBuildInfoFile": "./.tsbuildinfo",Alternatively, if you prefer to keep caches separate from source:
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "tsBuildInfoFile": "./.tscache/node.tsbuildinfo",playgrounds/vue-bun/packages/back/package.json (1)
2-2: Consider using a more descriptive package name.The generic name "app" doesn't reflect that this is the backend package of the Vue + Bun playground.
Consider renaming to something like:
- "name": "app", + "name": "@orpc-playground/vue-bun-back",playgrounds/vue-bun/packages/front/package.json (2)
15-16: Use workspace protocol instead of "next" to avoid registry drift.Point internal deps to local workspaces for reproducible builds in the monorepo.
- "@orpc/client": "next", - "@orpc/tanstack-query": "next", + "@orpc/client": "workspace:*", + "@orpc/tanstack-query": "workspace:*",
1-34: Declare engines to match the toolchain (Node 22).Helps CI and contributors avoid version mismatches.
{ "name": "front", "type": "module", "version": "0.0.0", "private": true, + "engines": { + "node": ">=22" + }, "scripts": {playgrounds/vue-bun/packages/front/src/views/SignIn.vue (2)
28-29: Add input semantics (type and autocomplete) and required flags.Improves UX and password managers.
- <input v-model="email" placeholder="Email"> - <input v-model="password" type="password" placeholder="Password"> + <input v-model="email" type="email" autocomplete="email" required placeholder="Email"> + <input v-model="password" type="password" autocomplete="current-password" required placeholder="Password">
34-36: Show a useful error message.String(error) often yields “[object Object]”. Prefer error.message fallback.
- {{ String(error) }} + {{ (error && typeof error === 'object' && 'message' in error) ? (error as any).message : String(error) }}playgrounds/vue-bun/packages/front/src/views/CreatePlanet.vue (1)
19-21: Gate submit on valid input and mark fields required.Prevents empty-name requests and gives instant feedback.
-const { mutate, isPending, error } = useMutation(orpc.planet.create.mutationOptions({ +const { mutate, isPending, error } = useMutation(orpc.planet.create.mutationOptions({ onSuccess: () => { queryClient.invalidateQueries({ queryKey: orpc.planet.key() }) name.value = '' description.value = '' }, })) function onSubmit() { mutate({ name: name.value, description: description.value || undefined }) } </script> <template> <main style="padding: 1rem;"> <h2>Create Planet</h2> - <form style="display: grid; gap: .5rem; max-width: 320px;" @submit.prevent="onSubmit"> - <input v-model="name" placeholder="Name"> + <form style="display: grid; gap: .5rem; max-width: 320px;" @submit.prevent="onSubmit"> + <input v-model="name" placeholder="Name" required minlength="1"> <input v-model="description" placeholder="Description"> - <button type="submit" :disabled="isPending"> + <button type="submit" :disabled="isPending || !name.trim()"> {{ isPending ? 'Creating...' : 'Create' }} </button> </form>playgrounds/vue-bun/packages/front/src/views/Me.vue (2)
7-10: Prefer router navigation and cache clear over full reload.Avoiding location.reload() is smoother and preserves SPA state.
-function signout() { - localStorage.removeItem('token') - location.reload() -} +import { useRouter } from 'vue-router' +import { useQueryClient } from '@tanstack/vue-query' +const router = useRouter() +const qc = useQueryClient() +function signout() { + localStorage.removeItem('token') + qc.clear() + router.push('/signin') +}
24-26: Only show “Unauthorized” for 401; otherwise surface error details.Improves debuggability.
- <div v-else-if="isError"> - Unauthorized - </div> + <div v-else-if="isError"> + Unauthorized or failed to load profile + </div>playgrounds/vue-bun/packages/front/src/views/Planets.vue (1)
17-23: Handle empty list with a friendly state.Better UX when no planets exist.
- <ul v-else> - <li v-for="planet in data" :key="planet.id"> - <router-link :to="`/planets/${planet.id}`"> - {{ planet.name }} - </router-link> - </li> - </ul> + <div v-else> + <div v-if="Array.isArray(data) && data.length === 0"> + No planets yet. + </div> + <ul v-else> + <li v-for="planet in data" :key="planet.id"> + <router-link :to="`/planets/${planet.id}`"> + {{ planet.name }} + </router-link> + </li> + </ul> + </div>playgrounds/vue-bun/packages/back/src/schemas/user.ts (1)
6-10: Consider adding password validation.The password field accepts any string without constraints. For a more realistic demo, consider adding minimum length validation.
Apply this diff to add basic password validation:
export const NewUserSchema = z.object({ name: z.string(), email: z.string().email(), - password: z.string(), + password: z.string().min(8), })playgrounds/vue-bun/packages/back/src/schemas/planet.ts (1)
8-19: Consider validating image types instead of usingz.any().Lines 11 and 18 use
z.any()for theimagefield, which bypasses all validation and type safety. While this may be acceptable for a playground, it creates potential runtime errors (as seen in the db.ts type assertions) and security risks.Consider adding basic validation for the image field:
// Option 1: Validate as File object (for FormData uploads) image: z.instanceof(File).optional(), // Option 2: Validate as base64 string (for JSON uploads) image: z.string().optional(), // Option 3: Union type for flexibility image: z.union([z.instanceof(File), z.string()]).optional(),This would catch type errors at validation time rather than runtime and provide better type safety throughout the codebase.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (3)
playgrounds/vue-bun/packages/front/public/favicon.icois excluded by!**/*.icoplaygrounds/vue-bun/pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlpnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (37)
apps/content/docs/playgrounds.md(2 hunks)playgrounds/vue-bun/.gitignore(1 hunks)playgrounds/vue-bun/README.md(1 hunks)playgrounds/vue-bun/package.json(1 hunks)playgrounds/vue-bun/packages/back/package.json(1 hunks)playgrounds/vue-bun/packages/back/src/index.ts(1 hunks)playgrounds/vue-bun/packages/back/src/middlewares/db.ts(1 hunks)playgrounds/vue-bun/packages/back/src/orpc.ts(1 hunks)playgrounds/vue-bun/packages/back/src/router.ts(1 hunks)playgrounds/vue-bun/packages/back/src/routers/auth.ts(1 hunks)playgrounds/vue-bun/packages/back/src/routers/planet.ts(1 hunks)playgrounds/vue-bun/packages/back/src/routers/sse.ts(1 hunks)playgrounds/vue-bun/packages/back/src/schemas/planet.ts(1 hunks)playgrounds/vue-bun/packages/back/src/schemas/user.ts(1 hunks)playgrounds/vue-bun/packages/back/tsconfig.json(1 hunks)playgrounds/vue-bun/packages/front/.gitignore(1 hunks)playgrounds/vue-bun/packages/front/README.md(1 hunks)playgrounds/vue-bun/packages/front/env.d.ts(1 hunks)playgrounds/vue-bun/packages/front/index.html(1 hunks)playgrounds/vue-bun/packages/front/package.json(1 hunks)playgrounds/vue-bun/packages/front/src/App.vue(1 hunks)playgrounds/vue-bun/packages/front/src/lib/orpc.ts(1 hunks)playgrounds/vue-bun/packages/front/src/main.ts(1 hunks)playgrounds/vue-bun/packages/front/src/routes.ts(1 hunks)playgrounds/vue-bun/packages/front/src/views/CreatePlanet.vue(1 hunks)playgrounds/vue-bun/packages/front/src/views/Home.vue(1 hunks)playgrounds/vue-bun/packages/front/src/views/Me.vue(1 hunks)playgrounds/vue-bun/packages/front/src/views/PlanetDetail.vue(1 hunks)playgrounds/vue-bun/packages/front/src/views/Planets.vue(1 hunks)playgrounds/vue-bun/packages/front/src/views/SSE.vue(1 hunks)playgrounds/vue-bun/packages/front/src/views/SignIn.vue(1 hunks)playgrounds/vue-bun/packages/front/tsconfig.app.json(1 hunks)playgrounds/vue-bun/packages/front/tsconfig.json(1 hunks)playgrounds/vue-bun/packages/front/tsconfig.node.json(1 hunks)playgrounds/vue-bun/packages/front/vite.config.mts(1 hunks)playgrounds/vue-bun/pnpm-workspace.yaml(1 hunks)playgrounds/vue-bun/tsconfig.json(1 hunks)
🧰 Additional context used
🧬 Code graph analysis (9)
playgrounds/vue-bun/packages/back/src/orpc.ts (3)
playgrounds/vue-bun/packages/back/src/schemas/user.ts (1)
UserSchema(12-16)packages/server/src/builder.ts (1)
os(336-352)playgrounds/vue-bun/packages/back/src/middlewares/db.ts (1)
dbProviderMiddleware(14-19)
playgrounds/vue-bun/packages/back/src/routers/sse.ts (1)
packages/server/src/builder.ts (1)
os(336-352)
playgrounds/vue-bun/packages/back/src/schemas/planet.ts (1)
playgrounds/vue-bun/packages/back/src/schemas/user.ts (1)
UserSchema(12-16)
playgrounds/vue-bun/packages/back/src/router.ts (1)
playgrounds/vue-bun/packages/back/src/routers/planet.ts (4)
listPlanets(6-15)createPlanet(17-21)findPlanet(23-32)updatePlanet(34-44)
playgrounds/vue-bun/packages/back/src/routers/auth.ts (2)
playgrounds/vue-bun/packages/back/src/orpc.ts (2)
pub(10-12)authed(14-18)playgrounds/vue-bun/packages/back/src/schemas/user.ts (1)
UserSchema(12-16)
playgrounds/vue-bun/packages/front/src/lib/orpc.ts (3)
packages/server/src/router-client.ts (1)
RouterClient(15-20)playgrounds/vue-bun/packages/back/src/router.ts (1)
AppRouter(11-11)packages/client/src/client.ts (1)
createORPCClient(17-43)
playgrounds/vue-bun/packages/back/src/middlewares/db.ts (4)
playgrounds/vue-bun/packages/back/src/schemas/planet.ts (3)
Planet(6-6)NewPlanet(4-4)UpdatePlanet(5-5)playgrounds/vue-bun/packages/back/src/schemas/user.ts (1)
User(4-4)playgrounds/vue-bun/packages/back/src/routers/planet.ts (1)
updatePlanet(34-44)packages/server/src/builder.ts (1)
os(336-352)
playgrounds/vue-bun/packages/back/src/index.ts (2)
playgrounds/vue-bun/packages/back/src/router.ts (1)
router(5-9)packages/server/src/plugins/cors.ts (1)
CORSPlugin(23-118)
playgrounds/vue-bun/packages/back/src/routers/planet.ts (2)
playgrounds/vue-bun/packages/back/src/orpc.ts (2)
pub(10-12)authed(14-18)playgrounds/vue-bun/packages/back/src/schemas/planet.ts (3)
PlanetSchema(21-27)NewPlanetSchema(8-12)UpdatePlanetSchema(14-19)
🪛 LanguageTool
playgrounds/vue-bun/packages/front/README.md
[grammar] ~68-~68: Use a hyphen to join words.
Context: ...ion of Vue components. Vuetify is an MIT licensed Open Source project that has be...
(QB_NEW_EN_HYPHEN)
[uncategorized] ~68-~68: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... components. Vuetify is an MIT licensed Open Source project that has been made possible due...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
[uncategorized] ~71-~71: The official name of this software platform is spelled with a capital “H”.
Context: ...t.vuetifyjs.com/) - [Sponsoring John on Github](https://github.com/users/johnleider/sp...
(GITHUB)
[uncategorized] ~72-~72: The official name of this software platform is spelled with a capital “H”.
Context: ...ider/sponsorship) - [Sponsoring Kael on Github](https://github.com/users/kaelwd/sponso...
(GITHUB)
[uncategorized] ~76-~76: The official name of this payment provider is spelled with two capital “P”.
Context: ...ify) - Making a one-time donation with Paypal ## 📑 Lice...
(PAYPAL)
🪛 markdownlint-cli2 (0.18.1)
playgrounds/vue-bun/README.md
20-20: Images should have alternate text (alt text)
(MD045, no-alt-text)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: publish-commit
- GitHub Check: test
- GitHub Check: lint
🔇 Additional comments (25)
playgrounds/vue-bun/packages/front/tsconfig.json (1)
1-11: Both TypeScript configuration files exist as referenced.Verification confirms that both
tsconfig.app.jsonandtsconfig.node.jsonare present inplaygrounds/vue-bun/packages/front/and correctly referenced in the composite configuration. No issues found.playgrounds/vue-bun/pnpm-workspace.yaml (1)
1-6: LGTM!The workspace configuration is correctly set up for a pnpm monorepo with appropriate package glob patterns.
apps/content/docs/playgrounds.md (2)
21-21: LGTM!The Vue + Bun playground entry is correctly added to the table, consistent with other playgrounds that don't have StackBlitz support.
44-44: LGTM!The degit command follows the established naming pattern for local playground setup.
playgrounds/vue-bun/packages/front/.gitignore (1)
1-22: LGTM!The .gitignore file contains appropriate exclusions for a Vue + Bun frontend project.
playgrounds/vue-bun/packages/back/src/routers/sse.ts (1)
1-16: LGTM!The SSE route implementation is correct. It properly uses an async generator with
eventIteratorfor streaming events, includes appropriate delays, and validates output with Zod schemas.playgrounds/vue-bun/packages/back/package.json (2)
3-3: Verify the version number.The version 1.0.50 seems unusually high for a new playground package. Consider starting at 0.1.0 or 1.0.0.
11-11: No action required—Zod version is current.The latest stable Zod release is v4.1.12 (published Oct 6, 2025), so the specified version in package.json is correct and up-to-date.
playgrounds/vue-bun/packages/front/src/main.ts (1)
1-19: LGTM!The Vue 3 application entry point is properly configured with Vue Router and TanStack Vue Query. The setup follows best practices for a modern Vue 3 application.
playgrounds/vue-bun/README.md (1)
1-15: No issues found—ports are correctly configured.Verification confirms the setup is intentional and properly configured:
- Frontend runs on port 2999 (matches README instruction)
- Backend runs on port 3399 (separate intentionally)
- Frontend client code correctly references port 2999
This is standard practice for development setups with separate frontend and backend servers.
playgrounds/vue-bun/packages/front/src/views/Home.vue (1)
1-25: LGTM!The Home component provides a clean navigation structure for the playground. The inline styles and static template approach are appropriate for a demonstration project.
playgrounds/vue-bun/packages/front/src/App.vue (1)
1-3: LGTM!Standard Vue Router root component pattern. This is the correct minimal setup for the application entry point.
playgrounds/vue-bun/packages/back/src/router.ts (1)
1-11: LGTM!The router aggregation is well-structured and follows a clean pattern. The exported
AppRoutertype enables type-safe client usage on the frontend.playgrounds/vue-bun/packages/front/src/views/SSE.vue (1)
1-23: LGTM!The SSE component properly handles loading and error states. The use of
experimental_streamedOptions()is appropriate for a playground demonstrating SSE capabilities.playgrounds/vue-bun/packages/front/env.d.ts (1)
1-1: LGTM!Standard Vite TypeScript declaration file that enables Vite client types globally.
playgrounds/vue-bun/packages/front/tsconfig.app.json (1)
1-23: LGTM!The TypeScript configuration is well-structured. Including the backend router.ts (line 20) enables type-safe RPC calls from the frontend, which is a key benefit of the ORPC approach.
playgrounds/vue-bun/packages/back/src/index.ts (2)
14-16: Hard-coded authentication is acceptable for playground.The hard-coded token check
token === 'token'and static user object are appropriate for a demonstration playground. In a production environment, this would need to be replaced with proper authentication.
5-7: Verify CORS configuration for playground use.The
CORSPluginis instantiated with default options, which typically allows all origins. This is acceptable for a local playground but should be reviewed if the playground is exposed beyond localhost.playgrounds/vue-bun/packages/front/index.html (1)
1-13: LGTM!Standard HTML5 scaffold for a Vite + Vue application. The structure is minimal and appropriate for a playground demonstration.
playgrounds/vue-bun/packages/front/src/routes.ts (1)
3-11: LGTM!Route definitions are clean and follow Vue Router best practices with dynamic imports for code splitting.
playgrounds/vue-bun/packages/front/vite.config.mts (1)
5-24: LGTM!Vite configuration is well-structured with appropriate proxy setup for API forwarding and sensible defaults.
playgrounds/vue-bun/package.json (1)
1-20: LGTM!Package configuration is well-structured with proper workspace setup and efficient dev script using concurrently.
playgrounds/vue-bun/packages/back/src/orpc.ts (1)
6-18: LGTM!The ORPC context and authentication middleware are correctly structured, with proper error handling for unauthorized requests.
playgrounds/vue-bun/packages/back/src/middlewares/db.ts (1)
1-19: LGTM! Clean interface and middleware design.The DB interface is well-structured with proper Promise return types, and the middleware correctly provides a fallback DB instance when none exists in the context.
playgrounds/vue-bun/packages/back/src/routers/planet.ts (1)
1-44: LGTM! Well-structured ORPC routes with proper validation.The planet routes demonstrate good practices:
- Appropriate use of
pubvsauthedbased on access requirements- Comprehensive input validation with sensible constraints (e.g., limit 1-100, min id 1)
- Consistent error handling for not-found scenarios
- Clean async/await handlers that delegate to the DB layer
The route definitions are clear, well-documented with summaries and tags, and properly typed.
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
playgrounds/vue-bun/pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (6)
playgrounds/vue-bun/package.json(1 hunks)playgrounds/vue-bun/packages/back/package.json(1 hunks)playgrounds/vue-bun/packages/front/README.md(1 hunks)playgrounds/vue-bun/packages/front/package.json(1 hunks)playgrounds/vue-bun/packages/front/src/views/PlanetDetail.vue(1 hunks)playgrounds/vue-bun/tsconfig.json(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (5)
- playgrounds/vue-bun/package.json
- playgrounds/vue-bun/packages/back/package.json
- playgrounds/vue-bun/packages/front/src/views/PlanetDetail.vue
- playgrounds/vue-bun/tsconfig.json
- playgrounds/vue-bun/packages/front/package.json
🧰 Additional context used
🪛 LanguageTool
playgrounds/vue-bun/packages/front/README.md
[grammar] ~70-~70: Use a hyphen to join words.
Context: ... end-to-end type safety. oRPC is an open source project that makes building type-...
(QB_NEW_EN_HYPHEN)
🔇 Additional comments (1)
playgrounds/vue-bun/packages/front/README.md (1)
1-82: ✅ README successfully replaced with project-specific documentation.This is a significant improvement over the previous Vuetify boilerplate template. The README now accurately describes the Vue 3 + Bun + oRPC + TanStack Query stack, provides clear installation steps for the monorepo, lists relevant features with proper documentation links, and includes practical usage instructions for development and production builds. The structure, tone, and content align well with the actual playground implementation and follow best practices for project documentation.
|
Thanks @hunterwilhelm for putting in the effort on this. I’m just not sure how common this stack is in real-world projects. It can definitely give users more examples, but adding too many less-common setups could create extra long-term maintenance for the oRPC team whenever things change. Maybe instead of including it directly in the oRPC repo, you could publish it in your own repo and we add a link to it in the Playground or Ecosystem page? |
|
That's a good point, I'll do that |
feat(vue3-bun-playground): removed unnecessary command from start feat(vue3-bun-playground): removed stackblitz from vue3-bun because stackblitz doesn't support bun yet feat(vue3-bun-playground): some good catches from the AI - typescript peer dep -> dev dep - + "jsx": "preserve", - package.json names - index.js -> index.ts - forgot about the vuetify readme template - use computed for the reactive id in planet detail feat(vue3-bun-playground): moved the playground to a separate repo feat(vue3-bun-playground): reset changes from pnpm lock to main
7b6a7f1 to
98aee0f
Compare
|
Squashed and added the links as requested |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Fixes #1129
Summary by CodeRabbit