@warlock.js/cascade 4.0.92 → 4.0.93
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/cjs/contracts/database-driver.contract.d.ts +118 -0
- package/cjs/contracts/database-driver.contract.d.ts.map +1 -1
- package/cjs/contracts/migration-driver.contract.d.ts +14 -0
- package/cjs/contracts/migration-driver.contract.d.ts.map +1 -1
- package/cjs/contracts/query-builder.contract.d.ts +410 -1
- package/cjs/contracts/query-builder.contract.d.ts.map +1 -1
- package/cjs/data-source/data-source-registry.d.ts +4 -0
- package/cjs/data-source/data-source-registry.d.ts.map +1 -1
- package/cjs/data-source/data-source-registry.js +7 -0
- package/cjs/data-source/data-source-registry.js.map +1 -1
- package/cjs/drivers/mongodb/mongodb-blueprint.d.ts.map +1 -0
- package/cjs/drivers/mongodb/mongodb-blueprint.js.map +1 -0
- package/{esm/drivers/mongo → cjs/drivers/mongodb}/mongodb-driver.d.ts +49 -0
- package/cjs/drivers/mongodb/mongodb-driver.d.ts.map +1 -0
- package/cjs/drivers/{mongo → mongodb}/mongodb-driver.js +125 -8
- package/cjs/drivers/mongodb/mongodb-driver.js.map +1 -0
- package/cjs/drivers/{mongo/mongo-id-generator.d.ts → mongodb/mongodb-id-generator.d.ts} +1 -1
- package/cjs/drivers/mongodb/mongodb-id-generator.d.ts.map +1 -0
- package/cjs/drivers/{mongo/mongo-id-generator.js → mongodb/mongodb-id-generator.js} +1 -1
- package/cjs/drivers/mongodb/mongodb-id-generator.js.map +1 -0
- package/cjs/drivers/{mongo/mongo-migration-driver.d.ts → mongodb/mongodb-migration-driver.d.ts} +10 -1
- package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts.map +1 -0
- package/cjs/drivers/{mongo/mongo-migration-driver.js → mongodb/mongodb-migration-driver.js} +18 -1
- package/cjs/drivers/mongodb/mongodb-migration-driver.js.map +1 -0
- package/cjs/drivers/{mongo/mongo-query-builder.d.ts → mongodb/mongodb-query-builder.d.ts} +172 -4
- package/cjs/drivers/mongodb/mongodb-query-builder.d.ts.map +1 -0
- package/cjs/drivers/{mongo/mongo-query-builder.js → mongodb/mongodb-query-builder.js} +220 -14
- package/cjs/drivers/mongodb/mongodb-query-builder.js.map +1 -0
- package/{esm/drivers/mongo/mongo-query-operations.d.ts → cjs/drivers/mongodb/mongodb-query-operations.d.ts} +16 -16
- package/cjs/drivers/mongodb/mongodb-query-operations.d.ts.map +1 -0
- package/cjs/drivers/{mongo/mongo-query-operations.js → mongodb/mongodb-query-operations.js} +22 -22
- package/cjs/drivers/mongodb/mongodb-query-operations.js.map +1 -0
- package/cjs/drivers/{mongo/mongo-query-parser.d.ts → mongodb/mongodb-query-parser.d.ts} +2 -2
- package/cjs/drivers/mongodb/mongodb-query-parser.d.ts.map +1 -0
- package/cjs/drivers/{mongo/mongo-query-parser.js → mongodb/mongodb-query-parser.js} +87 -87
- package/cjs/drivers/mongodb/mongodb-query-parser.js.map +1 -0
- package/cjs/drivers/{mongo/mongo-sync-adapter.d.ts → mongodb/mongodb-sync-adapter.d.ts} +2 -2
- package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts.map +1 -0
- package/cjs/drivers/{mongo/mongo-sync-adapter.js → mongodb/mongodb-sync-adapter.js} +2 -2
- package/cjs/drivers/mongodb/mongodb-sync-adapter.js.map +1 -0
- package/{esm/drivers/mongo → cjs/drivers/mongodb}/types.d.ts +2 -2
- package/cjs/drivers/mongodb/types.d.ts.map +1 -0
- package/cjs/drivers/postgres/index.d.ts +16 -0
- package/cjs/drivers/postgres/index.d.ts.map +1 -0
- package/cjs/drivers/postgres/postgres-blueprint.d.ts +64 -0
- package/cjs/drivers/postgres/postgres-blueprint.d.ts.map +1 -0
- package/cjs/drivers/postgres/postgres-blueprint.js +121 -0
- package/cjs/drivers/postgres/postgres-blueprint.js.map +1 -0
- package/cjs/drivers/postgres/postgres-dialect.d.ts +135 -0
- package/cjs/drivers/postgres/postgres-dialect.d.ts.map +1 -0
- package/cjs/drivers/postgres/postgres-dialect.js +245 -0
- package/cjs/drivers/postgres/postgres-dialect.js.map +1 -0
- package/cjs/drivers/postgres/postgres-driver.d.ts +360 -0
- package/cjs/drivers/postgres/postgres-driver.d.ts.map +1 -0
- package/cjs/drivers/postgres/postgres-driver.js +763 -0
- package/cjs/drivers/postgres/postgres-driver.js.map +1 -0
- package/cjs/drivers/postgres/postgres-migration-driver.d.ts +297 -0
- package/cjs/drivers/postgres/postgres-migration-driver.d.ts.map +1 -0
- package/cjs/drivers/postgres/postgres-migration-driver.js +578 -0
- package/cjs/drivers/postgres/postgres-migration-driver.js.map +1 -0
- package/cjs/drivers/postgres/postgres-query-builder.d.ts +824 -0
- package/cjs/drivers/postgres/postgres-query-builder.d.ts.map +1 -0
- package/cjs/drivers/postgres/postgres-query-builder.js +1800 -0
- package/cjs/drivers/postgres/postgres-query-builder.js.map +1 -0
- package/cjs/drivers/postgres/postgres-query-parser.d.ts +308 -0
- package/cjs/drivers/postgres/postgres-query-parser.d.ts.map +1 -0
- package/cjs/drivers/postgres/postgres-query-parser.js +706 -0
- package/cjs/drivers/postgres/postgres-query-parser.js.map +1 -0
- package/cjs/drivers/postgres/postgres-sync-adapter.d.ts +83 -0
- package/cjs/drivers/postgres/postgres-sync-adapter.d.ts.map +1 -0
- package/cjs/drivers/postgres/postgres-sync-adapter.js +197 -0
- package/cjs/drivers/postgres/postgres-sync-adapter.js.map +1 -0
- package/cjs/drivers/postgres/types.d.ts +142 -0
- package/cjs/drivers/postgres/types.d.ts.map +1 -0
- package/cjs/drivers/sql/index.d.ts +10 -0
- package/cjs/drivers/sql/index.d.ts.map +1 -0
- package/cjs/drivers/sql/sql-dialect.contract.d.ts +203 -0
- package/cjs/drivers/sql/sql-dialect.contract.d.ts.map +1 -0
- package/cjs/drivers/sql/sql-types.d.ts +202 -0
- package/cjs/drivers/sql/sql-types.d.ts.map +1 -0
- package/cjs/index.d.ts +9 -6
- package/cjs/index.d.ts.map +1 -1
- package/cjs/index.js +1 -1
- package/cjs/migration/migration-runner.d.ts.map +1 -1
- package/cjs/migration/migration-runner.js +3 -0
- package/cjs/migration/migration-runner.js.map +1 -1
- package/cjs/model/model.d.ts +236 -1
- package/cjs/model/model.d.ts.map +1 -1
- package/cjs/model/model.js +203 -4
- package/cjs/model/model.js.map +1 -1
- package/cjs/relations/helpers.d.ts +156 -0
- package/cjs/relations/helpers.d.ts.map +1 -0
- package/cjs/relations/helpers.js +197 -0
- package/cjs/relations/helpers.js.map +1 -0
- package/cjs/relations/index.d.ts +33 -0
- package/cjs/relations/index.d.ts.map +1 -0
- package/cjs/relations/pivot-operations.d.ts +160 -0
- package/cjs/relations/pivot-operations.d.ts.map +1 -0
- package/cjs/relations/pivot-operations.js +293 -0
- package/cjs/relations/pivot-operations.js.map +1 -0
- package/cjs/relations/relation-loader.d.ts +194 -0
- package/cjs/relations/relation-loader.d.ts.map +1 -0
- package/cjs/relations/relation-loader.js +466 -0
- package/cjs/relations/relation-loader.js.map +1 -0
- package/cjs/relations/types.d.ts +280 -0
- package/cjs/relations/types.d.ts.map +1 -0
- package/cjs/sync/model-sync-operation.js +1 -1
- package/cjs/sync/model-sync-operation.js.map +1 -1
- package/cjs/utils/connect-to-database.d.ts.map +1 -1
- package/cjs/utils/connect-to-database.js +15 -3
- package/cjs/utils/connect-to-database.js.map +1 -1
- package/cjs/utils/define-model.d.ts +51 -29
- package/cjs/utils/define-model.d.ts.map +1 -1
- package/cjs/validation/rules/database-model-rule.js +1 -1
- package/cjs/validation/rules/database-model-rule.js.map +1 -1
- package/esm/contracts/database-driver.contract.d.ts +118 -0
- package/esm/contracts/database-driver.contract.d.ts.map +1 -1
- package/esm/contracts/migration-driver.contract.d.ts +14 -0
- package/esm/contracts/migration-driver.contract.d.ts.map +1 -1
- package/esm/contracts/query-builder.contract.d.ts +410 -1
- package/esm/contracts/query-builder.contract.d.ts.map +1 -1
- package/esm/data-source/data-source-registry.d.ts +4 -0
- package/esm/data-source/data-source-registry.d.ts.map +1 -1
- package/esm/data-source/data-source-registry.js +7 -0
- package/esm/data-source/data-source-registry.js.map +1 -1
- package/esm/drivers/mongodb/mongodb-blueprint.d.ts.map +1 -0
- package/esm/drivers/mongodb/mongodb-blueprint.js.map +1 -0
- package/{cjs/drivers/mongo → esm/drivers/mongodb}/mongodb-driver.d.ts +49 -0
- package/esm/drivers/mongodb/mongodb-driver.d.ts.map +1 -0
- package/esm/drivers/{mongo → mongodb}/mongodb-driver.js +121 -4
- package/esm/drivers/mongodb/mongodb-driver.js.map +1 -0
- package/esm/drivers/{mongo/mongo-id-generator.d.ts → mongodb/mongodb-id-generator.d.ts} +1 -1
- package/esm/drivers/mongodb/mongodb-id-generator.d.ts.map +1 -0
- package/esm/drivers/{mongo/mongo-id-generator.js → mongodb/mongodb-id-generator.js} +1 -1
- package/esm/drivers/mongodb/mongodb-id-generator.js.map +1 -0
- package/esm/drivers/{mongo/mongo-migration-driver.d.ts → mongodb/mongodb-migration-driver.d.ts} +10 -1
- package/esm/drivers/mongodb/mongodb-migration-driver.d.ts.map +1 -0
- package/esm/drivers/{mongo/mongo-migration-driver.js → mongodb/mongodb-migration-driver.js} +18 -1
- package/esm/drivers/mongodb/mongodb-migration-driver.js.map +1 -0
- package/esm/drivers/{mongo/mongo-query-builder.d.ts → mongodb/mongodb-query-builder.d.ts} +172 -4
- package/esm/drivers/mongodb/mongodb-query-builder.d.ts.map +1 -0
- package/esm/drivers/{mongo/mongo-query-builder.js → mongodb/mongodb-query-builder.js} +218 -12
- package/esm/drivers/mongodb/mongodb-query-builder.js.map +1 -0
- package/{cjs/drivers/mongo/mongo-query-operations.d.ts → esm/drivers/mongodb/mongodb-query-operations.d.ts} +16 -16
- package/esm/drivers/mongodb/mongodb-query-operations.d.ts.map +1 -0
- package/esm/drivers/{mongo/mongo-query-operations.js → mongodb/mongodb-query-operations.js} +22 -22
- package/esm/drivers/mongodb/mongodb-query-operations.js.map +1 -0
- package/esm/drivers/{mongo/mongo-query-parser.d.ts → mongodb/mongodb-query-parser.d.ts} +2 -2
- package/esm/drivers/mongodb/mongodb-query-parser.d.ts.map +1 -0
- package/esm/drivers/{mongo/mongo-query-parser.js → mongodb/mongodb-query-parser.js} +87 -87
- package/esm/drivers/mongodb/mongodb-query-parser.js.map +1 -0
- package/esm/drivers/{mongo/mongo-sync-adapter.d.ts → mongodb/mongodb-sync-adapter.d.ts} +2 -2
- package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts.map +1 -0
- package/esm/drivers/{mongo/mongo-sync-adapter.js → mongodb/mongodb-sync-adapter.js} +2 -2
- package/esm/drivers/mongodb/mongodb-sync-adapter.js.map +1 -0
- package/{cjs/drivers/mongo → esm/drivers/mongodb}/types.d.ts +2 -2
- package/esm/drivers/mongodb/types.d.ts.map +1 -0
- package/esm/drivers/postgres/index.d.ts +16 -0
- package/esm/drivers/postgres/index.d.ts.map +1 -0
- package/esm/drivers/postgres/postgres-blueprint.d.ts +64 -0
- package/esm/drivers/postgres/postgres-blueprint.d.ts.map +1 -0
- package/esm/drivers/postgres/postgres-blueprint.js +121 -0
- package/esm/drivers/postgres/postgres-blueprint.js.map +1 -0
- package/esm/drivers/postgres/postgres-dialect.d.ts +135 -0
- package/esm/drivers/postgres/postgres-dialect.d.ts.map +1 -0
- package/esm/drivers/postgres/postgres-dialect.js +245 -0
- package/esm/drivers/postgres/postgres-dialect.js.map +1 -0
- package/esm/drivers/postgres/postgres-driver.d.ts +360 -0
- package/esm/drivers/postgres/postgres-driver.d.ts.map +1 -0
- package/esm/drivers/postgres/postgres-driver.js +763 -0
- package/esm/drivers/postgres/postgres-driver.js.map +1 -0
- package/esm/drivers/postgres/postgres-migration-driver.d.ts +297 -0
- package/esm/drivers/postgres/postgres-migration-driver.d.ts.map +1 -0
- package/esm/drivers/postgres/postgres-migration-driver.js +578 -0
- package/esm/drivers/postgres/postgres-migration-driver.js.map +1 -0
- package/esm/drivers/postgres/postgres-query-builder.d.ts +824 -0
- package/esm/drivers/postgres/postgres-query-builder.d.ts.map +1 -0
- package/esm/drivers/postgres/postgres-query-builder.js +1800 -0
- package/esm/drivers/postgres/postgres-query-builder.js.map +1 -0
- package/esm/drivers/postgres/postgres-query-parser.d.ts +308 -0
- package/esm/drivers/postgres/postgres-query-parser.d.ts.map +1 -0
- package/esm/drivers/postgres/postgres-query-parser.js +706 -0
- package/esm/drivers/postgres/postgres-query-parser.js.map +1 -0
- package/esm/drivers/postgres/postgres-sync-adapter.d.ts +83 -0
- package/esm/drivers/postgres/postgres-sync-adapter.d.ts.map +1 -0
- package/esm/drivers/postgres/postgres-sync-adapter.js +197 -0
- package/esm/drivers/postgres/postgres-sync-adapter.js.map +1 -0
- package/esm/drivers/postgres/types.d.ts +142 -0
- package/esm/drivers/postgres/types.d.ts.map +1 -0
- package/esm/drivers/sql/index.d.ts +10 -0
- package/esm/drivers/sql/index.d.ts.map +1 -0
- package/esm/drivers/sql/sql-dialect.contract.d.ts +203 -0
- package/esm/drivers/sql/sql-dialect.contract.d.ts.map +1 -0
- package/esm/drivers/sql/sql-types.d.ts +202 -0
- package/esm/drivers/sql/sql-types.d.ts.map +1 -0
- package/esm/index.d.ts +9 -6
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -1
- package/esm/migration/migration-runner.d.ts.map +1 -1
- package/esm/migration/migration-runner.js +3 -0
- package/esm/migration/migration-runner.js.map +1 -1
- package/esm/model/model.d.ts +236 -1
- package/esm/model/model.d.ts.map +1 -1
- package/esm/model/model.js +203 -4
- package/esm/model/model.js.map +1 -1
- package/esm/relations/helpers.d.ts +156 -0
- package/esm/relations/helpers.d.ts.map +1 -0
- package/esm/relations/helpers.js +197 -0
- package/esm/relations/helpers.js.map +1 -0
- package/esm/relations/index.d.ts +33 -0
- package/esm/relations/index.d.ts.map +1 -0
- package/esm/relations/pivot-operations.d.ts +160 -0
- package/esm/relations/pivot-operations.d.ts.map +1 -0
- package/esm/relations/pivot-operations.js +293 -0
- package/esm/relations/pivot-operations.js.map +1 -0
- package/esm/relations/relation-loader.d.ts +194 -0
- package/esm/relations/relation-loader.d.ts.map +1 -0
- package/esm/relations/relation-loader.js +466 -0
- package/esm/relations/relation-loader.js.map +1 -0
- package/esm/relations/types.d.ts +280 -0
- package/esm/relations/types.d.ts.map +1 -0
- package/esm/sync/model-sync-operation.js +1 -1
- package/esm/sync/model-sync-operation.js.map +1 -1
- package/esm/utils/connect-to-database.d.ts.map +1 -1
- package/esm/utils/connect-to-database.js +15 -3
- package/esm/utils/connect-to-database.js.map +1 -1
- package/esm/utils/define-model.d.ts +51 -29
- package/esm/utils/define-model.d.ts.map +1 -1
- package/esm/validation/rules/database-model-rule.js +1 -1
- package/esm/validation/rules/database-model-rule.js.map +1 -1
- package/package.json +4 -4
- package/cjs/drivers/mongo/mongo-id-generator.d.ts.map +0 -1
- package/cjs/drivers/mongo/mongo-id-generator.js.map +0 -1
- package/cjs/drivers/mongo/mongo-migration-driver.d.ts.map +0 -1
- package/cjs/drivers/mongo/mongo-migration-driver.js.map +0 -1
- package/cjs/drivers/mongo/mongo-query-builder.d.ts.map +0 -1
- package/cjs/drivers/mongo/mongo-query-builder.js.map +0 -1
- package/cjs/drivers/mongo/mongo-query-operations.d.ts.map +0 -1
- package/cjs/drivers/mongo/mongo-query-operations.js.map +0 -1
- package/cjs/drivers/mongo/mongo-query-parser.d.ts.map +0 -1
- package/cjs/drivers/mongo/mongo-query-parser.js.map +0 -1
- package/cjs/drivers/mongo/mongo-sync-adapter.d.ts.map +0 -1
- package/cjs/drivers/mongo/mongo-sync-adapter.js.map +0 -1
- package/cjs/drivers/mongo/mongodb-blueprint.d.ts.map +0 -1
- package/cjs/drivers/mongo/mongodb-blueprint.js.map +0 -1
- package/cjs/drivers/mongo/mongodb-driver.d.ts.map +0 -1
- package/cjs/drivers/mongo/mongodb-driver.js.map +0 -1
- package/cjs/drivers/mongo/types.d.ts.map +0 -1
- package/esm/drivers/mongo/mongo-id-generator.d.ts.map +0 -1
- package/esm/drivers/mongo/mongo-id-generator.js.map +0 -1
- package/esm/drivers/mongo/mongo-migration-driver.d.ts.map +0 -1
- package/esm/drivers/mongo/mongo-migration-driver.js.map +0 -1
- package/esm/drivers/mongo/mongo-query-builder.d.ts.map +0 -1
- package/esm/drivers/mongo/mongo-query-builder.js.map +0 -1
- package/esm/drivers/mongo/mongo-query-operations.d.ts.map +0 -1
- package/esm/drivers/mongo/mongo-query-operations.js.map +0 -1
- package/esm/drivers/mongo/mongo-query-parser.d.ts.map +0 -1
- package/esm/drivers/mongo/mongo-query-parser.js.map +0 -1
- package/esm/drivers/mongo/mongo-sync-adapter.d.ts.map +0 -1
- package/esm/drivers/mongo/mongo-sync-adapter.js.map +0 -1
- package/esm/drivers/mongo/mongodb-blueprint.d.ts.map +0 -1
- package/esm/drivers/mongo/mongodb-blueprint.js.map +0 -1
- package/esm/drivers/mongo/mongodb-driver.d.ts.map +0 -1
- package/esm/drivers/mongo/mongodb-driver.js.map +0 -1
- package/esm/drivers/mongo/types.d.ts.map +0 -1
- /package/cjs/drivers/{mongo → mongodb}/mongodb-blueprint.d.ts +0 -0
- /package/cjs/drivers/{mongo → mongodb}/mongodb-blueprint.js +0 -0
- /package/esm/drivers/{mongo → mongodb}/mongodb-blueprint.d.ts +0 -0
- /package/esm/drivers/{mongo → mongodb}/mongodb-blueprint.js +0 -0
package/esm/model/model.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ export type LocalScopeCallback = (query: QueryBuilderContract) => void;
|
|
|
28
28
|
export type GlobalScopeOptions = {
|
|
29
29
|
timing?: ScopeTiming;
|
|
30
30
|
};
|
|
31
|
-
export type ChildModel<TModel extends Model> = (new (...args: any[]) => TModel) & Pick<typeof Model, "table" | "primaryKey" | "dataSource" | "schema" | "strictMode" | "autoGenerateId" | "initialId" | "randomInitialId" | "incrementIdBy" | "resource" | "resourceColumns" | "toJsonColumns" | "randomIncrement" | "getDataSource" | "query" | "find" | "first" | "last" | "all" | "latest" | "count" | "where" | "increase" | "decrease" | "atomic" | "events" | "on" | "once" | "off" | "globalEvents" | "delete" | "deleteOne" | "deleteStrategy" | "trashTable" | "restore" | "restoreAll" | "deletedAtColumn" | "createdAtColumn" | "updatedAtColumn" | "create" | "createMany" | "sync" | "embed" | "deserialize" | "syncMany" | "addGlobalScope" | "removeGlobalScope" | "addScope" | "removeScope" | "localScopes" | "globalScopes" | "newQueryBuilder" | "builder">;
|
|
31
|
+
export type ChildModel<TModel extends Model> = (new (...args: any[]) => TModel) & Pick<typeof Model, "table" | "primaryKey" | "dataSource" | "schema" | "strictMode" | "autoGenerateId" | "initialId" | "randomInitialId" | "incrementIdBy" | "resource" | "resourceColumns" | "toJsonColumns" | "randomIncrement" | "getDataSource" | "query" | "find" | "first" | "last" | "all" | "latest" | "count" | "where" | "increase" | "decrease" | "atomic" | "events" | "on" | "once" | "off" | "globalEvents" | "delete" | "deleteOne" | "deleteStrategy" | "trashTable" | "restore" | "restoreAll" | "deletedAtColumn" | "createdAtColumn" | "updatedAtColumn" | "create" | "createMany" | "sync" | "embed" | "deserialize" | "syncMany" | "addGlobalScope" | "removeGlobalScope" | "addScope" | "removeScope" | "localScopes" | "globalScopes" | "relations" | "newQueryBuilder" | "builder">;
|
|
32
32
|
/**
|
|
33
33
|
* Generic schema type representing the structure of model data.
|
|
34
34
|
*/
|
|
@@ -351,6 +351,36 @@ export declare abstract class Model<TSchema extends ModelSchema = ModelSchema> {
|
|
|
351
351
|
* These are reusable query snippets that developers opt into.
|
|
352
352
|
*/
|
|
353
353
|
static localScopes: Map<string, LocalScopeCallback>;
|
|
354
|
+
/**
|
|
355
|
+
* Relation definitions for this model.
|
|
356
|
+
*
|
|
357
|
+
* Define relationships to other models using helper functions:
|
|
358
|
+
* - `hasMany()` - One-to-many (User has many Posts)
|
|
359
|
+
* - `hasOne()` - One-to-one (User has one Profile)
|
|
360
|
+
* - `belongsTo()` - Inverse of hasMany/hasOne (Post belongs to User)
|
|
361
|
+
* - `belongsToMany()` - Many-to-many with pivot table (User has many Roles)
|
|
362
|
+
*
|
|
363
|
+
* @example
|
|
364
|
+
* ```typescript
|
|
365
|
+
* import { hasMany, belongsTo, belongsToMany, hasOne } from "@warlock.js/cascade";
|
|
366
|
+
*
|
|
367
|
+
* class User extends Model {
|
|
368
|
+
* public posts?: Post[]; // Optional: for TypeScript autocomplete
|
|
369
|
+
*
|
|
370
|
+
* static relations = {
|
|
371
|
+
* posts: hasMany("Post"),
|
|
372
|
+
* profile: hasOne("Profile"),
|
|
373
|
+
* organization: belongsTo("Organization"),
|
|
374
|
+
* roles: belongsToMany("Role", { pivot: "user_roles" }),
|
|
375
|
+
* };
|
|
376
|
+
* }
|
|
377
|
+
*
|
|
378
|
+
* // Usage:
|
|
379
|
+
* const users = await User.query().with("posts").get();
|
|
380
|
+
* console.log(users[0].posts); // Post[]
|
|
381
|
+
* ```
|
|
382
|
+
*/
|
|
383
|
+
static relations: Record<string, any>;
|
|
354
384
|
/**
|
|
355
385
|
* Flag indicating whether this model instance represents a new (unsaved) record.
|
|
356
386
|
*
|
|
@@ -377,6 +407,85 @@ export declare abstract class Model<TSchema extends ModelSchema = ModelSchema> {
|
|
|
377
407
|
* Used by the writer to generate efficient partial update payloads.
|
|
378
408
|
*/
|
|
379
409
|
readonly dirtyTracker: DatabaseDirtyTracker;
|
|
410
|
+
/**
|
|
411
|
+
* Model instance events.
|
|
412
|
+
* Allows registering listeners for lifecycle events on this specific instance.
|
|
413
|
+
*/
|
|
414
|
+
events: ModelEvents<any>;
|
|
415
|
+
/**
|
|
416
|
+
* Map of loaded relations for this model instance.
|
|
417
|
+
*
|
|
418
|
+
* Populated automatically when using `with()` for eager loading,
|
|
419
|
+
* or when calling `load()` for lazy loading.
|
|
420
|
+
*
|
|
421
|
+
* @example
|
|
422
|
+
* ```typescript
|
|
423
|
+
* const user = await User.query().with("posts").first();
|
|
424
|
+
* console.log(user.loadedRelations.get("posts")); // Post[]
|
|
425
|
+
*
|
|
426
|
+
* // Also accessible as direct properties:
|
|
427
|
+
* console.log(user.posts); // Post[]\n * ```
|
|
428
|
+
*/
|
|
429
|
+
loadedRelations: Map<string, any>;
|
|
430
|
+
/**
|
|
431
|
+
* Lazily load one or more relations for this model instance.
|
|
432
|
+
*
|
|
433
|
+
* This method loads relations on-demand after the model has been fetched.
|
|
434
|
+
* The loaded relations are attached directly to the model instance and
|
|
435
|
+
* also stored in `loadedRelations` map.
|
|
436
|
+
*
|
|
437
|
+
* @param relations - Relation name(s) to load
|
|
438
|
+
* @returns This model instance for chaining
|
|
439
|
+
*
|
|
440
|
+
* @example
|
|
441
|
+
* ```typescript
|
|
442
|
+
* const user = await User.first();
|
|
443
|
+
*
|
|
444
|
+
* // Load single relation
|
|
445
|
+
* await user.load("posts");
|
|
446
|
+
* console.log(user.posts); // Post[]
|
|
447
|
+
*
|
|
448
|
+
* // Load multiple relations
|
|
449
|
+
* await user.load("posts", "organization");
|
|
450
|
+
*
|
|
451
|
+
* // Chain with other operations
|
|
452
|
+
* const posts = await user.load("posts").then(() => user.posts);
|
|
453
|
+
* ```
|
|
454
|
+
*/
|
|
455
|
+
load(...relations: string[]): Promise<this>;
|
|
456
|
+
/**
|
|
457
|
+
* Check if a relation has been loaded.
|
|
458
|
+
*
|
|
459
|
+
* @param relationName - Name of the relation to check
|
|
460
|
+
* @returns True if the relation has been loaded
|
|
461
|
+
*
|
|
462
|
+
* @example
|
|
463
|
+
* ```typescript
|
|
464
|
+
* const user = await User.first();
|
|
465
|
+
*
|
|
466
|
+
* console.log(user.isLoaded("posts")); // false
|
|
467
|
+
* await user.load("posts");
|
|
468
|
+
* console.log(user.isLoaded("posts")); // true
|
|
469
|
+
* ```
|
|
470
|
+
*/
|
|
471
|
+
isLoaded(relationName: string): boolean;
|
|
472
|
+
/**
|
|
473
|
+
* Get a loaded relation by name.
|
|
474
|
+
*
|
|
475
|
+
* Returns undefined if the relation has not been loaded.
|
|
476
|
+
*
|
|
477
|
+
* @param relationName - Name of the relation to get
|
|
478
|
+
* @returns The loaded relation data, or undefined
|
|
479
|
+
*
|
|
480
|
+
* @example
|
|
481
|
+
* ```typescript
|
|
482
|
+
* const user = await User.query().with("posts").first();
|
|
483
|
+
*
|
|
484
|
+
* const posts = user.getRelation<Post[]>("posts");
|
|
485
|
+
* console.log(posts?.length);
|
|
486
|
+
* ```
|
|
487
|
+
*/
|
|
488
|
+
getRelation<TRelation = any>(relationName: string): TRelation | undefined;
|
|
380
489
|
/**
|
|
381
490
|
* Constructs a new model instance with optional initial data.
|
|
382
491
|
*
|
|
@@ -655,6 +764,29 @@ export declare abstract class Model<TSchema extends ModelSchema = ModelSchema> {
|
|
|
655
764
|
* ```
|
|
656
765
|
*/
|
|
657
766
|
emitEvent<TContext = unknown>(event: ModelEventName, context?: TContext): Promise<void>;
|
|
767
|
+
/**
|
|
768
|
+
* Register a listener for a model lifecycle event on this instance.
|
|
769
|
+
*
|
|
770
|
+
* @param event - Event name (e.g., "saving", "updated")
|
|
771
|
+
* @param listener - Callback function
|
|
772
|
+
* @returns Unsubscribe function
|
|
773
|
+
*/
|
|
774
|
+
on<TContext = unknown>(event: ModelEventName, listener: ModelEventListener<this, TContext>): () => void;
|
|
775
|
+
/**
|
|
776
|
+
* Register a one-time listener for a model lifecycle event on this instance.
|
|
777
|
+
*
|
|
778
|
+
* @param event - Event name
|
|
779
|
+
* @param listener - Callback function
|
|
780
|
+
* @returns Unsubscribe function
|
|
781
|
+
*/
|
|
782
|
+
once<TContext = unknown>(event: ModelEventName, listener: ModelEventListener<this, TContext>): () => void;
|
|
783
|
+
/**
|
|
784
|
+
* Remove a listener from this instance.
|
|
785
|
+
*
|
|
786
|
+
* @param event - Event name
|
|
787
|
+
* @param listener - Callback function to remove
|
|
788
|
+
*/
|
|
789
|
+
off<TContext = unknown>(event: ModelEventName, listener: ModelEventListener<this, TContext>): void;
|
|
658
790
|
/**
|
|
659
791
|
* Resolves the data source associated with this model.
|
|
660
792
|
*
|
|
@@ -762,6 +894,109 @@ export declare abstract class Model<TSchema extends ModelSchema = ModelSchema> {
|
|
|
762
894
|
* Create a new query builder for this model
|
|
763
895
|
*/
|
|
764
896
|
static query<TModel extends Model = Model>(this: ChildModel<TModel>): QueryBuilderContract<TModel>;
|
|
897
|
+
/**
|
|
898
|
+
* Short hand for the query builder method with
|
|
899
|
+
*/
|
|
900
|
+
/**
|
|
901
|
+
* Eagerly load one or more relations with the query results.
|
|
902
|
+
*
|
|
903
|
+
* Relations are loaded in separate optimized queries to prevent N+1 problems.
|
|
904
|
+
* The loaded relations are attached to each model instance.
|
|
905
|
+
*
|
|
906
|
+
* @param relation - Single relation name to load
|
|
907
|
+
* @returns Query builder for chaining
|
|
908
|
+
*
|
|
909
|
+
* @example
|
|
910
|
+
* ```typescript
|
|
911
|
+
* // Load single relation
|
|
912
|
+
* const user = await User.query().with("posts").find(1);
|
|
913
|
+
* console.log(user.posts); // Post[]
|
|
914
|
+
*
|
|
915
|
+
* // Load multiple relations
|
|
916
|
+
* const user = await User.query().with("posts", "organization").find(1);
|
|
917
|
+
*
|
|
918
|
+
* // Load nested relations
|
|
919
|
+
* const user = await User.query().with("posts.comments.author").find(1);
|
|
920
|
+
* ```
|
|
921
|
+
*/
|
|
922
|
+
static with<TModel extends Model = Model>(this: ChildModel<TModel>, relation: string): QueryBuilderContract<TModel>;
|
|
923
|
+
/**
|
|
924
|
+
* Eagerly load multiple relations.
|
|
925
|
+
*
|
|
926
|
+
* @param relations - Relation names to load
|
|
927
|
+
* @returns Query builder for chaining
|
|
928
|
+
*/
|
|
929
|
+
static with<TModel extends Model = Model>(this: ChildModel<TModel>, ...relations: string[]): QueryBuilderContract<TModel>;
|
|
930
|
+
/**
|
|
931
|
+
* Eagerly load a relation with a constraint callback.
|
|
932
|
+
*
|
|
933
|
+
* The callback receives the relation query builder, allowing you to
|
|
934
|
+
* add conditions, ordering, or limits to the related query.
|
|
935
|
+
*
|
|
936
|
+
* @param relation - Relation name to load
|
|
937
|
+
* @param constraint - Callback to configure the relation query
|
|
938
|
+
* @returns Query builder for chaining
|
|
939
|
+
*
|
|
940
|
+
* @example
|
|
941
|
+
* ```typescript
|
|
942
|
+
* const user = await User.query()
|
|
943
|
+
* .with("posts", (query) => {
|
|
944
|
+
* query.where("isPublished", true)
|
|
945
|
+
* .orderBy("createdAt", "desc")
|
|
946
|
+
* .limit(5);
|
|
947
|
+
* })
|
|
948
|
+
* .find(1);
|
|
949
|
+
* ```
|
|
950
|
+
*/
|
|
951
|
+
static with<TModel extends Model = Model>(this: ChildModel<TModel>, relation: string, constraint: (query: QueryBuilderContract) => void): QueryBuilderContract<TModel>;
|
|
952
|
+
/**
|
|
953
|
+
* Eagerly load multiple relations with constraints.
|
|
954
|
+
*
|
|
955
|
+
* Pass an object where keys are relation names and values are either:
|
|
956
|
+
* - `true` to load without constraints
|
|
957
|
+
* - A callback function to configure the relation query
|
|
958
|
+
*
|
|
959
|
+
* @param relations - Object mapping relation names to constraints
|
|
960
|
+
* @returns Query builder for chaining
|
|
961
|
+
*
|
|
962
|
+
* @example
|
|
963
|
+
* ```typescript
|
|
964
|
+
* const user = await User.query()
|
|
965
|
+
* .with({
|
|
966
|
+
* posts: (query) => query.where("isPublished", true),
|
|
967
|
+
* organization: true,
|
|
968
|
+
* roles: (query) => query.orderBy("priority"),
|
|
969
|
+
* })
|
|
970
|
+
* .find(1);
|
|
971
|
+
* ```
|
|
972
|
+
*/
|
|
973
|
+
static with<TModel extends Model = Model>(this: ChildModel<TModel>, relations: Record<string, boolean | ((query: QueryBuilderContract) => void)>): QueryBuilderContract<TModel>;
|
|
974
|
+
/**
|
|
975
|
+
* Load relations using database JOINs in a single query.
|
|
976
|
+
*
|
|
977
|
+
* Unlike `with()` which uses separate queries, `joinWith()` uses
|
|
978
|
+
* LEFT JOIN (SQL) or $lookup (MongoDB) to fetch related data
|
|
979
|
+
* in a single query. The related data is hydrated into proper
|
|
980
|
+
* model instances and attached to the main model.
|
|
981
|
+
*
|
|
982
|
+
* Best for: belongsTo and hasOne relations where you need
|
|
983
|
+
* efficient single-query loading.
|
|
984
|
+
*
|
|
985
|
+
* @param relations - Relation names to load via JOIN
|
|
986
|
+
* @returns Query builder for chaining
|
|
987
|
+
*
|
|
988
|
+
* @example
|
|
989
|
+
* ```typescript
|
|
990
|
+
* // Single relation
|
|
991
|
+
* const post = await Post.joinWith("author").first();
|
|
992
|
+
* console.log(post.author); // User model instance
|
|
993
|
+
* console.log(post.data); // { id, title, authorId } - no author data
|
|
994
|
+
*
|
|
995
|
+
* // Multiple relations
|
|
996
|
+
* const post = await Post.joinWith("author", "category").first();
|
|
997
|
+
* ```
|
|
998
|
+
*/
|
|
999
|
+
static joinWith<TModel extends Model = Model>(this: ChildModel<TModel>, ...relations: string[]): QueryBuilderContract<TModel>;
|
|
765
1000
|
/**
|
|
766
1001
|
* Create new query builder.
|
|
767
1002
|
*
|
package/esm/model/model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"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"}
|
package/esm/model/model.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {get,only,set,unset,merge}from'@mongez/reinforcements';import {dataSourceRegistry}from'../data-source/data-source-registry.js';import {DatabaseDirtyTracker}from'../database-dirty-tracker.js';import {globalModelEvents
|
|
1
|
+
import {get,only,set,unset,merge}from'@mongez/reinforcements';import {dataSourceRegistry}from'../data-source/data-source-registry.js';import {DatabaseDirtyTracker}from'../database-dirty-tracker.js';import {ModelEvents,globalModelEvents}from'../events/model-events.js';import {RelationLoader}from'../relations/relation-loader.js';import {DatabaseRemover}from'../remover/database-remover.js';import {DatabaseRestorer}from'../restorer/database-restorer.js';import {modelSync}from'../sync/model-sync.js';import {DatabaseWriter}from'../writer/database-writer.js';import {getModelFromRegistry,getAllModelsFromRegistry,removeModelFromRegistery}from'./register-model.js';/**
|
|
2
2
|
* Sentinel value used to distinguish between undefined and missing fields.
|
|
3
3
|
*/
|
|
4
4
|
const MISSING_VALUE = Symbol("missing");
|
|
@@ -324,6 +324,36 @@ class Model {
|
|
|
324
324
|
* These are reusable query snippets that developers opt into.
|
|
325
325
|
*/
|
|
326
326
|
static localScopes = new Map();
|
|
327
|
+
/**
|
|
328
|
+
* Relation definitions for this model.
|
|
329
|
+
*
|
|
330
|
+
* Define relationships to other models using helper functions:
|
|
331
|
+
* - `hasMany()` - One-to-many (User has many Posts)
|
|
332
|
+
* - `hasOne()` - One-to-one (User has one Profile)
|
|
333
|
+
* - `belongsTo()` - Inverse of hasMany/hasOne (Post belongs to User)
|
|
334
|
+
* - `belongsToMany()` - Many-to-many with pivot table (User has many Roles)
|
|
335
|
+
*
|
|
336
|
+
* @example
|
|
337
|
+
* ```typescript
|
|
338
|
+
* import { hasMany, belongsTo, belongsToMany, hasOne } from "@warlock.js/cascade";
|
|
339
|
+
*
|
|
340
|
+
* class User extends Model {
|
|
341
|
+
* public posts?: Post[]; // Optional: for TypeScript autocomplete
|
|
342
|
+
*
|
|
343
|
+
* static relations = {
|
|
344
|
+
* posts: hasMany("Post"),
|
|
345
|
+
* profile: hasOne("Profile"),
|
|
346
|
+
* organization: belongsTo("Organization"),
|
|
347
|
+
* roles: belongsToMany("Role", { pivot: "user_roles" }),
|
|
348
|
+
* };
|
|
349
|
+
* }
|
|
350
|
+
*
|
|
351
|
+
* // Usage:
|
|
352
|
+
* const users = await User.query().with("posts").get();
|
|
353
|
+
* console.log(users[0].posts); // Post[]
|
|
354
|
+
* ```
|
|
355
|
+
*/
|
|
356
|
+
static relations = {};
|
|
327
357
|
/**
|
|
328
358
|
* Flag indicating whether this model instance represents a new (unsaved) record.
|
|
329
359
|
*
|
|
@@ -350,6 +380,94 @@ class Model {
|
|
|
350
380
|
* Used by the writer to generate efficient partial update payloads.
|
|
351
381
|
*/
|
|
352
382
|
dirtyTracker;
|
|
383
|
+
/**
|
|
384
|
+
* Model instance events.
|
|
385
|
+
* Allows registering listeners for lifecycle events on this specific instance.
|
|
386
|
+
*/
|
|
387
|
+
events = new ModelEvents();
|
|
388
|
+
/**
|
|
389
|
+
* Map of loaded relations for this model instance.
|
|
390
|
+
*
|
|
391
|
+
* Populated automatically when using `with()` for eager loading,
|
|
392
|
+
* or when calling `load()` for lazy loading.
|
|
393
|
+
*
|
|
394
|
+
* @example
|
|
395
|
+
* ```typescript
|
|
396
|
+
* const user = await User.query().with("posts").first();
|
|
397
|
+
* console.log(user.loadedRelations.get("posts")); // Post[]
|
|
398
|
+
*
|
|
399
|
+
* // Also accessible as direct properties:
|
|
400
|
+
* console.log(user.posts); // Post[]\n * ```
|
|
401
|
+
*/
|
|
402
|
+
loadedRelations = new Map();
|
|
403
|
+
/**
|
|
404
|
+
* Lazily load one or more relations for this model instance.
|
|
405
|
+
*
|
|
406
|
+
* This method loads relations on-demand after the model has been fetched.
|
|
407
|
+
* The loaded relations are attached directly to the model instance and
|
|
408
|
+
* also stored in `loadedRelations` map.
|
|
409
|
+
*
|
|
410
|
+
* @param relations - Relation name(s) to load
|
|
411
|
+
* @returns This model instance for chaining
|
|
412
|
+
*
|
|
413
|
+
* @example
|
|
414
|
+
* ```typescript
|
|
415
|
+
* const user = await User.first();
|
|
416
|
+
*
|
|
417
|
+
* // Load single relation
|
|
418
|
+
* await user.load("posts");
|
|
419
|
+
* console.log(user.posts); // Post[]
|
|
420
|
+
*
|
|
421
|
+
* // Load multiple relations
|
|
422
|
+
* await user.load("posts", "organization");
|
|
423
|
+
*
|
|
424
|
+
* // Chain with other operations
|
|
425
|
+
* const posts = await user.load("posts").then(() => user.posts);
|
|
426
|
+
* ```
|
|
427
|
+
*/
|
|
428
|
+
async load(...relations) {
|
|
429
|
+
const ModelClass = this.constructor;
|
|
430
|
+
const loader = new RelationLoader([this], ModelClass);
|
|
431
|
+
await loader.load(relations);
|
|
432
|
+
return this;
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Check if a relation has been loaded.
|
|
436
|
+
*
|
|
437
|
+
* @param relationName - Name of the relation to check
|
|
438
|
+
* @returns True if the relation has been loaded
|
|
439
|
+
*
|
|
440
|
+
* @example
|
|
441
|
+
* ```typescript
|
|
442
|
+
* const user = await User.first();
|
|
443
|
+
*
|
|
444
|
+
* console.log(user.isLoaded("posts")); // false
|
|
445
|
+
* await user.load("posts");
|
|
446
|
+
* console.log(user.isLoaded("posts")); // true
|
|
447
|
+
* ```
|
|
448
|
+
*/
|
|
449
|
+
isLoaded(relationName) {
|
|
450
|
+
return this.loadedRelations.has(relationName);
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* Get a loaded relation by name.
|
|
454
|
+
*
|
|
455
|
+
* Returns undefined if the relation has not been loaded.
|
|
456
|
+
*
|
|
457
|
+
* @param relationName - Name of the relation to get
|
|
458
|
+
* @returns The loaded relation data, or undefined
|
|
459
|
+
*
|
|
460
|
+
* @example
|
|
461
|
+
* ```typescript
|
|
462
|
+
* const user = await User.query().with("posts").first();
|
|
463
|
+
*
|
|
464
|
+
* const posts = user.getRelation<Post[]>("posts");
|
|
465
|
+
* console.log(posts?.length);
|
|
466
|
+
* ```
|
|
467
|
+
*/
|
|
468
|
+
getRelation(relationName) {
|
|
469
|
+
return this.loadedRelations.get(relationName);
|
|
470
|
+
}
|
|
353
471
|
/**
|
|
354
472
|
* Constructs a new model instance with optional initial data.
|
|
355
473
|
*
|
|
@@ -596,9 +714,42 @@ class Model {
|
|
|
596
714
|
*/
|
|
597
715
|
async emitEvent(event, context) {
|
|
598
716
|
const ctor = this.constructor;
|
|
717
|
+
// Trigger instance events
|
|
718
|
+
await this.events.emit(event, this, context);
|
|
719
|
+
// Trigger static events
|
|
599
720
|
await ctor.events().emit(event, this, context);
|
|
721
|
+
// Trigger global events
|
|
600
722
|
await globalModelEvents.emit(event, this, context);
|
|
601
723
|
}
|
|
724
|
+
/**
|
|
725
|
+
* Register a listener for a model lifecycle event on this instance.
|
|
726
|
+
*
|
|
727
|
+
* @param event - Event name (e.g., "saving", "updated")
|
|
728
|
+
* @param listener - Callback function
|
|
729
|
+
* @returns Unsubscribe function
|
|
730
|
+
*/
|
|
731
|
+
on(event, listener) {
|
|
732
|
+
return this.events.on(event, listener);
|
|
733
|
+
}
|
|
734
|
+
/**
|
|
735
|
+
* Register a one-time listener for a model lifecycle event on this instance.
|
|
736
|
+
*
|
|
737
|
+
* @param event - Event name
|
|
738
|
+
* @param listener - Callback function
|
|
739
|
+
* @returns Unsubscribe function
|
|
740
|
+
*/
|
|
741
|
+
once(event, listener) {
|
|
742
|
+
return this.events.once(event, listener);
|
|
743
|
+
}
|
|
744
|
+
/**
|
|
745
|
+
* Remove a listener from this instance.
|
|
746
|
+
*
|
|
747
|
+
* @param event - Event name
|
|
748
|
+
* @param listener - Callback function to remove
|
|
749
|
+
*/
|
|
750
|
+
off(event, listener) {
|
|
751
|
+
this.events.off(event, listener);
|
|
752
|
+
}
|
|
602
753
|
/**
|
|
603
754
|
* Resolves the data source associated with this model.
|
|
604
755
|
*
|
|
@@ -759,6 +910,7 @@ class Model {
|
|
|
759
910
|
// Call newQueryBuilder as a static method (may be overridden in child classes)
|
|
760
911
|
const queryBuilder = this.newQueryBuilder();
|
|
761
912
|
const ModelClass = this;
|
|
913
|
+
const qb = queryBuilder; // Capture for closure access
|
|
762
914
|
// Collect global scopes from base Model and child model
|
|
763
915
|
const allGlobalScopes = new Map([
|
|
764
916
|
...Model.globalScopes,
|
|
@@ -768,6 +920,9 @@ class Model {
|
|
|
768
920
|
queryBuilder.pendingGlobalScopes = allGlobalScopes;
|
|
769
921
|
queryBuilder.availableLocalScopes = this.localScopes;
|
|
770
922
|
queryBuilder.disabledGlobalScopes = new Set();
|
|
923
|
+
// Pass relation definitions for joinWith() support
|
|
924
|
+
queryBuilder.relationDefinitions = this.relations;
|
|
925
|
+
queryBuilder.modelClass = ModelClass;
|
|
771
926
|
// Emit fetching event
|
|
772
927
|
this.events().emitFetching(queryBuilder, { table: this.table, modelClass: this });
|
|
773
928
|
queryBuilder.hydrate((data) => {
|
|
@@ -775,12 +930,56 @@ class Model {
|
|
|
775
930
|
model.isNew = false;
|
|
776
931
|
return model;
|
|
777
932
|
});
|
|
778
|
-
// Wire up onFetched callback to emit model-level event
|
|
779
|
-
queryBuilder.onFetched(async (models
|
|
780
|
-
|
|
933
|
+
// Wire up onFetched callback to load relations and emit model-level event
|
|
934
|
+
queryBuilder.onFetched(async (models) => {
|
|
935
|
+
// Load eager relations if any were requested
|
|
936
|
+
const eagerRelations = qb.eagerLoadRelations;
|
|
937
|
+
if (eagerRelations && eagerRelations.size > 0 && models.length > 0) {
|
|
938
|
+
// Build constraints object from the Map
|
|
939
|
+
const constraints = {};
|
|
940
|
+
for (const [name, constraint] of eagerRelations) {
|
|
941
|
+
if (typeof constraint === "function") {
|
|
942
|
+
constraints[name] = constraint;
|
|
943
|
+
}
|
|
944
|
+
}
|
|
945
|
+
const loader = new RelationLoader(models, ModelClass);
|
|
946
|
+
await loader.load([...eagerRelations.keys()], constraints);
|
|
947
|
+
}
|
|
948
|
+
await this.events().emit("fetched", models, {});
|
|
781
949
|
});
|
|
782
950
|
return queryBuilder;
|
|
783
951
|
}
|
|
952
|
+
static with(...args) {
|
|
953
|
+
return this.query().with(...args);
|
|
954
|
+
}
|
|
955
|
+
/**
|
|
956
|
+
* Load relations using database JOINs in a single query.
|
|
957
|
+
*
|
|
958
|
+
* Unlike `with()` which uses separate queries, `joinWith()` uses
|
|
959
|
+
* LEFT JOIN (SQL) or $lookup (MongoDB) to fetch related data
|
|
960
|
+
* in a single query. The related data is hydrated into proper
|
|
961
|
+
* model instances and attached to the main model.
|
|
962
|
+
*
|
|
963
|
+
* Best for: belongsTo and hasOne relations where you need
|
|
964
|
+
* efficient single-query loading.
|
|
965
|
+
*
|
|
966
|
+
* @param relations - Relation names to load via JOIN
|
|
967
|
+
* @returns Query builder for chaining
|
|
968
|
+
*
|
|
969
|
+
* @example
|
|
970
|
+
* ```typescript
|
|
971
|
+
* // Single relation
|
|
972
|
+
* const post = await Post.joinWith("author").first();
|
|
973
|
+
* console.log(post.author); // User model instance
|
|
974
|
+
* console.log(post.data); // { id, title, authorId } - no author data
|
|
975
|
+
*
|
|
976
|
+
* // Multiple relations
|
|
977
|
+
* const post = await Post.joinWith("author", "category").first();
|
|
978
|
+
* ```
|
|
979
|
+
*/
|
|
980
|
+
static joinWith(...relations) {
|
|
981
|
+
return this.query().joinWith(...relations);
|
|
982
|
+
}
|
|
784
983
|
/**
|
|
785
984
|
* Create new query builder.
|
|
786
985
|
*
|