@rudderjs/orm 1.0.0 → 1.1.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.
@@ -1,6 +1,16 @@
1
1
  export type ORM = 'prisma' | 'drizzle';
2
2
  /** Detect which ORM is installed by checking package.json dependencies. */
3
3
  export declare function detectORM(cwd?: string): ORM | null;
4
+ /**
5
+ * Find a `database/seeders/DatabaseSeeder` file in the project root.
6
+ * Returns the absolute path, or null if not found. Exported for testing.
7
+ */
8
+ export declare function findSeederFile(cwd?: string): string | null;
9
+ /**
10
+ * Detect whether `package.json` has a `prisma.seed` field configured.
11
+ * Used as the fallback path for Prisma projects that don't ship a Seeder class.
12
+ */
13
+ export declare function hasPrismaSeedConfig(cwd?: string): boolean;
4
14
  /** Build the args array for a given ORM and command. Exported for testing. */
5
15
  export declare function buildArgs(orm: ORM, command: 'migrate' | 'migrate:fresh' | 'migrate:status' | 'make:migration' | 'db:push' | 'db:generate', options?: {
6
16
  name?: string;
@@ -15,4 +25,15 @@ export declare function registerMigrateCommands(rudder: {
15
25
  description(text: string): unknown;
16
26
  };
17
27
  }): void;
28
+ /**
29
+ * In-process seeder runner.
30
+ *
31
+ * Resolution order:
32
+ * 1. `database/seeders/DatabaseSeeder.{ts,js,mts,mjs}` — instantiate default
33
+ * export and call `.run()` (or `await default()` if it's a function).
34
+ * 2. Prisma fallback — if `package.json#prisma.seed` is configured, shell out
35
+ * to `prisma db seed`.
36
+ * 3. Otherwise — clear error pointing the user at option 1.
37
+ */
38
+ export declare function runSeeder(cwd?: string): Promise<void>;
18
39
  //# sourceMappingURL=migrate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,GAAG,GAAG,QAAQ,GAAG,SAAS,CAAA;AAItC,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,GAAG,GAAE,MAAsB,GAAG,GAAG,GAAG,IAAI,CAUjE;AAWD,8EAA8E;AAC9E,wBAAgB,SAAS,CACvB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,SAAS,GAAG,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,SAAS,GAAG,aAAa,EACtG,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5C,MAAM,EAAE,CAqCV;AAID;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE;IAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG;QAAE,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;CAAE,GAC3H,IAAI,CAwEN"}
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,GAAG,GAAG,QAAQ,GAAG,SAAS,CAAA;AAItC,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,GAAG,GAAE,MAAsB,GAAG,GAAG,GAAG,IAAI,CAUjE;AAWD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAMzE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAOxE;AAED,8EAA8E;AAC9E,wBAAgB,SAAS,CACvB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,SAAS,GAAG,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,SAAS,GAAG,aAAa,EACtG,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5C,MAAM,EAAE,CAqCV;AAID;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE;IAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG;QAAE,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;CAAE,GAC3H,IAAI,CA6EN;AAED;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0C1E"}
@@ -1,5 +1,6 @@
1
- import { readFileSync } from 'node:fs';
1
+ import { readFileSync, existsSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
+ import { pathToFileURL } from 'node:url';
3
4
  import { spawn } from 'node:child_process';
4
5
  // ─── Helpers ──────────────────────────────────────────────
5
6
  /** Detect which ORM is installed by checking package.json dependencies. */
@@ -25,6 +26,31 @@ function run(cmd, args, cwd) {
25
26
  proc.on('error', reject);
26
27
  });
27
28
  }
29
+ /**
30
+ * Find a `database/seeders/DatabaseSeeder` file in the project root.
31
+ * Returns the absolute path, or null if not found. Exported for testing.
32
+ */
33
+ export function findSeederFile(cwd = process.cwd()) {
34
+ for (const ext of ['ts', 'js', 'mts', 'mjs']) {
35
+ const candidate = join(cwd, 'database', 'seeders', `DatabaseSeeder.${ext}`);
36
+ if (existsSync(candidate))
37
+ return candidate;
38
+ }
39
+ return null;
40
+ }
41
+ /**
42
+ * Detect whether `package.json` has a `prisma.seed` field configured.
43
+ * Used as the fallback path for Prisma projects that don't ship a Seeder class.
44
+ */
45
+ export function hasPrismaSeedConfig(cwd = process.cwd()) {
46
+ try {
47
+ const pkg = JSON.parse(readFileSync(join(cwd, 'package.json'), 'utf8'));
48
+ return typeof pkg?.prisma?.seed === 'string' && pkg.prisma.seed.length > 0;
49
+ }
50
+ catch {
51
+ return false;
52
+ }
53
+ }
28
54
  /** Build the args array for a given ORM and command. Exported for testing. */
29
55
  export function buildArgs(orm, command, options = {}) {
30
56
  const env = options.env ?? process.env['NODE_ENV'] ?? 'development';
@@ -127,5 +153,60 @@ export function registerMigrateCommands(rudder) {
127
153
  await exec(orm, 'db:generate');
128
154
  console.log(' Client generated.');
129
155
  }).description('Regenerate the database client (Prisma only)');
156
+ // ── db:seed ───────────────────────────────────────────
157
+ rudder.command('db:seed', async () => {
158
+ await runSeeder(cwd);
159
+ }).description('Seed the database — runs database/seeders/DatabaseSeeder');
160
+ }
161
+ /**
162
+ * In-process seeder runner.
163
+ *
164
+ * Resolution order:
165
+ * 1. `database/seeders/DatabaseSeeder.{ts,js,mts,mjs}` — instantiate default
166
+ * export and call `.run()` (or `await default()` if it's a function).
167
+ * 2. Prisma fallback — if `package.json#prisma.seed` is configured, shell out
168
+ * to `prisma db seed`.
169
+ * 3. Otherwise — clear error pointing the user at option 1.
170
+ */
171
+ export async function runSeeder(cwd = process.cwd()) {
172
+ const seederFile = findSeederFile(cwd);
173
+ if (seederFile) {
174
+ console.log(` Seeding from ${seederFile.replace(cwd + '/', '')}…`);
175
+ const mod = await import(pathToFileURL(seederFile).href);
176
+ const exported = mod.default;
177
+ if (!exported) {
178
+ throw new Error(`[RudderJS] ${seederFile} has no default export. Export a Seeder subclass or an async function.`);
179
+ }
180
+ if (typeof exported === 'function') {
181
+ // Class constructor → instantiate + run(); or plain function → invoke
182
+ const isClass = /^class\s/.test(Function.prototype.toString.call(exported));
183
+ if (isClass) {
184
+ const Cls = exported;
185
+ const instance = new Cls();
186
+ await instance.run();
187
+ }
188
+ else {
189
+ await exported();
190
+ }
191
+ }
192
+ else {
193
+ throw new Error(`[RudderJS] ${seederFile} default export must be a Seeder class or function.`);
194
+ }
195
+ console.log(' Seeding complete.');
196
+ return;
197
+ }
198
+ if (detectORM(cwd) === 'prisma' && hasPrismaSeedConfig(cwd)) {
199
+ console.log(' Running prisma db seed (configured in package.json)…');
200
+ const code = await run('pnpm', ['exec', 'prisma', 'db', 'seed'], cwd);
201
+ if (code !== 0) {
202
+ throw new Error(`prisma db seed failed (exit ${code})`);
203
+ }
204
+ return;
205
+ }
206
+ throw new Error('[RudderJS] No seeder found. Create database/seeders/DatabaseSeeder.ts:\n\n' +
207
+ ' import { Seeder } from \'@rudderjs/orm\'\n' +
208
+ ' export default class DatabaseSeeder extends Seeder {\n' +
209
+ ' async run() { /* seed your data */ }\n' +
210
+ ' }\n');
130
211
  }
131
212
  //# sourceMappingURL=migrate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAM1C,6DAA6D;AAE7D,2EAA2E;AAC3E,MAAM,UAAU,SAAS,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACnD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;QACvE,MAAM,IAAI,GAA2B,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,eAAe,EAAE,CAAA;QACpF,IAAI,sBAAsB,IAAI,IAAI;YAAE,OAAO,QAAQ,CAAA;QACnD,IAAI,uBAAuB,IAAI,IAAI;YAAE,OAAO,SAAS,CAAA;QACrD,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,mEAAmE;AACnE,SAAS,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,GAAW;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QACrE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;QAC5C,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC1B,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACxD,KAAK,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,kBAAkB,GAAG,EAAE,CAAC,CAAA;QAC3E,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAA;IAC7C,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAC7D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;QACvE,OAAO,OAAO,GAAG,EAAE,MAAM,EAAE,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,SAAS,CACvB,GAAQ,EACR,OAAsG,EACtG,UAA2C,EAAE;IAE7C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,aAAa,CAAA;IACnE,MAAM,MAAM,GAAG,GAAG,KAAK,YAAY,CAAA;IAEnC,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACrB,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,SAAS;gBACZ,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YACjE,KAAK,eAAe;gBAClB,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;YAC1D,KAAK,gBAAgB;gBACnB,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;YAChD,KAAK,gBAAgB;gBACnB,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC,CAAA;YACrG,KAAK,SAAS;gBACZ,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;YACzC,KAAK,aAAa;gBAChB,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;IAED,UAAU;IACV,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,CAAA;QAC3C,KAAK,eAAe;YAClB,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;QACtD,KAAK,gBAAgB;YACnB,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;QACzC,KAAK,gBAAgB;YACnB,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC,CAAA;QACnF,KAAK,SAAS;YACZ,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;QACxC,KAAK,aAAa;YAChB,6DAA6D;YAC7D,OAAO,EAAE,CAAA;IACb,CAAC;AACH,CAAC;AAED,6DAA6D;AAE7D;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAA4H;IAE5H,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAEzB,SAAS,UAAU;QACjB,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;QAC1B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAA;QAC5F,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,KAAK,UAAU,IAAI,CACjB,GAAQ,EACR,OAAwC,EACxC,OAA2B;QAE3B,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,aAAa,EAAE,CAAC,CAAA;QACnG,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;YACvD,OAAM;QACR,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;QACzC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,GAAG,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,GAAG,GAAG,UAAU,EAAE,CAAA;QACxB,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAA;QAC5B,MAAM,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QAC1B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;IACvC,CAAC,CAAC,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAAA;IAEjD,yDAAyD;IACzD,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,GAAG,GAAG,UAAU,EAAE,CAAA;QACxB,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAA;QAC5B,MAAM,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAA;QAChC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAC,WAAW,CAAC,2CAA2C,CAAC,CAAA;IAE3D,yDAAyD;IACzD,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,GAAG,GAAG,UAAU,EAAE,CAAA;QACxB,MAAM,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;IACnC,CAAC,CAAC,CAAC,WAAW,CAAC,mCAAmC,CAAC,CAAA;IAEnD,yDAAyD;IACzD,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAc,EAAE,EAAE;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,WAAW,CAAA;QACnC,MAAM,GAAG,GAAG,UAAU,EAAE,CAAA;QACxB,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAA;QAC5B,MAAM,IAAI,CAAC,GAAG,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3C,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,YAAY,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAC,WAAW,CAAC,iEAAiE,CAAC,CAAA;IAEjF,yDAAyD;IACzD,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,GAAG,GAAG,UAAU,EAAE,CAAA;QACxB,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAA;QAC5B,MAAM,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QAC1B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;IACnC,CAAC,CAAC,CAAC,WAAW,CAAC,kEAAkE,CAAC,CAAA;IAElF,yDAAyD;IACzD,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,GAAG,GAAG,UAAU,EAAE,CAAA;QACxB,MAAM,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;QAC9B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;IACpC,CAAC,CAAC,CAAC,WAAW,CAAC,8CAA8C,CAAC,CAAA;IAE9D,yDAAyD;IACzD,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,SAAS,CAAC,GAAG,CAAC,CAAA;IACtB,CAAC,CAAC,CAAC,WAAW,CAAC,0DAA0D,CAAC,CAAA;AAC5E,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACzD,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;IACtC,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;QACnE,MAAM,GAAG,GAAY,MAAM,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAA;QACjE,MAAM,QAAQ,GAAI,GAA6B,CAAC,OAAO,CAAA;QACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,cAAc,UAAU,wEAAwE,CAAC,CAAA;QACnH,CAAC;QACD,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;YACnC,sEAAsE;YACtE,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC3E,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,QAAqD,CAAA;gBACjE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;gBAC1B,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAA;YACtB,CAAC;iBAAM,CAAC;gBACN,MAAO,QAAuC,EAAE,CAAA;YAClD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,cAAc,UAAU,qDAAqD,CAAC,CAAA;QAChG,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;QAClC,OAAM;IACR,CAAC;IAED,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAA;QACrE,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAA;QACrE,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,GAAG,CAAC,CAAA;QACzD,CAAC;QACD,OAAM;IACR,CAAC;IAED,MAAM,IAAI,KAAK,CACb,4EAA4E;QAC5E,8CAA8C;QAC9C,0DAA0D;QAC1D,4CAA4C;QAC5C,OAAO,CACR,CAAA;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -7,6 +7,8 @@ export { Attribute } from './attribute.js';
7
7
  export { JsonResource, ResourceCollection } from './resource.js';
8
8
  export { ModelCollection } from './collection.js';
9
9
  export { ModelFactory, sequence } from './factory.js';
10
+ export { Seeder } from './seeder.js';
11
+ export type { SeederConstructor } from './seeder.js';
10
12
  export declare class ModelRegistry {
11
13
  private static adapter;
12
14
  private static models;
@@ -38,12 +40,28 @@ export declare class ModelRegistry {
38
40
  static onRegister(listener: (name: string, ModelClass: typeof Model) => void): () => void;
39
41
  static reset(): void;
40
42
  }
41
- export type ModelEvent = 'creating' | 'created' | 'updating' | 'updated' | 'deleting' | 'deleted' | 'restoring' | 'restored';
43
+ /**
44
+ * Thrown by `Model.findOrFail()` and `Model.firstOrFail()` when no record matches.
45
+ * Apps can catch this to render a 404, or let it bubble — `@rudderjs/core` maps
46
+ * it to an HTTP 404 by default.
47
+ */
48
+ export declare class ModelNotFoundError extends Error {
49
+ readonly model: string;
50
+ readonly id?: string | number;
51
+ constructor(model: string, id?: string | number);
52
+ }
53
+ export type ModelEvent = 'retrieved' | 'creating' | 'created' | 'updating' | 'updated' | 'saving' | 'saved' | 'deleting' | 'deleted' | 'restoring' | 'restored';
42
54
  export interface ModelObserver {
55
+ /** Fired after a record is loaded from the database (find/first/all/get). */
56
+ retrieved?(record: Record<string, unknown>): void | Promise<void>;
43
57
  creating?(data: Record<string, unknown>): Record<string, unknown> | void | Promise<Record<string, unknown> | void>;
44
58
  created?(record: Record<string, unknown>): void | Promise<void>;
45
59
  updating?(id: string | number, data: Record<string, unknown>): Record<string, unknown> | false | void | Promise<Record<string, unknown> | false | void>;
46
60
  updated?(record: Record<string, unknown>): void | Promise<void>;
61
+ /** Fired before BOTH creating and updating, after the per-event handler. */
62
+ saving?(data: Record<string, unknown>): Record<string, unknown> | void | Promise<Record<string, unknown> | void>;
63
+ /** Fired after BOTH created and updated. */
64
+ saved?(record: Record<string, unknown>): void | Promise<void>;
47
65
  deleting?(id: string | number): false | void | Promise<false | void>;
48
66
  deleted?(id: string | number): void | Promise<void>;
49
67
  restoring?(id: string | number): false | void | Promise<false | void>;
@@ -99,6 +117,7 @@ export declare function Appends(target: object, key: string | symbol): void;
99
117
  */
100
118
  export declare function Cast(type: CastDefinition): (target: object, key: string | symbol) => void;
101
119
  export declare abstract class Model {
120
+ #private;
102
121
  /** The table name — defaults to lowercase class name + 's' */
103
122
  static table: string;
104
123
  /** Primary key column */
@@ -152,38 +171,131 @@ export declare abstract class Model {
152
171
  * - Use `forceDelete()` to permanently remove a record
153
172
  */
154
173
  static softDeletes: boolean;
155
- /** @internal */
156
- private _instanceHidden?;
157
- /** @internal */
158
- private _instanceVisible?;
159
174
  static globalScopes: Record<string, ScopeFn>;
160
175
  static scopes: Record<string, ScopeFn>;
161
176
  /** @internal */
162
177
  private static _observers;
163
178
  /** @internal */
164
179
  private static _listeners;
180
+ /** @internal — true while a withoutEvents() block is active for this class. */
181
+ private static _eventsMuted;
165
182
  static observe(ObserverClass: new () => ModelObserver): void;
166
183
  static on(event: ModelEvent, handler: (...args: any[]) => any): void;
167
184
  private static _fireEvent;
168
185
  static clearObservers(): void;
169
186
  static getTable(this: typeof Model): string;
187
+ /**
188
+ * Build a Model instance from a plain database record.
189
+ *
190
+ * The returned object is `instanceof <ModelClass>`, has the model's
191
+ * prototype methods (`save`, `fill`, `refresh`, `delete`, etc.), and
192
+ * carries every column from `record` as an enumerable own property.
193
+ *
194
+ * Idempotent: passing an already-hydrated instance of the same class
195
+ * returns it unchanged. Passing `null`/`undefined` returns `null`.
196
+ *
197
+ * Most callers don't need to invoke this directly — query results
198
+ * (`find`, `first`, `all`, `paginate`, `where().get()`, etc.) are
199
+ * hydrated automatically. Use it when you have a raw record from
200
+ * outside the ORM (e.g. cached JSON, a fixture file) and want a
201
+ * working Model instance.
202
+ */
203
+ static hydrate<T extends typeof Model>(this: T, record: unknown): InstanceType<T> | null;
204
+ /** @internal — wrap a QueryBuilder so its read methods return Model instances. */
205
+ private static _hydratingQb;
170
206
  static query<T extends typeof Model>(this: T): QueryBuilder<InstanceType<T>> & {
171
207
  scope(name: string, ...args: unknown[]): QueryBuilder<InstanceType<T>>;
172
208
  withoutGlobalScope(name: string): QueryBuilder<InstanceType<T>>;
173
209
  };
174
210
  private static _q;
175
211
  static find<T extends typeof Model>(this: T, id: number | string): Promise<InstanceType<T> | null>;
212
+ /** Like `find()`, but throws `ModelNotFoundError` if no record matches. */
213
+ static findOrFail<T extends typeof Model>(this: T, id: number | string): Promise<InstanceType<T>>;
176
214
  static all<T extends typeof Model>(this: T): Promise<InstanceType<T>[]>;
177
215
  static first<T extends typeof Model>(this: T): Promise<InstanceType<T> | null>;
216
+ /** Like `first()`, but throws `ModelNotFoundError` if no record matches. */
217
+ static firstOrFail<T extends typeof Model>(this: T): Promise<InstanceType<T>>;
178
218
  static count<T extends typeof Model>(this: T): Promise<number>;
179
219
  static paginate<T extends typeof Model>(this: T, page: number, perPage?: number): Promise<PaginatedResult<InstanceType<T>>>;
180
220
  static where<T extends typeof Model>(this: T, column: string, value: unknown): QueryBuilder<InstanceType<T>>;
221
+ /**
222
+ * Find a record by attributes; if none exists, create one with `attrs` merged with `values`.
223
+ * Returns the existing or newly-created record.
224
+ */
225
+ static firstOrCreate<T extends typeof Model>(this: T, attrs: Partial<InstanceType<T>>, values?: Partial<InstanceType<T>>): Promise<InstanceType<T>>;
226
+ /**
227
+ * Find a record by attributes; if found, update it with `values`. If not, create it
228
+ * with `attrs` merged with `values`. Returns the upserted record.
229
+ */
230
+ static updateOrCreate<T extends typeof Model>(this: T, attrs: Partial<InstanceType<T>>, values: Partial<InstanceType<T>>): Promise<InstanceType<T>>;
231
+ /**
232
+ * Run `fn` with all observer / listener firing muted for this model class.
233
+ * Useful for bulk seeding or tests where lifecycle hooks would interfere.
234
+ */
235
+ static withoutEvents<T>(this: typeof Model, fn: () => T | Promise<T>): Promise<T>;
181
236
  static create<T extends typeof Model>(this: T, data: Partial<InstanceType<T>>): Promise<InstanceType<T>>;
182
237
  static with<T extends typeof Model>(this: T, ...relations: string[]): QueryBuilder<InstanceType<T>>;
183
238
  static update<T extends typeof Model>(this: T, id: number | string, data: Partial<InstanceType<T>>): Promise<InstanceType<T>>;
184
239
  static delete<T extends typeof Model>(this: T, id: number | string): Promise<void>;
185
240
  static restore<T extends typeof Model>(this: T, id: number | string): Promise<InstanceType<T>>;
186
241
  static forceDelete<T extends typeof Model>(this: T, id: number | string): Promise<void>;
242
+ /** @internal — pull the primary-key value from this instance, or `undefined` if unset. */
243
+ private _getKey;
244
+ /**
245
+ * @internal — own enumerable data fields, with framework-internal `_` keys
246
+ * stripped and `undefined` values dropped so a class-declared but never-set
247
+ * field (`id!: number`) doesn't leak into a create/update payload.
248
+ */
249
+ private _toData;
250
+ /**
251
+ * Persist this instance. Inserts when the primary key is unset; otherwise updates.
252
+ *
253
+ * Goes through the static `create()` / `update()` path so observers, casts,
254
+ * and mutators all fire. The instance is mutated in place with the canonical
255
+ * fields returned by the database (default values, generated ids, computed columns)
256
+ * and returned for chaining.
257
+ */
258
+ save(): Promise<this>;
259
+ /**
260
+ * Mass-assign a partial set of attributes onto this instance. Does not persist —
261
+ * call `save()` afterwards. Returns `this` for chaining.
262
+ *
263
+ * Note: `static fillable` is currently a documentation hint and is not enforced
264
+ * at the framework level; filter user input with a `FormRequest` or explicit
265
+ * key picks before calling `fill()`.
266
+ */
267
+ fill(data: Partial<this>): this;
268
+ /**
269
+ * Re-read this instance from the database, replacing in-place with fresh
270
+ * column values. Throws `ModelNotFoundError` if the row no longer exists.
271
+ * Useful after triggers, generated columns, or a parallel update from another process.
272
+ */
273
+ refresh(): Promise<this>;
274
+ /**
275
+ * Delete this instance from the database. Soft-deletes when `static softDeletes`
276
+ * is enabled. Routes through the static `delete()` so observers fire.
277
+ */
278
+ delete(): Promise<void>;
279
+ /**
280
+ * Clone this instance into a new, unsaved copy — the primary key and the
281
+ * standard timestamp columns are dropped, and any keys passed in `except`
282
+ * are also stripped. Call `save()` on the returned instance to persist.
283
+ *
284
+ * @example
285
+ * const draft = post.replicate(['publishedAt'])
286
+ * draft.title = 'Copy: ' + draft.title
287
+ * await draft.save()
288
+ */
289
+ replicate(except?: string[]): this;
290
+ /**
291
+ * True when `other` represents the same record — same model class (by table)
292
+ * and same primary key.
293
+ */
294
+ is(other: Model | null | undefined): boolean;
295
+ /** Inverse of `is()`. */
296
+ isNot(other: Model | null | undefined): boolean;
297
+ /** True when this instance has been soft-deleted (its `deletedAt` is set). */
298
+ trashed(): boolean;
187
299
  /** @internal — apply cast setters and attribute mutators to an incoming data payload */
188
300
  private static _applyMutators;
189
301
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ export { Attribute } from './attribute.js';
3
3
  export { JsonResource, ResourceCollection } from './resource.js';
4
4
  export { ModelCollection } from './collection.js';
5
5
  export { ModelFactory, sequence } from './factory.js';
6
+ export { Seeder } from './seeder.js';
6
7
  // ─── Global ORM Registry ───────────────────────────────────
7
8
  export class ModelRegistry {
8
9
  static adapter = null;
@@ -60,6 +61,25 @@ export class ModelRegistry {
60
61
  this.listeners.clear();
61
62
  }
62
63
  }
64
+ // ─── Errors ────────────────────────────────────────────────
65
+ /**
66
+ * Thrown by `Model.findOrFail()` and `Model.firstOrFail()` when no record matches.
67
+ * Apps can catch this to render a 404, or let it bubble — `@rudderjs/core` maps
68
+ * it to an HTTP 404 by default.
69
+ */
70
+ export class ModelNotFoundError extends Error {
71
+ model;
72
+ id;
73
+ constructor(model, id) {
74
+ super(id !== undefined
75
+ ? `[RudderJS ORM] No ${model} found for id ${String(id)}.`
76
+ : `[RudderJS ORM] No ${model} found.`);
77
+ this.name = 'ModelNotFoundError';
78
+ this.model = model;
79
+ if (id !== undefined)
80
+ this.id = id;
81
+ }
82
+ }
63
83
  // ─── Decorators ────────────────────────────────────────────
64
84
  /**
65
85
  * Mark an instance property as hidden from JSON output.
@@ -191,10 +211,14 @@ export class Model {
191
211
  */
192
212
  static softDeletes = false;
193
213
  // ── Instance-level serialization overrides ─────────────
214
+ //
215
+ // True ECMAScript private fields (`#`) so they don't appear in
216
+ // `Object.entries(this)` / object spread / `JSON.stringify` — keeps
217
+ // hydrated instances clean wire-format equivalents of plain records.
194
218
  /** @internal */
195
- _instanceHidden;
219
+ #instanceHidden;
196
220
  /** @internal */
197
- _instanceVisible;
221
+ #instanceVisible;
198
222
  // ── Scopes ─────────────────────────────────────────────
199
223
  static globalScopes = {};
200
224
  static scopes = {};
@@ -204,6 +228,8 @@ export class Model {
204
228
  /** @internal */
205
229
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
206
230
  static _listeners = new Map();
231
+ /** @internal — true while a withoutEvents() block is active for this class. */
232
+ static _eventsMuted = false;
207
233
  static observe(ObserverClass) {
208
234
  if (!Object.prototype.hasOwnProperty.call(this, '_observers')) {
209
235
  this._observers = [];
@@ -221,6 +247,10 @@ export class Model {
221
247
  }
222
248
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
223
249
  static async _fireEvent(event, ...args) {
250
+ if (Object.prototype.hasOwnProperty.call(this, '_eventsMuted') && this._eventsMuted) {
251
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
252
+ return args[0];
253
+ }
224
254
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
225
255
  let result = args[0];
226
256
  const observers = Object.prototype.hasOwnProperty.call(this, '_observers') ? this._observers : [];
@@ -255,89 +285,238 @@ export class Model {
255
285
  static getTable() {
256
286
  return this.table ?? `${this.name.toLowerCase()}s`;
257
287
  }
288
+ /**
289
+ * Build a Model instance from a plain database record.
290
+ *
291
+ * The returned object is `instanceof <ModelClass>`, has the model's
292
+ * prototype methods (`save`, `fill`, `refresh`, `delete`, etc.), and
293
+ * carries every column from `record` as an enumerable own property.
294
+ *
295
+ * Idempotent: passing an already-hydrated instance of the same class
296
+ * returns it unchanged. Passing `null`/`undefined` returns `null`.
297
+ *
298
+ * Most callers don't need to invoke this directly — query results
299
+ * (`find`, `first`, `all`, `paginate`, `where().get()`, etc.) are
300
+ * hydrated automatically. Use it when you have a raw record from
301
+ * outside the ORM (e.g. cached JSON, a fixture file) and want a
302
+ * working Model instance.
303
+ */
304
+ static hydrate(record) {
305
+ if (record === null || record === undefined)
306
+ return null;
307
+ if (record instanceof Model && record.constructor === this)
308
+ return record;
309
+ const Ctor = this;
310
+ const instance = new Ctor();
311
+ Object.assign(instance, record);
312
+ return instance;
313
+ }
314
+ /** @internal — wrap a QueryBuilder so its read methods return Model instances. */
315
+ static _hydratingQb(self, qb) {
316
+ const ModelClass = self;
317
+ const wrap = (r) => ModelClass.hydrate.call(self, r);
318
+ const wrapMaybe = (r) => r == null ? null : wrap(r);
319
+ const wrapMany = (rs) => rs.map(wrap);
320
+ const proxy = new Proxy(qb, {
321
+ get(target, prop, receiver) {
322
+ const value = Reflect.get(target, prop, receiver);
323
+ if (typeof value !== 'function')
324
+ return value;
325
+ switch (prop) {
326
+ case 'find':
327
+ return async (id) => wrapMaybe(await target.find(id));
328
+ case 'first':
329
+ return async () => wrapMaybe(await target.first());
330
+ case 'get':
331
+ return async () => wrapMany(await target.get());
332
+ case 'all':
333
+ return async () => wrapMany(await target.all());
334
+ case 'paginate':
335
+ return async (page, perPage) => {
336
+ const r = await target.paginate(page ?? 1, perPage);
337
+ return { ...r, data: wrapMany(r.data) };
338
+ };
339
+ case 'create':
340
+ return async (data) => wrap(await target.create(data));
341
+ case 'update':
342
+ return async (id, data) => wrap(await target.update(id, data));
343
+ case 'restore':
344
+ return async (id) => wrap(await target.restore(id));
345
+ default:
346
+ // Chainable methods (where/orderBy/with/...) typically return `target` —
347
+ // re-wrap so `Model.where('a', 1).first()` keeps hydrating.
348
+ return (...args) => {
349
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
350
+ const result = value.apply(target, args);
351
+ return result === target ? proxy : result;
352
+ };
353
+ }
354
+ },
355
+ });
356
+ return proxy;
357
+ }
258
358
  static query() {
259
359
  ModelRegistry.register(this);
260
- let q = ModelRegistry.getAdapter().query(this.getTable());
261
- if (this.softDeletes) {
262
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
263
- q._enableSoftDeletes?.();
264
- }
265
- const globalScopes = this.globalScopes;
266
- const excludedScopes = new Set();
267
- for (const [, scopeFn] of Object.entries(globalScopes)) {
268
- q = scopeFn(q);
269
- }
270
360
  const modelClass = this;
271
361
  const localScopes = modelClass.scopes;
272
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
273
- const enhanced = q;
274
- enhanced.scope = (name, ...args) => {
275
- const scopeFn = localScopes[name];
276
- if (!scopeFn)
277
- throw new Error(`[RudderJS ORM] Scope "${name}" is not defined on ${modelClass.name}.`);
278
- return scopeFn(enhanced, ...args);
279
- };
280
- enhanced.withoutGlobalScope = (name) => {
281
- excludedScopes.add(name);
282
- let rebuilt = ModelRegistry.getAdapter().query(modelClass.getTable());
362
+ const globalScopes = modelClass.globalScopes;
363
+ const excludedScopes = new Set();
364
+ const buildScoped = () => {
365
+ let raw = ModelRegistry.getAdapter().query(modelClass.getTable());
283
366
  if (modelClass.softDeletes) {
284
367
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
285
- rebuilt._enableSoftDeletes?.();
368
+ raw._enableSoftDeletes?.();
286
369
  }
287
370
  for (const [scopeName, scopeFn] of Object.entries(globalScopes)) {
288
371
  if (!excludedScopes.has(scopeName)) {
289
- rebuilt = scopeFn(rebuilt);
372
+ raw = scopeFn(raw);
290
373
  }
291
374
  }
375
+ return Model._hydratingQb(this, raw);
376
+ };
377
+ const enhance = (q) => {
292
378
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
293
- ;
294
- rebuilt.scope = enhanced.scope;
295
- rebuilt.withoutGlobalScope = enhanced.withoutGlobalScope;
296
- return rebuilt;
379
+ const enhanced = q;
380
+ enhanced.scope = (name, ...args) => {
381
+ const scopeFn = localScopes[name];
382
+ if (!scopeFn)
383
+ throw new Error(`[RudderJS ORM] Scope "${name}" is not defined on ${modelClass.name}.`);
384
+ return scopeFn(enhanced, ...args);
385
+ };
386
+ enhanced.withoutGlobalScope = (name) => {
387
+ excludedScopes.add(name);
388
+ return enhance(buildScoped());
389
+ };
390
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
391
+ return enhanced;
297
392
  };
298
- return enhanced;
393
+ return enhance(buildScoped());
299
394
  }
300
395
  static _q(self) {
301
396
  ModelRegistry.register(self);
302
- const q = ModelRegistry.getAdapter().query(self.getTable());
303
- if (self.softDeletes) {
397
+ const ModelClass = self;
398
+ let q = ModelRegistry.getAdapter().query(ModelClass.getTable());
399
+ if (ModelClass.softDeletes) {
304
400
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
305
401
  q._enableSoftDeletes?.();
306
402
  }
307
- let result = q;
308
- for (const [, scopeFn] of Object.entries(self.globalScopes)) {
309
- result = scopeFn(result);
403
+ for (const [, scopeFn] of Object.entries(ModelClass.globalScopes)) {
404
+ q = scopeFn(q);
310
405
  }
311
- return result;
406
+ return Model._hydratingQb(self, q);
407
+ }
408
+ static async find(id) {
409
+ const self = this;
410
+ const record = await Model._q(this).find(id);
411
+ if (record)
412
+ await self._fireEvent('retrieved', record);
413
+ return record;
414
+ }
415
+ /** Like `find()`, but throws `ModelNotFoundError` if no record matches. */
416
+ static async findOrFail(id) {
417
+ const record = await this.find(id);
418
+ if (!record)
419
+ throw new ModelNotFoundError(this.name, id);
420
+ return record;
312
421
  }
313
- static find(id) {
314
- return Model._q(this).find(id);
422
+ static async all() {
423
+ const self = this;
424
+ const records = await Model._q(this).all();
425
+ for (const r of records)
426
+ await self._fireEvent('retrieved', r);
427
+ return records;
315
428
  }
316
- static all() {
317
- return Model._q(this).all();
429
+ static async first() {
430
+ const self = this;
431
+ const record = await Model._q(this).first();
432
+ if (record)
433
+ await self._fireEvent('retrieved', record);
434
+ return record;
318
435
  }
319
- static first() {
320
- return Model._q(this).first();
436
+ /** Like `first()`, but throws `ModelNotFoundError` if no record matches. */
437
+ static async firstOrFail() {
438
+ const record = await this.first();
439
+ if (!record)
440
+ throw new ModelNotFoundError(this.name);
441
+ return record;
321
442
  }
322
443
  static count() {
323
444
  return Model._q(this).count();
324
445
  }
325
- static paginate(page, perPage) {
326
- return Model._q(this).paginate(page, perPage);
446
+ static async paginate(page, perPage) {
447
+ const self = this;
448
+ const result = await Model._q(this).paginate(page, perPage);
449
+ for (const r of result.data)
450
+ await self._fireEvent('retrieved', r);
451
+ return result;
327
452
  }
328
453
  static where(column, value) {
329
454
  return Model._q(this).where(column, value);
330
455
  }
456
+ /**
457
+ * Find a record by attributes; if none exists, create one with `attrs` merged with `values`.
458
+ * Returns the existing or newly-created record.
459
+ */
460
+ static async firstOrCreate(attrs, values = {}) {
461
+ const self = this;
462
+ let q = Model._q(this);
463
+ for (const [col, val] of Object.entries(attrs)) {
464
+ q = q.where(col, val);
465
+ }
466
+ const existing = await q.first();
467
+ if (existing) {
468
+ await self._fireEvent('retrieved', existing);
469
+ return existing;
470
+ }
471
+ return this.create({ ...attrs, ...values });
472
+ }
473
+ /**
474
+ * Find a record by attributes; if found, update it with `values`. If not, create it
475
+ * with `attrs` merged with `values`. Returns the upserted record.
476
+ */
477
+ static async updateOrCreate(attrs, values) {
478
+ const self = this;
479
+ let q = Model._q(this);
480
+ for (const [col, val] of Object.entries(attrs)) {
481
+ q = q.where(col, val);
482
+ }
483
+ const existing = await q.first();
484
+ if (existing) {
485
+ const id = existing[self.primaryKey];
486
+ return this.update(id, values);
487
+ }
488
+ return this.create({ ...attrs, ...values });
489
+ }
490
+ /**
491
+ * Run `fn` with all observer / listener firing muted for this model class.
492
+ * Useful for bulk seeding or tests where lifecycle hooks would interfere.
493
+ */
494
+ static async withoutEvents(fn) {
495
+ const previous = Object.prototype.hasOwnProperty.call(this, '_eventsMuted') ? this._eventsMuted : false;
496
+ this._eventsMuted = true;
497
+ try {
498
+ return await fn();
499
+ }
500
+ finally {
501
+ this._eventsMuted = previous;
502
+ }
503
+ }
331
504
  static async create(data) {
332
505
  const self = this;
333
506
  let payload = self._applyMutators(data);
334
- const result = await self._fireEvent('creating', payload);
335
- if (result === false)
507
+ const creatingResult = await self._fireEvent('creating', payload);
508
+ if (creatingResult === false)
336
509
  throw new Error(`[RudderJS ORM] Create cancelled by observer on ${self.name}.`);
337
- if (result && typeof result === 'object')
338
- payload = result;
510
+ if (creatingResult && typeof creatingResult === 'object')
511
+ payload = creatingResult;
512
+ const savingResult = await self._fireEvent('saving', payload);
513
+ if (savingResult === false)
514
+ throw new Error(`[RudderJS ORM] Create cancelled by saving observer on ${self.name}.`);
515
+ if (savingResult && typeof savingResult === 'object')
516
+ payload = savingResult;
339
517
  const record = await Model._q(this).create(payload);
340
518
  await self._fireEvent('created', record);
519
+ await self._fireEvent('saved', record);
341
520
  return record;
342
521
  }
343
522
  static with(...relations) {
@@ -346,13 +525,19 @@ export class Model {
346
525
  static async update(id, data) {
347
526
  const self = this;
348
527
  let payload = self._applyMutators(data);
349
- const result = await self._fireEvent('updating', id, payload);
350
- if (result === false)
528
+ const updatingResult = await self._fireEvent('updating', id, payload);
529
+ if (updatingResult === false)
351
530
  throw new Error(`[RudderJS ORM] Update cancelled by observer on ${self.name}.`);
352
- if (result && typeof result === 'object')
353
- payload = result;
531
+ if (updatingResult && typeof updatingResult === 'object')
532
+ payload = updatingResult;
533
+ const savingResult = await self._fireEvent('saving', payload);
534
+ if (savingResult === false)
535
+ throw new Error(`[RudderJS ORM] Update cancelled by saving observer on ${self.name}.`);
536
+ if (savingResult && typeof savingResult === 'object')
537
+ payload = savingResult;
354
538
  const record = await Model._q(this).update(id, payload);
355
539
  await self._fireEvent('updated', record);
540
+ await self._fireEvent('saved', record);
356
541
  return record;
357
542
  }
358
543
  static async delete(id) {
@@ -380,6 +565,149 @@ export class Model {
380
565
  await Model._q(this).forceDelete(id);
381
566
  await self._fireEvent('deleted', id);
382
567
  }
568
+ // ── Instance persistence methods ───────────────────────
569
+ /** @internal — pull the primary-key value from this instance, or `undefined` if unset. */
570
+ _getKey() {
571
+ const ctor = this.constructor;
572
+ const value = this[ctor.primaryKey];
573
+ if (value === undefined || value === null)
574
+ return undefined;
575
+ return value;
576
+ }
577
+ /**
578
+ * @internal — own enumerable data fields, with framework-internal `_` keys
579
+ * stripped and `undefined` values dropped so a class-declared but never-set
580
+ * field (`id!: number`) doesn't leak into a create/update payload.
581
+ */
582
+ _toData() {
583
+ const out = {};
584
+ for (const [k, v] of Object.entries(this)) {
585
+ if (k.startsWith('_'))
586
+ continue;
587
+ if (v === undefined)
588
+ continue;
589
+ out[k] = v;
590
+ }
591
+ return out;
592
+ }
593
+ /**
594
+ * Persist this instance. Inserts when the primary key is unset; otherwise updates.
595
+ *
596
+ * Goes through the static `create()` / `update()` path so observers, casts,
597
+ * and mutators all fire. The instance is mutated in place with the canonical
598
+ * fields returned by the database (default values, generated ids, computed columns)
599
+ * and returned for chaining.
600
+ */
601
+ async save() {
602
+ const ctor = this.constructor;
603
+ const data = this._toData();
604
+ const id = this._getKey();
605
+ const persisted = id === undefined
606
+ ? await ctor.create(data)
607
+ : await ctor.update(id, data);
608
+ Object.assign(this, persisted);
609
+ return this;
610
+ }
611
+ /**
612
+ * Mass-assign a partial set of attributes onto this instance. Does not persist —
613
+ * call `save()` afterwards. Returns `this` for chaining.
614
+ *
615
+ * Note: `static fillable` is currently a documentation hint and is not enforced
616
+ * at the framework level; filter user input with a `FormRequest` or explicit
617
+ * key picks before calling `fill()`.
618
+ */
619
+ fill(data) {
620
+ Object.assign(this, data);
621
+ return this;
622
+ }
623
+ /**
624
+ * Re-read this instance from the database, replacing in-place with fresh
625
+ * column values. Throws `ModelNotFoundError` if the row no longer exists.
626
+ * Useful after triggers, generated columns, or a parallel update from another process.
627
+ */
628
+ async refresh() {
629
+ const ctor = this.constructor;
630
+ const id = this._getKey();
631
+ if (id === undefined) {
632
+ throw new Error(`[RudderJS ORM] Cannot refresh a ${ctor.name} without a primary key.`);
633
+ }
634
+ const fresh = await ctor.find(id);
635
+ if (!fresh)
636
+ throw new ModelNotFoundError(ctor.name, id);
637
+ for (const k of Object.keys(this)) {
638
+ if (!k.startsWith('_'))
639
+ delete this[k];
640
+ }
641
+ Object.assign(this, fresh);
642
+ return this;
643
+ }
644
+ /**
645
+ * Delete this instance from the database. Soft-deletes when `static softDeletes`
646
+ * is enabled. Routes through the static `delete()` so observers fire.
647
+ */
648
+ async delete() {
649
+ const ctor = this.constructor;
650
+ const id = this._getKey();
651
+ if (id === undefined) {
652
+ throw new Error(`[RudderJS ORM] Cannot delete a ${ctor.name} without a primary key.`);
653
+ }
654
+ await ctor.delete(id);
655
+ }
656
+ /**
657
+ * Clone this instance into a new, unsaved copy — the primary key and the
658
+ * standard timestamp columns are dropped, and any keys passed in `except`
659
+ * are also stripped. Call `save()` on the returned instance to persist.
660
+ *
661
+ * @example
662
+ * const draft = post.replicate(['publishedAt'])
663
+ * draft.title = 'Copy: ' + draft.title
664
+ * await draft.save()
665
+ */
666
+ replicate(except = []) {
667
+ const ctor = this.constructor;
668
+ const exclude = new Set([ctor.primaryKey, 'createdAt', 'updatedAt', 'deletedAt', ...except]);
669
+ const Ctor = ctor;
670
+ const clone = new Ctor();
671
+ // Drop class-declared field defaults that fall under `exclude`, otherwise
672
+ // a subclass with `id!: number` ships an `id: undefined` own property.
673
+ // Then drop any other undefined defaults so the clone reads as a freshly-
674
+ // built record from the source instance, not a half-initialized template.
675
+ for (const k of Object.keys(clone)) {
676
+ if (exclude.has(k) || clone[k] === undefined) {
677
+ delete clone[k];
678
+ }
679
+ }
680
+ for (const [k, v] of Object.entries(this)) {
681
+ if (k.startsWith('_') || exclude.has(k) || v === undefined)
682
+ continue;
683
+ clone[k] = v;
684
+ }
685
+ return clone;
686
+ }
687
+ /**
688
+ * True when `other` represents the same record — same model class (by table)
689
+ * and same primary key.
690
+ */
691
+ is(other) {
692
+ if (!other || !(other instanceof Model))
693
+ return false;
694
+ const here = this.constructor;
695
+ const there = other.constructor;
696
+ if (here.getTable() !== there.getTable())
697
+ return false;
698
+ const a = this._getKey();
699
+ const b = other._getKey();
700
+ return a !== undefined && a === b;
701
+ }
702
+ /** Inverse of `is()`. */
703
+ isNot(other) {
704
+ return !this.is(other);
705
+ }
706
+ /** True when this instance has been soft-deleted (its `deletedAt` is set). */
707
+ trashed() {
708
+ const v = this['deletedAt'];
709
+ return v !== null && v !== undefined;
710
+ }
383
711
  // ── Cast / Mutator helpers ─────────────────────────────
384
712
  /** @internal — apply cast setters and attribute mutators to an incoming data payload */
385
713
  static _applyMutators(data) {
@@ -406,7 +734,7 @@ export class Model {
406
734
  */
407
735
  makeVisible(keys) {
408
736
  const k = Array.isArray(keys) ? keys : [keys];
409
- this._instanceHidden = (this._instanceHidden ?? this.constructor.hidden)
737
+ this.#instanceHidden = (this.#instanceHidden ?? this.constructor.hidden)
410
738
  .filter(h => !k.includes(h));
411
739
  return this;
412
740
  }
@@ -416,7 +744,7 @@ export class Model {
416
744
  */
417
745
  makeHidden(keys) {
418
746
  const k = Array.isArray(keys) ? keys : [keys];
419
- this._instanceHidden = [...(this._instanceHidden ?? this.constructor.hidden), ...k];
747
+ this.#instanceHidden = [...(this.#instanceHidden ?? this.constructor.hidden), ...k];
420
748
  return this;
421
749
  }
422
750
  /**
@@ -424,7 +752,7 @@ export class Model {
424
752
  * Returns `this` for chaining.
425
753
  */
426
754
  setVisible(keys) {
427
- this._instanceVisible = keys;
755
+ this.#instanceVisible = keys;
428
756
  return this;
429
757
  }
430
758
  /**
@@ -432,7 +760,7 @@ export class Model {
432
760
  * Returns `this` for chaining.
433
761
  */
434
762
  setHidden(keys) {
435
- this._instanceHidden = keys;
763
+ this.#instanceHidden = keys;
436
764
  return this;
437
765
  }
438
766
  /**
@@ -440,8 +768,8 @@ export class Model {
440
768
  * Returns `this` for chaining.
441
769
  */
442
770
  mergeVisible(keys) {
443
- const base = this._instanceVisible ?? this.constructor.visible;
444
- this._instanceVisible = [...base, ...keys];
771
+ const base = this.#instanceVisible ?? this.constructor.visible;
772
+ this.#instanceVisible = [...base, ...keys];
445
773
  return this;
446
774
  }
447
775
  /**
@@ -449,16 +777,15 @@ export class Model {
449
777
  * Returns `this` for chaining.
450
778
  */
451
779
  mergeHidden(keys) {
452
- const base = this._instanceHidden ?? this.constructor.hidden;
453
- this._instanceHidden = [...base, ...keys];
780
+ const base = this.#instanceHidden ?? this.constructor.hidden;
781
+ this.#instanceHidden = [...base, ...keys];
454
782
  return this;
455
783
  }
456
784
  // ── toJSON ─────────────────────────────────────────────
457
785
  toJSON() {
458
786
  const ctor = this.constructor;
459
- const rawEntries = Object.entries(this).filter(([k]) => !k.startsWith('_instance'));
460
787
  const raw = {};
461
- for (const [k, v] of rawEntries) {
788
+ for (const [k, v] of Object.entries(this)) {
462
789
  raw[k] = v;
463
790
  }
464
791
  const result = {};
@@ -485,8 +812,8 @@ export class Model {
485
812
  }
486
813
  }
487
814
  // Determine effective visible / hidden lists
488
- const effectiveVisible = this._instanceVisible ?? ctor.visible;
489
- const effectiveHidden = this._instanceHidden ?? ctor.hidden;
815
+ const effectiveVisible = this.#instanceVisible ?? ctor.visible;
816
+ const effectiveHidden = this.#instanceHidden ?? ctor.hidden;
490
817
  // Apply visible (allowlist) — takes precedence
491
818
  if (effectiveVisible.length > 0) {
492
819
  const appendKeys = new Set(ctor.appends);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Base class for database seeders. Subclass and implement `run()`.
3
+ *
4
+ * @example
5
+ * ```ts
6
+ * import { Seeder } from '@rudderjs/orm'
7
+ * import { UserSeeder } from './UserSeeder.js'
8
+ * import { PostSeeder } from './PostSeeder.js'
9
+ *
10
+ * export default class DatabaseSeeder extends Seeder {
11
+ * async run(): Promise<void> {
12
+ * await this.call(UserSeeder)
13
+ * await this.call(PostSeeder)
14
+ * }
15
+ * }
16
+ * ```
17
+ */
18
+ export declare abstract class Seeder {
19
+ abstract run(): void | Promise<void>;
20
+ /** Invoke another seeder from this one. Accepts a single class or an array. */
21
+ protected call(SeederClass: SeederConstructor | SeederConstructor[]): Promise<void>;
22
+ }
23
+ export type SeederConstructor = new () => Seeder;
24
+ //# sourceMappingURL=seeder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seeder.d.ts","sourceRoot":"","sources":["../src/seeder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,8BAAsB,MAAM;IAC1B,QAAQ,CAAC,GAAG,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAEpC,+EAA+E;cAC/D,IAAI,CAAC,WAAW,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAO1F;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,MAAM,CAAA"}
package/dist/seeder.js ADDED
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Base class for database seeders. Subclass and implement `run()`.
3
+ *
4
+ * @example
5
+ * ```ts
6
+ * import { Seeder } from '@rudderjs/orm'
7
+ * import { UserSeeder } from './UserSeeder.js'
8
+ * import { PostSeeder } from './PostSeeder.js'
9
+ *
10
+ * export default class DatabaseSeeder extends Seeder {
11
+ * async run(): Promise<void> {
12
+ * await this.call(UserSeeder)
13
+ * await this.call(PostSeeder)
14
+ * }
15
+ * }
16
+ * ```
17
+ */
18
+ export class Seeder {
19
+ /** Invoke another seeder from this one. Accepts a single class or an array. */
20
+ async call(SeederClass) {
21
+ const classes = Array.isArray(SeederClass) ? SeederClass : [SeederClass];
22
+ for (const Cls of classes) {
23
+ const seeder = new Cls();
24
+ await seeder.run();
25
+ }
26
+ }
27
+ }
28
+ //# sourceMappingURL=seeder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seeder.js","sourceRoot":"","sources":["../src/seeder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAgB,MAAM;IAG1B,+EAA+E;IACrE,KAAK,CAAC,IAAI,CAAC,WAAoD;QACvE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;QACxE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,CAAA;YACxB,MAAM,MAAM,CAAC,GAAG,EAAE,CAAA;QACpB,CAAC;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rudderjs/orm",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -37,7 +37,7 @@
37
37
  "dev": "tsc -p tsconfig.build.json --watch",
38
38
  "typecheck": "tsc --noEmit",
39
39
  "lint": "eslint src",
40
- "test": "tsc -p tsconfig.test.json && node --test dist-test/index.test.js dist-test/commands/migrate.test.js; EXIT=$?; rm -rf dist-test; exit $EXIT",
40
+ "test": "tsc -p tsconfig.test.json && node --test dist-test/index.test.js dist-test/seeder.test.js dist-test/commands/migrate.test.js; EXIT=$?; rm -rf dist-test; exit $EXIT",
41
41
  "clean": "rm -rf dist"
42
42
  }
43
43
  }