create-rudder-app 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # create-rudder-app
2
2
 
3
- **Spin up a production-ready [RudderJS](https://github.com/rudderjs/rudder) app in under 60 seconds** — with auth that works, a database wired, SSR views rendering, and optional AI / OAuth / real-time / cache / queue, all bootstrapped through Vite + Vike.
3
+ **Spin up a production-ready [RudderJS](https://github.com/rudderjs/rudder) app in under 60 seconds** — with auth that works, a database wired, SSR views rendering, and your pick from 25 opt-in packages, all bootstrapped through Vite + Vike.
4
4
 
5
5
  ```bash
6
6
  pnpm create rudder-app my-app
@@ -29,15 +29,16 @@ Skip `[name]` to be prompted for one.
29
29
 
30
30
  ## What you get out of the box
31
31
 
32
- With the **default choices** (Prisma + SQLite + Auth + Cache + React + Tailwind + shadcn/ui), you get a working fullstack app you can register into, log into, and sign out of — without writing any code:
32
+ With the **default choices** (Prisma + SQLite + Auth + React + Tailwind + shadcn/ui + Contact demo), you get a working fullstack app you can register into, log into, and sign out of — without writing any code:
33
33
 
34
34
  - **Welcome page at `/`** — controller-returned view, Tailwind + shadcn styled, with Log in / Register links or a signed-in user + Sign out button.
35
35
  - **Auth flow that works** — `/login`, `/register`, `/forgot-password`, `/reset-password` pages vendored into `app/Views/Auth/` (so you can customize them freely) and wired to `POST /api/auth/sign-in/email` / `sign-up/email` / `sign-out` / `request-password-reset` / `reset-password` endpoints.
36
36
  - **Database ready** — Prisma schema with a `User` + `PasswordResetToken` model, SQLite by default, a `User` ORM model.
37
- - **Session-based auth** — cookie sessions via `@rudderjs/session`, `AuthMiddleware` applied globally, ghost-user-safe (see the [Request Lifecycle guide](https://github.com/rudderjs/rudder/blob/main/docs/guide/lifecycle.md)).
38
- - **Rate limiting** — 10 req/min on auth endpoints out of the box.
37
+ - **Session-based auth** — cookie sessions via `@rudderjs/session`, `AuthMiddleware` applied to the `web` group, ghost-user-safe (see the [Request Lifecycle guide](https://github.com/rudderjs/rudder/blob/main/docs/guide/lifecycle.md)).
38
+ - **Rate limiting** — 60 req/min globally, 10 req/min on auth endpoints out of the box.
39
39
  - **Bootstrap you can read** — `bootstrap/app.ts` in 25 lines, `bootstrap/providers.ts` shows auto-discovery, `config/` has one file per concern.
40
40
  - **Rudder CLI** — `pnpm rudder --help` lists framework commands; `routes/console.ts` shows you how to add your own.
41
+ - **`/demos` index** — every demo you ticked appears as a card linking to its page; new demos picked up automatically from the shared registry.
41
42
 
42
43
  If you tick **AI** you get a `/ai-chat` demo. If you tick **MCP**, `POST /mcp/echo`. If you tick **Passport**, a full OAuth 2 server at `/oauth/authorize` / `/oauth/token`. Everything is opt-in and pay-as-you-go.
43
44
 
@@ -45,51 +46,104 @@ If you tick **AI** you get a `/ai-chat` demo. If you tick **MCP**, `POST /mcp/ec
45
46
 
46
47
  ## Prompts
47
48
 
48
- The installer walks you through up to 9 prompts (several are conditional):
49
+ The installer walks you through up to 10 prompts (several are conditional):
49
50
 
50
51
  | # | Prompt | Options | Default | Condition |
51
52
  |---|--------|---------|---------|-----------|
52
53
  | 1 | Project name | any string | — | always (skipped if passed as argv) |
53
54
  | 2 | Database ORM | Prisma · Drizzle · None | Prisma | always |
54
55
  | 3 | Database driver | SQLite · PostgreSQL · MySQL | SQLite | only if ORM selected |
55
- | 4 | Package checklist | multiselect (see below) | Auth + Cache | always |
56
+ | 4 | Packages | categorized multiselect (see below) | Authentication | always |
56
57
  | 5 | Frontend frameworks | React · Vue · Solid (multiselect) | React | always |
57
58
  | 6 | Primary framework | single select from chosen frameworks | — | only if >1 framework selected |
58
59
  | 7 | Add Tailwind CSS? | yes / no | yes | always |
59
60
  | 8 | Add shadcn/ui? | yes / no | yes | only if React + Tailwind |
60
- | 9 | Install dependencies? | yes / no | yes | always |
61
+ | 9 | Demos | multiselect filtered by previous picks | Contact form | only when at least one available |
62
+ | 10 | Install dependencies? | yes / no | yes | always |
61
63
 
62
- > **Not sure what to pick?** Accept every default — it produces the most-used stack (Prisma + SQLite + Auth + Cache + React + Tailwind + shadcn/ui) and is the best-tested path. You can always add packages later.
64
+ > **Not sure what to pick?** Accept every default — it produces the most-used stack (Prisma + SQLite + Auth + React + Tailwind + shadcn/ui + Contact demo) and is the best-tested path. You can always add packages later.
65
+
66
+ ### Tier A — silent install
67
+
68
+ `@rudderjs/session`, `@rudderjs/hash`, and `@rudderjs/cache` are installed unconditionally. They're required by the default bootstrap (rate-limit middleware needs cache; auth needs hash + session) so making them explicit-but-silent prevents broken projects when you don't tick Authentication.
63
69
 
64
70
  ### Package checklist (prompt 4)
65
71
 
66
- | Choice | Description | Package |
67
- |--------|-------------|---------|
68
- | Authentication | Login, register, sessions | `@rudderjs/auth` |
69
- | Cache | Memory + Redis drivers | `@rudderjs/cache` |
70
- | Queue | Background jobs | `@rudderjs/queue` |
71
- | Storage | File uploads (local + S3) | `@rudderjs/storage` |
72
- | Mail | SMTP + log driver | `@rudderjs/mail` |
73
- | Notifications | Multi-channel notifications | `@rudderjs/notification` |
74
- | Scheduler | Cron-like task scheduling | `@rudderjs/schedule` |
75
- | WebSocket | Real-time channels | `@rudderjs/broadcast` |
76
- | Sync (Yjs CRDT) | Real-time collaborative document sync | `@rudderjs/sync` |
77
- | AI | LLM providers (Anthropic, OpenAI, Google, Ollama, Groq, DeepSeek, xAI, Mistral, Azure) | `@rudderjs/ai` |
78
- | MCP | Model Context Protocol servers — expose tools/resources to LLMs | `@rudderjs/mcp` |
79
- | Passport (OAuth2) | OAuth 2 server with JWT — **requires Auth + Prisma** | `@rudderjs/passport` |
80
- | Localization | i18n — `trans()`, `setLocale()` | `@rudderjs/localization` |
81
- | Telescope | Debug dashboard | `@rudderjs/telescope` |
82
- | Boost (AI coding DX) | Expose project internals to Claude Code / Cursor / Copilot via MCP | `@rudderjs/boost` (devDep) |
83
- | Demos | Sample views (contact, ws, live) under `/demos` — **react primary only** | — |
72
+ Eight categories, 25 visible rows, one pre-checked. Picking ORM=none filters out the four DB-gated rows (Authentication, Sanctum, Passport, Cashier-Paddle).
73
+
74
+ ```
75
+ ─── Auth & Users ───
76
+ Authentication login, register, sessions
77
+ Sanctum API tokens (SHA-256 + abilities)
78
+ Passport OAuth 2 server requires Auth + Prisma
79
+ Socialite social login (GitHub, Google, Facebook, Apple)
80
+
81
+ ─── Infrastructure ───
82
+ Queue background jobs
83
+ Storage file uploads (local + S3)
84
+ Scheduler cron-like task scheduling
85
+ Image resize, crop, convert (sharp wrapper)
86
+
87
+ ─── Communication ───
88
+ Mail SMTP + log driver
89
+ Notifications multi-channel
90
+ WebSocket / Broadcast real-time channels
91
+ Sync (Yjs CRDT) collaborative documents
92
+
93
+ ─── AI ───
94
+ AI 11 LLM providers (Anthropic, OpenAI, …)
95
+ MCP Model Context Protocol — expose tools to LLMs
96
+ Boost AI coding DX (Claude Code / Cursor / Copilot)
97
+
98
+ ─── Internationalization ───
99
+ Localization i18n — trans(), setLocale()
100
+
101
+ ─── Product & Features ───
102
+ Cashier-Paddle subscriptions + checkout — requires Auth + Prisma
103
+ Pennant feature flags
104
+
105
+ ─── Observability ───
106
+ Telescope debug dashboard
107
+ Pulse metrics dashboard
108
+ Horizon queue monitoring
109
+
110
+ ─── Utilities ───
111
+ Crypt AES-256-CBC + HMAC encryption
112
+ HTTP fluent fetch client (retries, timeouts, pools)
113
+ Process shell execution (run, pool, pipe)
114
+ Concurrency parallel execution via worker threads
115
+ ```
84
116
 
85
117
  Package-specific behavior:
86
118
 
87
119
  - **AI** — generates `config/ai.ts`, AI chat demo at `/ai-chat`, `POST /api/ai/chat`.
88
- - **MCP** — generates `app/Mcp/EchoServer.ts` and wires `POST /mcp/echo`.
89
- - **Passport** — generates `config/passport.ts`, OAuth 2 routes (`/oauth/authorize`, `/oauth/token`, etc.), and `OAuthClient` + `OAuthAccessToken` Prisma models. Fails fast if Auth or Prisma isn't also selected.
90
- - **Demos** — generates `app/Views/Demos/{Index,Contact}.tsx` plus `Ws.tsx` (when Broadcast is selected) and `Live.tsx` (when Sync is selected). Index page lives at `/demos`. Skipped silently when the primary framework isn't React.
91
-
92
- Only selected packages get their dependencies, providers, config files, and schema files. Always-included base packages: `core`, `router`, `server-hono`, `middleware`, `vite`, `rudder`, `cli`, `log`. `session` + `hash` are pulled in automatically with Authentication.
120
+ - **MCP** — generates `app/Mcp/EchoServer.ts` + `EchoTool.ts` and wires `POST /mcp/echo`.
121
+ - **Passport** — generates `config/passport.ts`, OAuth 2 routes (`/oauth/authorize`, `/oauth/token`, etc.), and `OAuthClient` + `OAuthAccessToken` Prisma models. Filtered out when ORM=none.
122
+
123
+ ### Demos (prompt 9)
124
+
125
+ Each demo is a small view + one API endpoint, gated on the relevant package. The list is sourced from a single registry at `src/templates/demos/registry.ts` (also exported as `create-rudder-app/demos-registry` so the framework's own playground consumes it).
126
+
127
+ | Demo | Gate | What it shows |
128
+ |------|------|---------------|
129
+ | Contact form | always | CSRF + Zod validation, FormRequest-style errors |
130
+ | Cache counter | always | `Cache.get` + `Cache.set` round-trip |
131
+ | Todos | ORM | CRUD wired through ORM model + interactive UI |
132
+ | Queue dispatch | Queue | `ExampleJob.dispatch().send()` → handler logs |
133
+ | Mail send | Mail | `Mail.to(addr).send(new DemoMail(...))` via log driver |
134
+ | Notifications | Notifications + Mail | `notify(Notification.route('mail', addr), ...)` |
135
+ | Localization | Localization | locale switcher + `runWithLocale` + `trans()` |
136
+ | HTTP client | HTTP | `Http.retry(3, 200).timeout(5000).get(url)` against a public API |
137
+ | Avatar resize | Storage + Image | upload → 256×256 WebP via `@rudderjs/image` |
138
+ | Worker threads | Concurrency | sequential vs parallel `fib(n)` via `Concurrency.run()` |
139
+ | System info | Process | three shell commands via `Process.run()` and `Process.pool()` |
140
+ | Feature flags | Pennant + Auth | boolean / value / scoped / Lottery features + `FeatureMiddleware` |
141
+ | WebSocket chat | Broadcast | real-time chat + presence over a single WS |
142
+ | Yjs collaboration | Sync | CRDT live document with awareness cursors |
143
+
144
+ Demos are silently skipped when the primary framework isn't React (the templates ship React only for now).
145
+
146
+ Always-included base packages: `core`, `router`, `server-hono`, `middleware`, `vite`, `console`, `cli`, `log`, plus the Tier A trio above.
93
147
 
94
148
  ---
95
149
 
@@ -102,11 +156,16 @@ my-app/
102
156
  │ └── providers.ts # [...(await defaultProviders()), ...app providers]
103
157
  ├── config/ # app, server, log + per-package configs (auth, cache, session, …)
104
158
  ├── app/
105
- │ ├── Models/User.ts # (if Auth)
106
- │ ├── Views/ # (if Auth) Welcome + Auth/{Login,Register,...} vendored
107
- │ ├── Mcp/EchoServer.ts # (if MCP)
108
- ├── Providers/AppServiceProvider.ts
109
- └── Middleware/RequestIdMiddleware.ts
159
+ │ ├── Http/Controllers/AuthController.ts # (if Auth)
160
+ │ ├── Models/User.ts # (if Auth)
161
+ │ ├── Views/ # (if Auth) Welcome + Auth/{Login,Register,...} vendored
162
+ │ # + Demos/<picked>.tsx
163
+ ├── Mcp/{EchoServer,EchoTool}.ts # (if MCP)
164
+ │ ├── Modules/Todo/ # (if Todos demo)
165
+ │ ├── Jobs/ExampleJob.ts # (if Queue demo)
166
+ │ ├── Mail/DemoMail.ts # (if Mail demo)
167
+ │ ├── Notifications/WelcomeNotification.ts # (if Notifications demo)
168
+ │ └── Providers/AppServiceProvider.ts
110
169
  ├── routes/
111
170
  │ ├── api.ts # JSON API routes (+ auth endpoints if Auth, + OAuth2 if Passport)
112
171
  │ ├── web.ts # Vike page routes + registerAuthRoutes() (if Auth)
@@ -123,9 +182,12 @@ my-app/
123
182
  │ ├── auth.prisma # (if Auth) User + PasswordResetToken
124
183
  │ ├── passport.prisma # (if Passport) OAuthClient + OAuthAccessToken
125
184
  │ ├── notification.prisma # (if Notifications)
126
- │ └── modules.prisma # placeholder for per-feature modules
185
+ │ └── modules.prisma # per-feature module schemas (Todo, …)
127
186
  ├── drizzle/ # (if Drizzle) schema directory
128
- ├── src/index.css # (if Tailwind)
187
+ ├── lang/{en,es,ar}/ # (if Localization demo) message files
188
+ ├── src/
189
+ │ ├── index.css # (if Tailwind) — semantic classes work without Tailwind too
190
+ │ └── RudderSocket.ts # (if Broadcast) — vendored client helper
129
191
  ├── vite.config.ts
130
192
  ├── tsconfig.json
131
193
  ├── .env + .env.example
@@ -158,9 +220,11 @@ my-app/
158
220
 
159
221
  | Selection | `src/index.css` content |
160
222
  |-----------|------------------------|
161
- | Tailwind + shadcn | Full shadcn CSS variables + `@import "shadcn/tailwind.css"` |
162
- | Tailwind only | `@import "tailwindcss"; @import "tw-animate-css";` |
163
- | No Tailwind | File not generated |
223
+ | Tailwind + shadcn | shadcn CSS variables + `@import "shadcn/tailwind.css"` + semantic-class `@apply` rules |
224
+ | Tailwind only | `@import "tailwindcss"; @import "tw-animate-css";` + semantic-class `@apply` rules |
225
+ | No Tailwind | hand-authored CSS same semantic class names so JSX never branches on the flag |
226
+
227
+ Demos use the same semantic class vocabulary across all three variants — `.page`, `.feature-card`, `.form-input`, `.demo-card`, `.chat-bubble`, etc. — so they look right whether or not you ship Tailwind.
164
228
  </details>
165
229
 
166
230
  <details>
@@ -245,6 +309,16 @@ pnpm rudder vendor:publish --tag=auth-views-react # or auth-views-vue
245
309
  ```
246
310
  </details>
247
311
 
312
+ <details>
313
+ <summary><strong>APP_KEY length error after enabling Crypt</strong></summary>
314
+
315
+ `@rudderjs/crypt` requires exactly 32 bytes for AES-256. The scaffolder generates a valid key in `.env` but if you replace it, make sure the base64-decoded value is 32 bytes:
316
+
317
+ ```bash
318
+ node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
319
+ ```
320
+ </details>
321
+
248
322
  ---
249
323
 
250
324
  ## Related
@@ -262,11 +336,14 @@ git clone https://github.com/rudderjs/rudder.git
262
336
  cd rudder/create-rudder-app
263
337
  pnpm install
264
338
  pnpm build
265
- node dist/index.js # launches the interactive CLI from source
266
- pnpm test # 111 template tests
339
+ node dist/index.js # launches the interactive CLI from source
340
+ pnpm test # 169 template tests + snapshot baseline
341
+ pnpm smoke # default end-to-end smoke
342
+ pnpm smoke --profile=no-db # ORM=none + observability survivability
343
+ pnpm smoke --profile=demos-all # every demo at once
267
344
  ```
268
345
 
269
- Template logic lives in `src/templates.ts` (pure — returns `Record<path, content>`, no filesystem). The entrypoint `src/index.ts` handles prompts + writes + installs. Adding a new package option touches both files + `templates.test.ts`.
346
+ Template logic lives in `src/templates.ts` (pure — returns `Record<path, content>`, no filesystem) plus modular `src/templates/{configs,demos,prisma,…}/`. The entrypoint `src/index.ts` handles prompts + writes + installs. Adding a new package option touches `templates/configs/`, `templates/package-json.ts`, and `src/index.ts`. Adding a new demo means one entry in `src/templates/demos/registry.ts` plus a per-demo template module — the playground's `/demos` index picks it up automatically via the `create-rudder-app/demos-registry` subpath export.
270
347
 
271
348
  ---
272
349
 
@@ -0,0 +1,17 @@
1
+ export declare function postModelTs(): string;
2
+ export declare function videoModelTs(): string;
3
+ export declare function commentModelTs(): string;
4
+ export declare function polymorphicPrismaBlock(): string;
5
+ export declare function demosPolymorphicView(): string;
6
+ /**
7
+ * Inlined into routes/web.ts demos block. Loads parents + hydrates each parent's
8
+ * comments via the morphMany relation. Returns plain objects (Vike refuses to
9
+ * serialize Model instances across the SSR boundary).
10
+ */
11
+ export declare function demosPolymorphicWebBlock(): string;
12
+ /**
13
+ * Inlined into routes/api.ts demos block. Six endpoints: state, create-post,
14
+ * create-video, comment-on-post, comment-on-video, resolve-parent (morphTo).
15
+ */
16
+ export declare function demosPolymorphicApiBlock(): string;
17
+ //# sourceMappingURL=polymorphic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polymorphic.d.ts","sourceRoot":"","sources":["../../../src/templates/demos/polymorphic.ts"],"names":[],"mappings":"AAOA,wBAAgB,WAAW,IAAI,MAAM,CAiBpC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAiBrC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAoBvC;AAED,wBAAgB,sBAAsB,IAAI,MAAM,CAyB/C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CA6L7C;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAajD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CA0EjD"}
@@ -0,0 +1,378 @@
1
+ // Polymorphic relations demo — morphMany / morphTo via @rudderjs/orm.
2
+ //
3
+ // Scaffolds three Models (Post / Video / Comment), the React view, the
4
+ // `Comment` table's polymorphic columns (`commentableId` / `commentableType`,
5
+ // camelCase per ORM convention), the controller view, and a self-contained
6
+ // API surface (state + create + comment + parent-resolution).
7
+ export function postModelTs() {
8
+ return `import { Model } from '@rudderjs/orm'
9
+ import { Comment } from './Comment.js'
10
+
11
+ export class Post extends Model {
12
+ static table = 'post'
13
+ static fillable = ['title']
14
+
15
+ static override relations = {
16
+ comments: { type: 'morphMany' as const, model: () => Comment, morphName: 'commentable' },
17
+ }
18
+
19
+ id!: number
20
+ title!: string
21
+ createdAt!: Date
22
+ }
23
+ `;
24
+ }
25
+ export function videoModelTs() {
26
+ return `import { Model } from '@rudderjs/orm'
27
+ import { Comment } from './Comment.js'
28
+
29
+ export class Video extends Model {
30
+ static table = 'video'
31
+ static fillable = ['url']
32
+
33
+ static override relations = {
34
+ comments: { type: 'morphMany' as const, model: () => Comment, morphName: 'commentable' },
35
+ }
36
+
37
+ id!: number
38
+ url!: string
39
+ createdAt!: Date
40
+ }
41
+ `;
42
+ }
43
+ export function commentModelTs() {
44
+ return `import { Model } from '@rudderjs/orm'
45
+ import { Post } from './Post.js'
46
+ import { Video } from './Video.js'
47
+
48
+ export class Comment extends Model {
49
+ static table = 'comment'
50
+ static fillable = ['body', 'commentableId', 'commentableType']
51
+
52
+ static override relations = {
53
+ commentable: { type: 'morphTo' as const, morphName: 'commentable', types: () => [Post, Video] },
54
+ }
55
+
56
+ id!: number
57
+ body!: string
58
+ commentableId!: number
59
+ commentableType!: string
60
+ createdAt!: Date
61
+ }
62
+ `;
63
+ }
64
+ export function polymorphicPrismaBlock() {
65
+ return `// module: Polymorphic demo (Post / Video / Comment)
66
+ // commentableId + commentableType follow @rudderjs/orm's camelCase convention.
67
+ model Post {
68
+ id Int @id @default(autoincrement())
69
+ title String
70
+ createdAt DateTime @default(now())
71
+ }
72
+
73
+ model Video {
74
+ id Int @id @default(autoincrement())
75
+ url String
76
+ createdAt DateTime @default(now())
77
+ }
78
+
79
+ model Comment {
80
+ id Int @id @default(autoincrement())
81
+ body String
82
+ commentableId Int
83
+ commentableType String
84
+ createdAt DateTime @default(now())
85
+
86
+ @@index([commentableType, commentableId])
87
+ }
88
+ `;
89
+ }
90
+ export function demosPolymorphicView() {
91
+ return `import '@/index.css'
92
+ import { useState } from 'react'
93
+
94
+ interface CommentDto {
95
+ id: number
96
+ body: string
97
+ commentableId: number
98
+ commentableType: string
99
+ createdAt: string
100
+ }
101
+
102
+ interface PostDto {
103
+ id: number
104
+ title: string
105
+ comments: CommentDto[]
106
+ }
107
+
108
+ interface VideoDto {
109
+ id: number
110
+ url: string
111
+ comments: CommentDto[]
112
+ }
113
+
114
+ interface ResolvedParent {
115
+ type: 'Post' | 'Video'
116
+ id: number
117
+ title: string
118
+ }
119
+
120
+ interface PolymorphicDemoProps {
121
+ posts: PostDto[]
122
+ videos: VideoDto[]
123
+ }
124
+
125
+ export default function PolymorphicDemo({ posts: initialPosts, videos: initialVideos }: PolymorphicDemoProps) {
126
+ const [posts, setPosts] = useState<PostDto[]>(initialPosts)
127
+ const [videos, setVideos] = useState<VideoDto[]>(initialVideos)
128
+ const [resolved, setResolved] = useState<ResolvedParent | null>(null)
129
+ const [loading, setLoading] = useState(false)
130
+
131
+ async function refresh() {
132
+ const res = await fetch('/api/polymorphic/state')
133
+ const json = await res.json() as { posts: PostDto[]; videos: VideoDto[] }
134
+ setPosts(json.posts)
135
+ setVideos(json.videos)
136
+ }
137
+
138
+ async function addPost() {
139
+ const title = prompt('Post title?')
140
+ if (!title) return
141
+ setLoading(true)
142
+ try {
143
+ await fetch('/api/polymorphic/posts', {
144
+ method: 'POST',
145
+ headers: { 'Content-Type': 'application/json' },
146
+ body: JSON.stringify({ title }),
147
+ })
148
+ await refresh()
149
+ } finally { setLoading(false) }
150
+ }
151
+
152
+ async function addVideo() {
153
+ const url = prompt('Video URL?')
154
+ if (!url) return
155
+ setLoading(true)
156
+ try {
157
+ await fetch('/api/polymorphic/videos', {
158
+ method: 'POST',
159
+ headers: { 'Content-Type': 'application/json' },
160
+ body: JSON.stringify({ url }),
161
+ })
162
+ await refresh()
163
+ } finally { setLoading(false) }
164
+ }
165
+
166
+ async function addComment(type: 'post' | 'video', id: number) {
167
+ const body = prompt(\`Comment on \${type} #\${id}?\`)
168
+ if (!body) return
169
+ setLoading(true)
170
+ try {
171
+ await fetch(\`/api/polymorphic/\${type}s/\${id}/comments\`, {
172
+ method: 'POST',
173
+ headers: { 'Content-Type': 'application/json' },
174
+ body: JSON.stringify({ body }),
175
+ })
176
+ await refresh()
177
+ } finally { setLoading(false) }
178
+ }
179
+
180
+ async function resolveParent(commentId: number) {
181
+ setLoading(true)
182
+ try {
183
+ const res = await fetch(\`/api/polymorphic/comments/\${commentId}/parent\`)
184
+ setResolved(await res.json() as ResolvedParent)
185
+ } finally { setLoading(false) }
186
+ }
187
+
188
+ return (
189
+ <div className="page">
190
+ <nav className="page-nav">
191
+ <div className="brand">
192
+ <span className="brand-dot" />
193
+ RudderJS
194
+ </div>
195
+ <div className="nav-right">
196
+ <a href="/demos" className="nav-link">Demos</a>
197
+ <a href="/" className="nav-link">Home</a>
198
+ </div>
199
+ </nav>
200
+
201
+ <section className="hero">
202
+ <h1 className="hero-title">Polymorphic relations</h1>
203
+ <p className="hero-lead">
204
+ One <code className="inline-code">Comment</code> table belonging to either a <code className="inline-code">Post</code> or a <code className="inline-code">Video</code> via <code className="inline-code">commentableId</code> + <code className="inline-code">commentableType</code> (camelCase, ORM convention). Add comments to either side; click "Resolve parent" to watch <code className="inline-code">comment.related('commentable').first()</code> branch through the closed <code className="inline-code">types: () =&gt; [Post, Video]</code> list.
205
+ </p>
206
+ <p className="hero-meta">
207
+ Models: <code className="inline-code">Post.morphMany('comments')</code>, <code className="inline-code">Video.morphMany('comments')</code>, <code className="inline-code">Comment.morphTo('commentable', [Post, Video])</code>. Writes use <code className="inline-code">Model.morph('commentable', parent)</code>.
208
+ </p>
209
+ </section>
210
+
211
+ <section className="feature-section">
212
+ <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '1rem', maxWidth: '60rem', margin: '0 auto' }}>
213
+ <div className="demo-card">
214
+ <div className="demo-card-header" style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>
215
+ <h2 className="demo-card-title">Posts</h2>
216
+ <button className="button-primary" onClick={addPost} disabled={loading}>+ Post</button>
217
+ </div>
218
+ <div className="demo-card-body">
219
+ {posts.length === 0 && <p className="empty-state">No posts yet.</p>}
220
+ {posts.map(p => (
221
+ <div key={p.id} style={{ borderBottom: '1px solid var(--border, #e5e7eb)', padding: '0.75rem 0' }}>
222
+ <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>
223
+ <strong>#{p.id} — {p.title}</strong>
224
+ <button onClick={() => addComment('post', p.id)} disabled={loading} style={{ fontSize: '0.75rem', padding: '0.25rem 0.5rem' }}>+ Comment</button>
225
+ </div>
226
+ <ul style={{ marginTop: '0.5rem', paddingLeft: '1rem', fontSize: '0.85rem' }}>
227
+ {p.comments.map(c => (
228
+ <li key={c.id} style={{ marginBottom: '0.25rem' }}>
229
+ {c.body} <button onClick={() => resolveParent(c.id)} style={{ fontSize: '0.7rem', marginLeft: '0.5rem' }}>resolve</button>
230
+ </li>
231
+ ))}
232
+ {p.comments.length === 0 && <li style={{ color: 'var(--text-muted, #888)' }}>(no comments)</li>}
233
+ </ul>
234
+ </div>
235
+ ))}
236
+ </div>
237
+ </div>
238
+
239
+ <div className="demo-card">
240
+ <div className="demo-card-header" style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>
241
+ <h2 className="demo-card-title">Videos</h2>
242
+ <button className="button-primary" onClick={addVideo} disabled={loading}>+ Video</button>
243
+ </div>
244
+ <div className="demo-card-body">
245
+ {videos.length === 0 && <p className="empty-state">No videos yet.</p>}
246
+ {videos.map(v => (
247
+ <div key={v.id} style={{ borderBottom: '1px solid var(--border, #e5e7eb)', padding: '0.75rem 0' }}>
248
+ <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>
249
+ <strong>#{v.id} — {v.url}</strong>
250
+ <button onClick={() => addComment('video', v.id)} disabled={loading} style={{ fontSize: '0.75rem', padding: '0.25rem 0.5rem' }}>+ Comment</button>
251
+ </div>
252
+ <ul style={{ marginTop: '0.5rem', paddingLeft: '1rem', fontSize: '0.85rem' }}>
253
+ {v.comments.map(c => (
254
+ <li key={c.id} style={{ marginBottom: '0.25rem' }}>
255
+ {c.body} <button onClick={() => resolveParent(c.id)} style={{ fontSize: '0.7rem', marginLeft: '0.5rem' }}>resolve</button>
256
+ </li>
257
+ ))}
258
+ {v.comments.length === 0 && <li style={{ color: 'var(--text-muted, #888)' }}>(no comments)</li>}
259
+ </ul>
260
+ </div>
261
+ ))}
262
+ </div>
263
+ </div>
264
+ </div>
265
+
266
+ {resolved && (
267
+ <div className="demo-card" style={{ maxWidth: '40rem', margin: '1rem auto 0' }}>
268
+ <div className="demo-card-header"><h2 className="demo-card-title">morphTo resolved</h2></div>
269
+ <div className="demo-card-body">
270
+ <code className="inline-code">comment.related('commentable').first()</code> ⇒ <strong>{resolved.type}</strong> #{resolved.id} — {resolved.title}
271
+ </div>
272
+ </div>
273
+ )}
274
+ </section>
275
+ </div>
276
+ )
277
+ }
278
+ `;
279
+ }
280
+ /**
281
+ * Inlined into routes/web.ts demos block. Loads parents + hydrates each parent's
282
+ * comments via the morphMany relation. Returns plain objects (Vike refuses to
283
+ * serialize Model instances across the SSR boundary).
284
+ */
285
+ export function demosPolymorphicWebBlock() {
286
+ return `Route.get('/demos/polymorphic', async () => {
287
+ const [posts, videos] = await Promise.all([Post.all(), Video.all()])
288
+ const hydrate = async (parent: Post | Video) => {
289
+ const comments = await (parent as unknown as { related(n: string): { get(): Promise<Comment[]> } })
290
+ .related('comments').get()
291
+ return { ...parent, comments: comments.map(c => ({ ...c })) }
292
+ }
293
+ return view('demos.polymorphic', {
294
+ posts: await Promise.all(posts.map(hydrate)),
295
+ videos: await Promise.all(videos.map(hydrate)),
296
+ })
297
+ })`;
298
+ }
299
+ /**
300
+ * Inlined into routes/api.ts demos block. Six endpoints: state, create-post,
301
+ * create-video, comment-on-post, comment-on-video, resolve-parent (morphTo).
302
+ */
303
+ export function demosPolymorphicApiBlock() {
304
+ return `// ── /demos/polymorphic — morphMany / morphTo via @rudderjs/orm ──────────────
305
+
306
+ // GET /api/polymorphic/state — posts + videos with their comments hydrated.
307
+ router.get('/api/polymorphic/state', async (_req, res) => {
308
+ const [posts, videos] = await Promise.all([Post.all(), Video.all()])
309
+ const hydrate = async (parent: Post | Video) => {
310
+ const comments = await (parent as unknown as { related(n: string): { get(): Promise<Comment[]> } })
311
+ .related('comments').get()
312
+ return { ...parent, comments: comments.map(c => ({ ...c })) }
313
+ }
314
+ res.json({
315
+ posts: await Promise.all(posts.map(hydrate)),
316
+ videos: await Promise.all(videos.map(hydrate)),
317
+ })
318
+ })
319
+
320
+ // POST /api/polymorphic/posts — create a post.
321
+ router.post('/api/polymorphic/posts', async (req, res) => {
322
+ const { title } = (req.body ?? {}) as { title?: string }
323
+ if (!title) return res.status(400).json({ error: 'title required' })
324
+ const post = await Post.create({ title })
325
+ res.status(201).json({ ...post })
326
+ })
327
+
328
+ // POST /api/polymorphic/videos — create a video.
329
+ router.post('/api/polymorphic/videos', async (req, res) => {
330
+ const { url } = (req.body ?? {}) as { url?: string }
331
+ if (!url) return res.status(400).json({ error: 'url required' })
332
+ const video = await Video.create({ url })
333
+ res.status(201).json({ ...video })
334
+ })
335
+
336
+ // POST /api/polymorphic/(posts|videos)/:id/comments — Model.morph() write.
337
+ router.post('/api/polymorphic/posts/:id/comments', async (req, res) => {
338
+ const idParam = req.params['id']
339
+ if (!idParam) return res.status(400).json({ error: 'id required' })
340
+ const post = await Post.find(Number(idParam))
341
+ if (!post) return res.status(404).json({ error: 'post not found' })
342
+ const { body } = (req.body ?? {}) as { body?: string }
343
+ if (!body) return res.status(400).json({ error: 'body required' })
344
+ const comment = await Comment.create({ body, ...Model.morph('commentable', post) })
345
+ res.status(201).json({ ...comment })
346
+ })
347
+
348
+ router.post('/api/polymorphic/videos/:id/comments', async (req, res) => {
349
+ const idParam = req.params['id']
350
+ if (!idParam) return res.status(400).json({ error: 'id required' })
351
+ const video = await Video.find(Number(idParam))
352
+ if (!video) return res.status(404).json({ error: 'video not found' })
353
+ const { body } = (req.body ?? {}) as { body?: string }
354
+ if (!body) return res.status(400).json({ error: 'body required' })
355
+ const comment = await Comment.create({ body, ...Model.morph('commentable', video) })
356
+ res.status(201).json({ ...comment })
357
+ })
358
+
359
+ // GET /api/polymorphic/comments/:id/parent — morphTo resolution via the closed
360
+ // types: () => [Post, Video] list. Branches on commentableType under the hood.
361
+ router.get('/api/polymorphic/comments/:id/parent', async (req, res) => {
362
+ const idParam = req.params['id']
363
+ if (!idParam) return res.status(400).json({ error: 'id required' })
364
+ const comment = await Comment.find(Number(idParam))
365
+ if (!comment) return res.status(404).json({ error: 'comment not found' })
366
+
367
+ const parent = await (comment as unknown as { related(n: string): { first(): Promise<Post | Video | null> } })
368
+ .related('commentable').first()
369
+ if (!parent) return res.status(404).json({ error: 'parent not found' })
370
+
371
+ res.json({
372
+ type: comment.commentableType,
373
+ id: parent.id,
374
+ title: 'title' in parent ? parent.title : parent.url,
375
+ })
376
+ })`;
377
+ }
378
+ //# sourceMappingURL=polymorphic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polymorphic.js","sourceRoot":"","sources":["../../../src/templates/demos/polymorphic.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,EAAE;AACF,uEAAuE;AACvE,8EAA8E;AAC9E,2EAA2E;AAC3E,8DAA8D;AAE9D,MAAM,UAAU,WAAW;IACzB,OAAO;;;;;;;;;;;;;;;CAeR,CAAA;AACD,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO;;;;;;;;;;;;;;;CAeR,CAAA;AACD,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO;;;;;;;;;;;;;;;;;;CAkBR,CAAA;AACD,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO;;;;;;;;;;;;;;;;;;;;;;;CAuBR,CAAA;AACD,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2LR,CAAA;AACD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO;;;;;;;;;;;GAWN,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEN,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/templates/demos/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,MAAM,WAAW,QAAQ;IACvB,sEAAsE;IACtE,KAAK,EAAS,MAAM,CAAA;IACpB,2DAA2D;IAC3D,KAAK,EAAS,MAAM,CAAA;IACpB,8DAA8D;IAC9D,IAAI,CAAC,EAAS,MAAM,CAAA;IACpB,sEAAsE;IACtE,KAAK,CAAC,EAAQ,MAAM,CAAA;IACpB,oFAAoF;IACpF,WAAW,EAAG,MAAM,CAAA;IACpB,sEAAsE;IACtE,QAAQ,EAAM,aAAa,CAAC,MAAM,CAAC,CAAA;IACnC,wEAAwE;IACxE,QAAQ,CAAC,EAAK,aAAa,CAAC,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC,CAAA;IAC9D,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAEhD;AAED,eAAO,MAAM,KAAK,EAAE,aAAa,CAAC,QAAQ,CAiHzC,CAAA;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,EAC3B,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,GACpC,QAAQ,EAAE,CAMZ;AAED,uDAAuD;AACvD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,MAAM,CAE9D"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/templates/demos/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,MAAM,WAAW,QAAQ;IACvB,sEAAsE;IACtE,KAAK,EAAS,MAAM,CAAA;IACpB,2DAA2D;IAC3D,KAAK,EAAS,MAAM,CAAA;IACpB,8DAA8D;IAC9D,IAAI,CAAC,EAAS,MAAM,CAAA;IACpB,sEAAsE;IACtE,KAAK,CAAC,EAAQ,MAAM,CAAA;IACpB,oFAAoF;IACpF,WAAW,EAAG,MAAM,CAAA;IACpB,sEAAsE;IACtE,QAAQ,EAAM,aAAa,CAAC,MAAM,CAAC,CAAA;IACnC,wEAAwE;IACxE,QAAQ,CAAC,EAAK,aAAa,CAAC,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC,CAAA;IAC9D,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAEhD;AAED,eAAO,MAAM,KAAK,EAAE,aAAa,CAAC,QAAQ,CAyHzC,CAAA;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,EAC3B,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,GACpC,QAAQ,EAAE,CAMZ;AAED,uDAAuD;AACvD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,MAAM,CAE9D"}
@@ -26,6 +26,14 @@ export const DEMOS = [
26
26
  packages: ['@rudderjs/orm', '@rudderjs/router'],
27
27
  requiresOrm: true,
28
28
  },
29
+ {
30
+ value: 'polymorphic',
31
+ label: 'Polymorphic relations',
32
+ hint: 'requires ORM',
33
+ description: 'morphMany + morphTo via @rudderjs/orm. One Comment table belongs to either a Post or a Video. Demonstrates Model.morph() write helper + closed types() resolution.',
34
+ packages: ['@rudderjs/orm'],
35
+ requiresOrm: true,
36
+ },
29
37
  {
30
38
  value: 'queue',
31
39
  label: 'Queue dispatch',
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/templates/demos/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/templates/demos/registry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/templates/routes/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAWpG,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAuKtD"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/templates/routes/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAYpG,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA+KtD"}
@@ -8,6 +8,7 @@ import { demosMailApiBlock } from '../demos/mail.js';
8
8
  import { demosNotificationsApiBlock } from '../demos/notifications.js';
9
9
  import { demosLocalizationApiBlock } from '../demos/localization.js';
10
10
  import { demosHttpApiBlock } from '../demos/http.js';
11
+ import { demosPolymorphicApiBlock } from '../demos/polymorphic.js';
11
12
  export function routesApi(ctx) {
12
13
  const imports = [
13
14
  "import { router } from '@rudderjs/router'",
@@ -157,6 +158,14 @@ router.get('/api/ws/ping', (_req, res) => res.json(broadcastStats()))`);
157
158
  lines.push('');
158
159
  lines.push(demosHttpApiBlock());
159
160
  }
161
+ if (shouldScaffoldDemo(ctx, 'polymorphic')) {
162
+ imports.push(`import { Model } from '@rudderjs/orm'`);
163
+ imports.push(`import { Post } from '../app/Models/Post.ts'`);
164
+ imports.push(`import { Video } from '../app/Models/Video.ts'`);
165
+ imports.push(`import { Comment } from '../app/Models/Comment.ts'`);
166
+ lines.push('');
167
+ lines.push(demosPolymorphicApiBlock());
168
+ }
160
169
  }
161
170
  lines.push('');
162
171
  lines.push("// Catch-all: any unmatched /api/* route returns 404");
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/templates/routes/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/templates/routes/api.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../../src/templates/routes/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpG,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA+ItD;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAEhE"}
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../../src/templates/routes/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGpG,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAuJtD;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAEhE"}
@@ -1,4 +1,5 @@
1
1
  import { shouldScaffoldAnyDemo, shouldScaffoldDemo } from '../../templates.js';
2
+ import { demosPolymorphicWebBlock } from '../demos/polymorphic.js';
2
3
  export function routesWeb(ctx) {
3
4
  const hasAuth = ctx.packages.auth;
4
5
  const hasWelcome = ctx.frameworks.length === 1;
@@ -87,6 +88,11 @@ Route.get('/', async () => {${hasAuth ? `
87
88
  imports.push(`import { resolve } from '@rudderjs/core'`);
88
89
  imports.push(`import { TodoService } from '../app/Modules/Todo/TodoService.ts'`);
89
90
  }
91
+ if (shouldScaffoldDemo(ctx, 'polymorphic')) {
92
+ imports.push(`import { Post } from '../app/Models/Post.ts'`);
93
+ imports.push(`import { Video } from '../app/Models/Video.ts'`);
94
+ imports.push(`import type { Comment } from '../app/Models/Comment.ts'`);
95
+ }
90
96
  if (shouldScaffoldDemo(ctx, 'pennant')) {
91
97
  imports.push(`import { Feature, FeatureMiddleware } from '@rudderjs/pennant'`);
92
98
  // auth().user() — Pennant demo gates on `auth` so the import is always available
@@ -104,6 +110,9 @@ Route.get('/', async () => {${hasAuth ? `
104
110
  lines.push(` return view('demos.todos', { todos })`);
105
111
  lines.push(`})`);
106
112
  }
113
+ if (shouldScaffoldDemo(ctx, 'polymorphic')) {
114
+ lines.push(demosPolymorphicWebBlock());
115
+ }
107
116
  if (shouldScaffoldDemo(ctx, 'avatar'))
108
117
  lines.push(`Route.get('/demos/avatar', async () => view('demos.avatar'))`);
109
118
  if (shouldScaffoldDemo(ctx, 'fibonacci'))
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../../src/templates/routes/web.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../../src/templates/routes/web.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAW,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAoE9H,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;AACzD,YAAY,EAAE,cAAc,EAAE,CAAA;AAE9B,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAQ,MAAM,CAAA;IAClB,EAAE,EAAU,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAA;IAC7C,GAAG,EAAS,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,uEAAuE;IACvE,MAAM,EAAM,MAAM,CAAA;IAClB,UAAU,EAAE,CAAC,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC,EAAE,CAAA;IACzC,OAAO,EAAK,OAAO,GAAG,KAAK,GAAG,OAAO,CAAA;IACrC,QAAQ,EAAI,OAAO,CAAA;IACnB,MAAM,EAAM,OAAO,CAAA;IACnB,EAAE,EAAU,cAAc,CAAA;IAC1B,QAAQ,EAAE;QACR,IAAI,EAAW,OAAO,CAAA;QACtB,OAAO,EAAQ,OAAO,CAAA;QACtB,QAAQ,EAAO,OAAO,CAAA;QACtB,SAAS,EAAM,OAAO,CAAA;QACtB,KAAK,EAAU,OAAO,CAAA;QACtB,OAAO,EAAQ,OAAO,CAAA;QACtB,SAAS,EAAM,OAAO,CAAA;QACtB,KAAK,EAAU,OAAO,CAAA;QACtB,IAAI,EAAW,OAAO,CAAA;QACtB,aAAa,EAAE,OAAO,CAAA;QACtB,SAAS,EAAM,OAAO,CAAA;QACtB,IAAI,EAAW,OAAO,CAAA;QACtB,EAAE,EAAa,OAAO,CAAA;QACtB,GAAG,EAAY,OAAO,CAAA;QACtB,KAAK,EAAU,OAAO,CAAA;QACtB,YAAY,EAAG,OAAO,CAAA;QACtB,OAAO,EAAQ,OAAO,CAAA;QACtB,SAAS,EAAM,OAAO,CAAA;QACtB,KAAK,EAAU,OAAO,CAAA;QACtB,OAAO,EAAQ,OAAO,CAAA;QACtB,KAAK,EAAU,OAAO,CAAA;QACtB,IAAI,EAAW,OAAO,CAAA;QACtB,OAAO,EAAQ,OAAO,CAAA;QACtB,WAAW,EAAI,OAAO,CAAA;KACvB,CAAA;IACD,4FAA4F;IAC5F,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoJzE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAO9E;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAGnE"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAW,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAqE9H,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;AACzD,YAAY,EAAE,cAAc,EAAE,CAAA;AAE9B,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAQ,MAAM,CAAA;IAClB,EAAE,EAAU,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAA;IAC7C,GAAG,EAAS,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,uEAAuE;IACvE,MAAM,EAAM,MAAM,CAAA;IAClB,UAAU,EAAE,CAAC,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC,EAAE,CAAA;IACzC,OAAO,EAAK,OAAO,GAAG,KAAK,GAAG,OAAO,CAAA;IACrC,QAAQ,EAAI,OAAO,CAAA;IACnB,MAAM,EAAM,OAAO,CAAA;IACnB,EAAE,EAAU,cAAc,CAAA;IAC1B,QAAQ,EAAE;QACR,IAAI,EAAW,OAAO,CAAA;QACtB,OAAO,EAAQ,OAAO,CAAA;QACtB,QAAQ,EAAO,OAAO,CAAA;QACtB,SAAS,EAAM,OAAO,CAAA;QACtB,KAAK,EAAU,OAAO,CAAA;QACtB,OAAO,EAAQ,OAAO,CAAA;QACtB,SAAS,EAAM,OAAO,CAAA;QACtB,KAAK,EAAU,OAAO,CAAA;QACtB,IAAI,EAAW,OAAO,CAAA;QACtB,aAAa,EAAE,OAAO,CAAA;QACtB,SAAS,EAAM,OAAO,CAAA;QACtB,IAAI,EAAW,OAAO,CAAA;QACtB,EAAE,EAAa,OAAO,CAAA;QACtB,GAAG,EAAY,OAAO,CAAA;QACtB,KAAK,EAAU,OAAO,CAAA;QACtB,YAAY,EAAG,OAAO,CAAA;QACtB,OAAO,EAAQ,OAAO,CAAA;QACtB,SAAS,EAAM,OAAO,CAAA;QACtB,KAAK,EAAU,OAAO,CAAA;QACtB,OAAO,EAAQ,OAAO,CAAA;QACtB,KAAK,EAAU,OAAO,CAAA;QACtB,IAAI,EAAW,OAAO,CAAA;QACtB,OAAO,EAAQ,OAAO,CAAA;QACtB,WAAW,EAAI,OAAO,CAAA;KACvB,CAAA;IACD,4FAA4F;IAC5F,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA0JzE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAO9E;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAGnE"}
package/dist/templates.js CHANGED
@@ -48,6 +48,7 @@ import { demoPageConfig, demoPage } from './templates/pages/demo.js';
48
48
  import { demosIndexView } from './templates/demos/index-view.js';
49
49
  import { demosContactView } from './templates/demos/contact.js';
50
50
  import { demosTodosView, todoModelPrisma, todoSchema, todoService, todoServiceProvider } from './templates/demos/todos.js';
51
+ import { commentModelTs, demosPolymorphicView, polymorphicPrismaBlock, postModelTs, videoModelTs } from './templates/demos/polymorphic.js';
51
52
  import { demosFibonacciView } from './templates/demos/fibonacci.js';
52
53
  import { demosSystemInfoView } from './templates/demos/system-info.js';
53
54
  import { demosAvatarView } from './templates/demos/avatar.js';
@@ -186,6 +187,12 @@ export function getTemplates(ctx) {
186
187
  files['app/Modules/Todo/TodoService.ts'] = todoService();
187
188
  files['app/Modules/Todo/TodoServiceProvider.ts'] = todoServiceProvider();
188
189
  }
190
+ if (shouldScaffoldDemo(ctx, 'polymorphic')) {
191
+ files['app/Views/Demos/Polymorphic.tsx'] = demosPolymorphicView();
192
+ files['app/Models/Post.ts'] = postModelTs();
193
+ files['app/Models/Video.ts'] = videoModelTs();
194
+ files['app/Models/Comment.ts'] = commentModelTs();
195
+ }
189
196
  if (shouldScaffoldDemo(ctx, 'fibonacci'))
190
197
  files['app/Views/Demos/Fibonacci.tsx'] = demosFibonacciView();
191
198
  if (shouldScaffoldDemo(ctx, 'system-info'))
@@ -259,6 +266,9 @@ function modulesPrisma(ctx) {
259
266
  if (shouldScaffoldDemo(ctx, 'todos')) {
260
267
  blocks.push(`// module: Todo (Todos demo)\n${todoModelPrisma()}`);
261
268
  }
269
+ if (shouldScaffoldDemo(ctx, 'polymorphic')) {
270
+ blocks.push(polymorphicPrismaBlock());
271
+ }
262
272
  const body = blocks.length > 0 ? '\n' + blocks.join('\n') : '';
263
273
  return `// <rudderjs:modules:start>${body}\n// <rudderjs:modules:end>\n`;
264
274
  }
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-rudder-app",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",