@c9up/atlas 0.1.9 → 0.1.11
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/db.darwin-arm64.node +0 -0
- package/db.darwin-x64.node +0 -0
- package/db.linux-arm64-gnu.node +0 -0
- package/db.linux-x64-gnu.node +0 -0
- package/db.win32-x64-msvc.node +0 -0
- package/dist/AtlasProvider.d.ts +14 -0
- package/dist/AtlasProvider.d.ts.map +1 -1
- package/dist/AtlasProvider.js +14 -2
- package/dist/AtlasProvider.js.map +1 -1
- package/dist/BaseEntity.d.ts +3 -12
- package/dist/BaseEntity.d.ts.map +1 -1
- package/dist/BaseEntity.js +20 -4
- package/dist/BaseEntity.js.map +1 -1
- package/dist/BaseRepository.d.ts.map +1 -1
- package/dist/BaseRepository.js +45 -89
- package/dist/BaseRepository.js.map +1 -1
- package/dist/ModelQuery.d.ts +2 -2
- package/dist/ModelQuery.d.ts.map +1 -1
- package/dist/ModelQuery.js +62 -17
- package/dist/ModelQuery.js.map +1 -1
- package/dist/adapters/NapiDbAdapter.d.ts +14 -1
- package/dist/adapters/NapiDbAdapter.d.ts.map +1 -1
- package/dist/adapters/NapiDbAdapter.js +9 -7
- package/dist/adapters/NapiDbAdapter.js.map +1 -1
- package/dist/configure.d.ts.map +1 -1
- package/dist/configure.js +5 -6
- package/dist/configure.js.map +1 -1
- package/dist/decorators/entity.js +1 -1
- package/dist/decorators/entity.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/metadata-keys.d.ts +20 -0
- package/dist/metadata-keys.d.ts.map +1 -0
- package/dist/metadata-keys.js +13 -0
- package/dist/metadata-keys.js.map +1 -0
- package/dist/query/native.d.ts +7 -0
- package/dist/query/native.d.ts.map +1 -1
- package/dist/query/native.js +10 -1
- package/dist/query/native.js.map +1 -1
- package/dist/schema/MigrationRunner.d.ts.map +1 -1
- package/dist/schema/MigrationRunner.js +5 -2
- package/dist/schema/MigrationRunner.js.map +1 -1
- package/dist/schema/Seeder.d.ts +13 -8
- package/dist/schema/Seeder.d.ts.map +1 -1
- package/dist/schema/Seeder.js +13 -8
- package/dist/schema/Seeder.js.map +1 -1
- package/dist/services/db.d.ts +7 -0
- package/dist/services/db.d.ts.map +1 -1
- package/dist/services/db.js +10 -0
- package/dist/services/db.js.map +1 -1
- package/dist/testing/Factory.d.ts +6 -7
- package/dist/testing/Factory.d.ts.map +1 -1
- package/dist/testing/Factory.js +3 -5
- package/dist/testing/Factory.js.map +1 -1
- package/dist/utils/safePath.d.ts +7 -1
- package/dist/utils/safePath.d.ts.map +1 -1
- package/dist/utils/safePath.js +24 -1
- package/dist/utils/safePath.js.map +1 -1
- package/index.darwin-arm64.node +0 -0
- package/index.darwin-x64.node +0 -0
- package/index.linux-arm64-gnu.node +0 -0
- package/index.linux-x64-gnu.node +0 -0
- package/index.win32-x64-msvc.node +0 -0
- package/package.json +1 -1
- package/src/AtlasProvider.ts +28 -1
- package/src/BaseEntity.ts +27 -12
- package/src/BaseRepository.ts +50 -98
- package/src/ModelQuery.ts +66 -17
- package/src/adapters/NapiDbAdapter.ts +32 -8
- package/src/configure.ts +5 -6
- package/src/decorators/entity.ts +1 -1
- package/src/index.ts +4 -1
- package/src/metadata-keys.ts +22 -0
- package/src/query/native.ts +12 -1
- package/src/schema/MigrationRunner.ts +5 -2
- package/src/schema/Seeder.ts +14 -12
- package/src/services/db.ts +10 -0
- package/src/testing/Factory.ts +9 -12
- package/src/utils/safePath.ts +27 -2
package/db.darwin-arm64.node
CHANGED
|
Binary file
|
package/db.darwin-x64.node
CHANGED
|
Binary file
|
package/db.linux-arm64-gnu.node
CHANGED
|
Binary file
|
package/db.linux-x64-gnu.node
CHANGED
|
Binary file
|
package/db.win32-x64-msvc.node
CHANGED
|
Binary file
|
package/dist/AtlasProvider.d.ts
CHANGED
|
@@ -76,6 +76,20 @@ export interface ConnectionConfig {
|
|
|
76
76
|
* commit). Ignored for postgres / mysql URLs.
|
|
77
77
|
*/
|
|
78
78
|
pragmas?: Record<string, string | number>;
|
|
79
|
+
/**
|
|
80
|
+
* Retry the INITIAL connection if it fails — useful when the DB starts a
|
|
81
|
+
* moment after the app (docker-compose / k8s) or for a transient boot blip.
|
|
82
|
+
* Extra attempts beyond the first (default 0 — single attempt).
|
|
83
|
+
*/
|
|
84
|
+
connectRetries?: number;
|
|
85
|
+
/** Base backoff in ms between connect attempts (exponential, capped 30s; default 200). */
|
|
86
|
+
connectBackoffMs?: number;
|
|
87
|
+
/**
|
|
88
|
+
* Per-attempt acquire timeout in ms. sqlx already retries connection
|
|
89
|
+
* establishment internally up to this window (~30s default), so lower it to
|
|
90
|
+
* make each `connectRetries` attempt give up faster (e.g. 5 × 2s).
|
|
91
|
+
*/
|
|
92
|
+
connectTimeoutMs?: number;
|
|
79
93
|
}
|
|
80
94
|
/** Full database config — single-connection (legacy) OR multi-connection. */
|
|
81
95
|
export interface AtlasDatabaseConfig extends ConnectionConfig {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtlasProvider.d.ts","sourceRoot":"","sources":["../src/AtlasProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAaH;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE;QACV,SAAS,CACR,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC,EAC5D,OAAO,EAAE,MAAM,OAAO,GACpB,IAAI,CAAC;KACR,CAAC;IACF,MAAM,EAAE;QAAE,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAA;KAAE,CAAC;CACzD;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB;;;EAGrB,CAAC;AAEZ,iCAAiC;AACjC,MAAM,WAAW,gBAAgB;IAChC,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"AtlasProvider.d.ts","sourceRoot":"","sources":["../src/AtlasProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAaH;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE;QACV,SAAS,CACR,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC,EAC5D,OAAO,EAAE,MAAM,OAAO,GACpB,IAAI,CAAC;KACR,CAAC;IACF,MAAM,EAAE;QAAE,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAA;KAAE,CAAC;CACzD;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB;;;EAGrB,CAAC;AAEZ,iCAAiC;AACjC,MAAM,WAAW,gBAAgB;IAChC,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAC1C;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0FAA0F;IAC1F,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,6EAA6E;AAC7E,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC5D,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iGAAiG;IACjG,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC/C,UAAU,CAAC,EAAE;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd;;;;WAIG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACF;AAED,MAAM,CAAC,OAAO,OAAO,aAAa;;IAKrB,SAAS,CAAC,GAAG,EAAE,eAAe;gBAApB,GAAG,EAAE,eAAe;IAE1C,QAAQ;IAEF,IAAI;IA8FJ,QAAQ;IAqCR,KAAK;IACL,KAAK;CAwDX"}
|
package/dist/AtlasProvider.js
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* const tenant1 = app.container.resolve('db:tenant1') // named
|
|
22
22
|
*/
|
|
23
23
|
import { createNapiConnection, } from "./adapters/NapiDbAdapter.js";
|
|
24
|
-
import { setAtlasDialect } from "./query/native.js";
|
|
24
|
+
import { clearCastRegistry, setAtlasDialect } from "./query/native.js";
|
|
25
25
|
import { MigrationRunner, } from "./schema/MigrationRunner.js";
|
|
26
26
|
import { dialectFromUrl } from "./utils/dialectFromUrl.js";
|
|
27
27
|
/**
|
|
@@ -67,7 +67,11 @@ export default class AtlasProvider {
|
|
|
67
67
|
// close every successful one before rethrowing so a partial boot never
|
|
68
68
|
// leaks pools/sockets.
|
|
69
69
|
const entries = Object.entries(connections);
|
|
70
|
-
const results = await Promise.allSettled(entries.map(([, settings]) => createNapiConnection(settings.url, settings.poolMin ?? 1, settings.poolMax ?? 10, settings.pragmas
|
|
70
|
+
const results = await Promise.allSettled(entries.map(([, settings]) => createNapiConnection(settings.url, settings.poolMin ?? 1, settings.poolMax ?? 10, settings.pragmas, {
|
|
71
|
+
retries: settings.connectRetries,
|
|
72
|
+
backoffMs: settings.connectBackoffMs,
|
|
73
|
+
timeoutMs: settings.connectTimeoutMs,
|
|
74
|
+
})));
|
|
71
75
|
const failures = [];
|
|
72
76
|
const successes = [];
|
|
73
77
|
results.forEach((r, i) => {
|
|
@@ -130,6 +134,14 @@ export default class AtlasProvider {
|
|
|
130
134
|
const named = [...this.#connections.entries()];
|
|
131
135
|
const results = await Promise.allSettled(named.map(([, c]) => c.close()));
|
|
132
136
|
this.#connections.clear();
|
|
137
|
+
// Release the module-level singletons this provider populated at boot so a
|
|
138
|
+
// re-boot starts clean and `db.*` can't dereference a now-closed handle.
|
|
139
|
+
// `clearDb` is ownership-guarded, so clearing every connection only unbinds
|
|
140
|
+
// the one still owning the singleton.
|
|
141
|
+
const { clearDb } = await import("./services/db.js");
|
|
142
|
+
for (const [, conn] of named)
|
|
143
|
+
clearDb(conn);
|
|
144
|
+
clearCastRegistry();
|
|
133
145
|
const errors = results
|
|
134
146
|
.map((r, i) => r.status === "rejected" ? { name: named[i][0], error: r.reason } : null)
|
|
135
147
|
.filter((x) => x !== null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtlasProvider.js","sourceRoot":"","sources":["../src/AtlasProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAEN,oBAAoB,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"AtlasProvider.js","sourceRoot":"","sources":["../src/AtlasProvider.ts"],"names":[],"mappings":"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"}
|
package/dist/BaseEntity.d.ts
CHANGED
|
@@ -10,14 +10,12 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @implements FR29, FR35, stories 32.1 through 32.5
|
|
12
12
|
*/
|
|
13
|
+
import { COLUMN_SERIALIZE_KEY, COMPUTED_KEY, type ColumnSerializeConfig } from "./metadata-keys.js";
|
|
13
14
|
export interface DomainEvent {
|
|
14
15
|
name: string;
|
|
15
16
|
data: Record<string, unknown>;
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
-
export declare const COMPUTED_KEY: unique symbol;
|
|
19
|
-
/** Symbol metadata key for the serialize-as / serializer overrides on columns. */
|
|
20
|
-
export declare const COLUMN_SERIALIZE_KEY: unique symbol;
|
|
18
|
+
export { COLUMN_SERIALIZE_KEY, COMPUTED_KEY };
|
|
21
19
|
/** Symbol property key used by entities to back-reference their hydrating repo. */
|
|
22
20
|
export declare const REPO_REF: unique symbol;
|
|
23
21
|
/** Minimal repo-back-reference interface used by `entity.refresh()` / `entity.fresh()` / `entity.loadCount()`. */
|
|
@@ -74,13 +72,7 @@ export interface ManyToManyRelationProxy extends BulkRelationProxy {
|
|
|
74
72
|
sync(target: Array<string | number> | Record<string, Record<string, unknown>>, additive?: boolean): Promise<void>;
|
|
75
73
|
}
|
|
76
74
|
export type RelationProxy = HasOneRelationProxy | HasManyRelationProxy | BelongsToRelationProxy | ManyToManyRelationProxy;
|
|
77
|
-
|
|
78
|
-
export interface ColumnSerializeConfig {
|
|
79
|
-
/** Rename this column at toJSON time (e.g. `password` → `passwordHash`). Null = hidden. */
|
|
80
|
-
serializeAs?: string | null;
|
|
81
|
-
/** Transform function applied to the value at toJSON time. */
|
|
82
|
-
serialize?: (value: unknown) => unknown;
|
|
83
|
-
}
|
|
75
|
+
export type { ColumnSerializeConfig };
|
|
84
76
|
export declare class BaseEntity {
|
|
85
77
|
#private;
|
|
86
78
|
/** Index signature — entities have dynamic column properties set by hydrate/create. */
|
|
@@ -251,5 +243,4 @@ export declare class BaseEntity {
|
|
|
251
243
|
fields?: readonly string[];
|
|
252
244
|
}): Record<string, unknown>;
|
|
253
245
|
}
|
|
254
|
-
export {};
|
|
255
246
|
//# sourceMappingURL=BaseEntity.d.ts.map
|
package/dist/BaseEntity.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseEntity.d.ts","sourceRoot":"","sources":["../src/BaseEntity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;
|
|
1
|
+
{"version":3,"file":"BaseEntity.d.ts","sourceRoot":"","sources":["../src/BaseEntity.ts"],"names":[],"mappings":"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"}
|
package/dist/BaseEntity.js
CHANGED
|
@@ -10,11 +10,13 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @implements FR29, FR35, stories 32.1 through 32.5
|
|
12
12
|
*/
|
|
13
|
+
import { getRelationMetadata } from "./decorators/entity.js";
|
|
13
14
|
import { MassAssignmentError } from "./errors.js";
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
import { COLUMN_SERIALIZE_KEY, COMPUTED_KEY, } from "./metadata-keys.js";
|
|
16
|
+
// COMPUTED_KEY / COLUMN_SERIALIZE_KEY / ColumnSerializeConfig moved to
|
|
17
|
+
// ./metadata-keys.js to break the BaseEntity ↔ entity-decorator runtime cycle
|
|
18
|
+
// (fallow 2026-06-14). Re-exported here for backward compatibility.
|
|
19
|
+
export { COLUMN_SERIALIZE_KEY, COMPUTED_KEY };
|
|
18
20
|
/** Symbol property key used by entities to back-reference their hydrating repo. */
|
|
19
21
|
export const REPO_REF = Symbol.for("atlas:repoRef");
|
|
20
22
|
/**
|
|
@@ -336,6 +338,11 @@ export class BaseEntity {
|
|
|
336
338
|
const hidden = new Set(ctor.hidden ?? []);
|
|
337
339
|
const visible = ctor.visible && ctor.visible.length > 0 ? new Set(ctor.visible) : null;
|
|
338
340
|
const serializeConfig = getColumnSerializeConfig(ctor);
|
|
341
|
+
// Relation `serializeAs` overrides — a preloaded relation is a plain
|
|
342
|
+
// property on the instance, so it shows up in `Object.keys` below. Without
|
|
343
|
+
// this map the `serializeAs` declared on @HasOne/@HasMany/etc. was silently
|
|
344
|
+
// ignored (the relation always serialized under its property name).
|
|
345
|
+
const relByKey = new Map(getRelationMetadata(ctor).map((r) => [r.propertyKey, r]));
|
|
339
346
|
const result = {};
|
|
340
347
|
// Regular columns (respecting hidden/visible + serialize overrides)
|
|
341
348
|
for (const key of Object.keys(this)) {
|
|
@@ -345,6 +352,15 @@ export class BaseEntity {
|
|
|
345
352
|
continue;
|
|
346
353
|
if (hidden.has(key))
|
|
347
354
|
continue;
|
|
355
|
+
// Preloaded relation: honour its `serializeAs` (rename, or `null` hides
|
|
356
|
+
// it from the JSON). The nested entity serializes via its own toJSON.
|
|
357
|
+
const rel = relByKey.get(key);
|
|
358
|
+
if (rel) {
|
|
359
|
+
if (rel.serializeAs === null)
|
|
360
|
+
continue;
|
|
361
|
+
result[rel.serializeAs ?? key] = this[key];
|
|
362
|
+
continue;
|
|
363
|
+
}
|
|
348
364
|
const cfg = serializeConfig[key];
|
|
349
365
|
if (cfg?.serializeAs === null)
|
|
350
366
|
continue; // explicit hide
|
package/dist/BaseEntity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseEntity.js","sourceRoot":"","sources":["../src/BaseEntity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"BaseEntity.js","sourceRoot":"","sources":["../src/BaseEntity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACN,oBAAoB,EACpB,YAAY,GAEZ,MAAM,oBAAoB,CAAC;AAO5B,uEAAuE;AACvE,8EAA8E;AAC9E,oEAAoE;AACpE,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,CAAC;AAE9C,mFAAmF;AACnF,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AA4FpD;;;GAGG;AACH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AAEhE,MAAM,OAAO,UAAU;IAItB,+EAA+E;IAC/E,aAAa,GAAkB,EAAE,CAAC;IAElC;;;;;;OAMG;IACH,OAAO,GAA4B,EAAE,CAAC;IAEtC;;;;;;;OAOG;IACH,SAAS,GAA4B,EAAE,CAAC;IAExC,2DAA2D;IAC3D,OAAO,CAAC,GAAW,EAAE,KAAc;QAClC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,qFAAqF;IACrF,QAAQ,CAAC,GAAW,EAAE,KAAc;QACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,oDAAoD;IACpD,QAAQ,CAAc,GAAW,EAAE,YAAgB;QAClD,OAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAmB,IAAI,YAAY,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACH;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,eAAe;QACd,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YACrC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACH,IAAI,MAAM;QACT,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YACrC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;;;;OAQG;IACH,qBAAqB,CAAC,GAAW;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,OAAO,YAAY,IAAI,IAAI,QAAQ,YAAY,IAAI,EAAE,CAAC;YACzD,OAAO,OAAO,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,KAAc;QACrB,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;;OAQG;IACH,QAAQ;QACP,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;IACF,CAAC;IAED;;;;;OAKG;IACH,CAAC,QAAQ,CAAC,CAAiB;IAE3B;;;OAGG;IACH,KAAK,CAAC,OAAO;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,KAAK,CACd,kEAAkE,CAClE,CAAC;QACH,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,KAAK,CACd,gEAAgE,CAChE,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,YAAoB,EAAE,KAAc;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,KAAK,CACd,oEAAoE,CACpE,CAAC;QACH,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CAClB,YAAoB,EACpB,KAA2B;QAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,KAAK,CACd,wEAAwE,CACxE,CAAC;QACH,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CACT,YAAoB,EACpB,QAA+B;QAE/B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,KAAK,CACd,+DAA+D,CAC/D,CAAC;QACH,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,YAAoB;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,KAAK,CACd,kEAAkE,CAClE,CAAC;QACH,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,CAAC,OAAgC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,WAGjB,CAAC;QACF,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACd,GAAG,IAAI,CAAC,IAAI,gDAAgD,CAC5D,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,GAAW,EAAW,EAAE;YACxC,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACtD,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;QACF,wEAAwE;QACxE,0EAA0E;QAC1E,0EAA0E;QAC1E,wEAAwE;QACxE,oCAAoC;QACpC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC;oBACrB,IAAI,WAAW,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;wBACxC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC7B,CAAC;yBAAM,CAAC;wBACP,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBAAE,MAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAgC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,WAGjB,CAAC;QACF,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACd,GAAG,IAAI,CAAC,IAAI,gDAAgD,CAC5D,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,GAAW,EAAW,EAAE;YACxC,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACtD,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;QACF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjB,MAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,sDAAsD;IACtD,cAAc,CAAC,IAAY,EAAE,IAA6B;QACzD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,4DAA4D;IAC5D,eAAe;QACd,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAED,uCAAuC;IACvC,iBAAiB;QAChB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,0DAA0D;IAC1D,iBAAiB;QAChB,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC;IACf,CAAC;IAED,iDAAiD;IACjD,eAAe;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;;OAOG;IACH,MAAM;QACL,MAAM,IAAI,GAAG,IAAI,CAAC,WAGjB,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAC1C,MAAM,OAAO,GACZ,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAExE,MAAM,eAAe,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACvD,qEAAqE;QACrE,2EAA2E;QAC3E,4EAA4E;QAC5E,oEAAoE;QACpE,MAAM,QAAQ,GAAG,IAAI,GAAG,CACvB,mBAAmB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CACxD,CAAC;QACF,MAAM,MAAM,GAA4B,EAAE,CAAC;QAE3C,oEAAoE;QACpE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YACrC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC3C,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAE9B,wEAAwE;YACxE,sEAAsE;YACtE,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,GAAG,EAAE,CAAC;gBACT,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI;oBAAE,SAAS;gBACvC,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3C,SAAS;YACV,CAAC;YAED,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,GAAG,EAAE,WAAW,KAAK,IAAI;gBAAE,SAAS,CAAC,gBAAgB;YAEzD,MAAM,MAAM,GAAG,GAAG,EAAE,WAAW,IAAI,GAAG,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3B,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACtE,CAAC;QAED,gDAAgD;QAChD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC7C,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC5C,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC/B,MAAM,CAAC,IAAI,CAAC,GAAI,IAAgC,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC;QAED,8EAA8E;QAC9E,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,OAAwC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,EAAE,MAAM;YAAE,OAAO,IAAI,CAAC;QAClC,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,GAAG,IAAI,IAAI;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;CACD;AAED,mEAAmE;AAEnE,oFAAoF;AACpF,SAAS,qBAAqB,CAAC,IAAa;IAC3C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,IAAI,OAAO,GACV,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,UAAU;QACrD,CAAC,CAAE,IAAsB;QACzB,CAAC,CAAC,IAAI,CAAC;IACT,OAAO,OAAO,IAAI,OAAO,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,YAAY,EAAE,OAAO,CAE/C,CAAC;QACb,IAAI,IAAI;YAAE,KAAK,MAAM,CAAC,IAAI,IAAI;gBAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,qFAAqF;AACrF,SAAS,wBAAwB,CAChC,IAAa;IAEb,MAAM,MAAM,GAA0C,EAAE,CAAC;IACzD,IAAI,OAAO,GACV,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,UAAU;QACrD,CAAC,CAAE,IAAsB;QACzB,CAAC,CAAC,IAAI,CAAC;IACT,OAAO,OAAO,IAAI,OAAO,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,oBAAoB,EAAE,OAAO,CAEtD,CAAC;QACb,IAAI,GAAG;YAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACpC,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,0EAA0E;AAC1E,2EAA2E;AAC3E,6EAA6E;AAC7E,0EAA0E;AAC1E,6EAA6E;AAC7E,kDAAkD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseRepository.d.ts","sourceRoot":"","sources":["../src/BaseRepository.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACX,UAAU,EAEV,WAAW,EAIX,aAAa,EACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAEN,iBAAiB,EAQjB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,UAAU,EAA8B,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACN,KAAK,YAAY,EAKjB,MAAM,mBAAmB,CAAC;AAG3B,KAAK,iBAAiB,CAAC,CAAC,SAAS,UAAU,IAAI,UAAU,CAAC,CAAC;AAE3D;;;;GAIG;AACH,MAAM,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAEjD,4DAA4D;AAC5D,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;AAuDhC;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IAClC,mDAAmD;IACnD,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,wCAAwC;IACxC,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;CAC9D;AAgBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC/B,WAAW,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAClD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwBxB;AAED,qBAAa,cAAc,CAAC,CAAC,SAAS,UAAU;;IAkC/C,yEAAyE;IACzE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;gBAGzD,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,EACjC,EAAE,EAAE,kBAAkB,EACtB,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,YAAY,CAAA;KAAE;
|
|
1
|
+
{"version":3,"file":"BaseRepository.d.ts","sourceRoot":"","sources":["../src/BaseRepository.ts"],"names":[],"mappings":"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"}
|
package/dist/BaseRepository.js
CHANGED
|
@@ -130,6 +130,14 @@ export class BaseRepository {
|
|
|
130
130
|
onDomainEvents;
|
|
131
131
|
constructor(entityClass, db, options) {
|
|
132
132
|
this.#entityClass = entityClass;
|
|
133
|
+
if (db == null) {
|
|
134
|
+
// A null/undefined connection almost always means IoC constructor
|
|
135
|
+
// injection failed (missing decorator metadata) — fail with a clear
|
|
136
|
+
// message instead of the cryptic `reading 'dialect' of undefined`.
|
|
137
|
+
throw new AtlasError("MISSING_CONNECTION", `BaseRepository for '${entityClass.name}' requires a DatabaseConnection (got ${db === null ? "null" : "undefined"}).`, {
|
|
138
|
+
hint: "The connection was not injected. Check IoC constructor injection is wired — decorator metadata (emitDecoratorMetadata) or @Inject(token) on the connection parameter.",
|
|
139
|
+
});
|
|
140
|
+
}
|
|
133
141
|
this.#db = db;
|
|
134
142
|
// Dialect resolution order: explicit option > connection.dialect > process default.
|
|
135
143
|
const connDialect = db.dialect;
|
|
@@ -246,16 +254,10 @@ export class BaseRepository {
|
|
|
246
254
|
}
|
|
247
255
|
// ─── Finders ──────────────────────────────────────────────
|
|
248
256
|
async find(id) {
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
this.#
|
|
253
|
-
const { sql, params } = this.#compileSelect({ wheres, limit: 1 });
|
|
254
|
-
const rows = await this.#db.query(sql, params);
|
|
255
|
-
const row = rows[0];
|
|
256
|
-
if (!row)
|
|
257
|
-
return null;
|
|
258
|
-
return this.#hydrate(row);
|
|
257
|
+
// Route through the query builder so the read hooks (beforeFind/afterFind)
|
|
258
|
+
// fire and a `beforeFind` hook can mutate the query — the previous direct
|
|
259
|
+
// `#compileSelect` fast path bypassed every read hook silently.
|
|
260
|
+
return this.query().where(this.#primaryKey, id).first();
|
|
259
261
|
}
|
|
260
262
|
async findOrFail(id) {
|
|
261
263
|
const entity = await this.find(id);
|
|
@@ -267,58 +269,31 @@ export class BaseRepository {
|
|
|
267
269
|
return entity;
|
|
268
270
|
}
|
|
269
271
|
async findBy(column, value) {
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
{ column: col, operator: "=", value, type: "and" },
|
|
273
|
-
];
|
|
274
|
-
this.#appendSoftScope(wheres);
|
|
275
|
-
const { sql, params } = this.#compileSelect({ wheres, limit: 1 });
|
|
276
|
-
const rows = await this.#db.query(sql, params);
|
|
277
|
-
const row = rows[0];
|
|
278
|
-
if (!row)
|
|
279
|
-
return null;
|
|
280
|
-
return this.#hydrate(row);
|
|
272
|
+
// Through the builder for read-hook parity (see `find`).
|
|
273
|
+
return this.query().where(column, value).first();
|
|
281
274
|
}
|
|
282
275
|
async all() {
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
return this
|
|
276
|
+
// Through the builder so beforeFetch/afterFetch fire. The builder applies
|
|
277
|
+
// the soft-delete scope by default, exactly like the old fast path.
|
|
278
|
+
return this.query().exec();
|
|
286
279
|
}
|
|
287
280
|
async allWithTrashed() {
|
|
288
|
-
return this
|
|
281
|
+
return this.query().withTrashed().exec();
|
|
289
282
|
}
|
|
290
283
|
async onlyTrashed() {
|
|
291
284
|
if (!this.#softDeletes)
|
|
292
285
|
return [];
|
|
293
|
-
return this
|
|
294
|
-
wheres: [
|
|
295
|
-
{
|
|
296
|
-
column: "deleted_at",
|
|
297
|
-
operator: "IS NOT NULL",
|
|
298
|
-
value: null,
|
|
299
|
-
type: "and",
|
|
300
|
-
},
|
|
301
|
-
],
|
|
302
|
-
});
|
|
286
|
+
return this.query().onlyTrashed().exec();
|
|
303
287
|
}
|
|
304
288
|
async where(column, value) {
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
this
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
// blew up on Postgres/MySQL the moment the app ran against a real driver.
|
|
314
|
-
// Using the PK works on every dialect and matches the user's actual
|
|
315
|
-
// schema — the ordering contract is "most recent first by PK" for
|
|
316
|
-
// `repo.where(col, val)` as a convenience finder.
|
|
317
|
-
const pkCol = camelToSnake(this.#primaryKey);
|
|
318
|
-
return this.#runSelect({
|
|
319
|
-
wheres,
|
|
320
|
-
orderBy: [{ column: pkCol, direction: "desc" }],
|
|
321
|
-
});
|
|
289
|
+
// Order by the primary key (DESC = most recent insert first when the PK is
|
|
290
|
+
// an auto-increment integer or a monotonic UUID). The ordering contract is
|
|
291
|
+
// "most recent first by PK" for `repo.where(col, val)` as a convenience
|
|
292
|
+
// finder. Through the builder for read-hook parity (see `find`).
|
|
293
|
+
return this.query()
|
|
294
|
+
.where(column, value)
|
|
295
|
+
.orderBy(this.#primaryKey, "desc")
|
|
296
|
+
.exec();
|
|
322
297
|
}
|
|
323
298
|
// ─── Create / Save / Delete ───────────────────────────────
|
|
324
299
|
/**
|
|
@@ -338,6 +313,7 @@ export class BaseRepository {
|
|
|
338
313
|
await this.#insert(entity);
|
|
339
314
|
await fireHooks(this.#entityClass, "afterCreate", entity);
|
|
340
315
|
await fireHooks(this.#entityClass, "afterSave", entity);
|
|
316
|
+
await this.#dispatchDomainEvents(entity);
|
|
341
317
|
return entity;
|
|
342
318
|
}
|
|
343
319
|
/**
|
|
@@ -382,6 +358,16 @@ export class BaseRepository {
|
|
|
382
358
|
}
|
|
383
359
|
}
|
|
384
360
|
await fireHooks(this.#entityClass, "afterSave", entity);
|
|
361
|
+
await this.#dispatchDomainEvents(entity);
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Flush the entity's accumulated domain events through `onDomainEvents`.
|
|
365
|
+
* On dispatch failure the events are re-queued on the entity and the error
|
|
366
|
+
* propagates, so a caller can retry without losing them. Shared by `save`,
|
|
367
|
+
* `create` and `createMany` — every persistence path that produces a live
|
|
368
|
+
* entity must dispatch, otherwise events silently vanish on batch inserts.
|
|
369
|
+
*/
|
|
370
|
+
async #dispatchDomainEvents(entity) {
|
|
385
371
|
const events = entity.flushDomainEvents();
|
|
386
372
|
if (events.length > 0 && this.onDomainEvents) {
|
|
387
373
|
try {
|
|
@@ -457,6 +443,9 @@ export class BaseRepository {
|
|
|
457
443
|
await fireHooks(this.#entityClass, "afterCreate", e);
|
|
458
444
|
await fireHooks(this.#entityClass, "afterSave", e);
|
|
459
445
|
}
|
|
446
|
+
for (const e of entities) {
|
|
447
|
+
await this.#dispatchDomainEvents(e);
|
|
448
|
+
}
|
|
460
449
|
return entities;
|
|
461
450
|
}
|
|
462
451
|
/**
|
|
@@ -713,33 +702,6 @@ export class BaseRepository {
|
|
|
713
702
|
return this.#primaryKey;
|
|
714
703
|
}
|
|
715
704
|
// ─── Private helpers ──────────────────────────────────────
|
|
716
|
-
#compileSelect(opts) {
|
|
717
|
-
const spec = {
|
|
718
|
-
kind: "select",
|
|
719
|
-
table: this.#tableName,
|
|
720
|
-
select: ["*"],
|
|
721
|
-
wheres: opts.wheres ?? [],
|
|
722
|
-
orderBy: opts.orderBy ?? [],
|
|
723
|
-
groupBy: [],
|
|
724
|
-
having: [],
|
|
725
|
-
limit: opts.limit ?? null,
|
|
726
|
-
offset: null,
|
|
727
|
-
distinct: false,
|
|
728
|
-
ctes: [],
|
|
729
|
-
unions: [],
|
|
730
|
-
// Cast WHERE params on native-typed columns (uuid/timestamp/…) so a
|
|
731
|
-
// `WHERE id = $1` on a uuid PK emits `$1::uuid` — otherwise Postgres
|
|
732
|
-
// rejects it with `operator does not exist: uuid = text`.
|
|
733
|
-
casts: this.#castTypes,
|
|
734
|
-
};
|
|
735
|
-
const compiled = compileStatementNative(spec, this.#dialect);
|
|
736
|
-
return { sql: compiled.statements[0], params: compiled.params };
|
|
737
|
-
}
|
|
738
|
-
async #runSelect(opts) {
|
|
739
|
-
const { sql, params } = this.#compileSelect(opts);
|
|
740
|
-
const rows = await this.#db.query(sql, params);
|
|
741
|
-
return rows.map((r) => this.#hydrate(r));
|
|
742
|
-
}
|
|
743
705
|
async #runDelete(wheres) {
|
|
744
706
|
const compiled = compileStatementNative({ kind: "delete", table: this.#tableName, wheres }, this.#dialect);
|
|
745
707
|
await this.#db.execute(compiled.statements[0], compiled.params);
|
|
@@ -803,16 +765,6 @@ export class BaseRepository {
|
|
|
803
765
|
// by the caller or generated client-side as a UUID).
|
|
804
766
|
return {};
|
|
805
767
|
}
|
|
806
|
-
#appendSoftScope(wheres) {
|
|
807
|
-
if (this.#softDeletes) {
|
|
808
|
-
wheres.push({
|
|
809
|
-
column: "deleted_at",
|
|
810
|
-
operator: "IS NULL",
|
|
811
|
-
value: null,
|
|
812
|
-
type: "and",
|
|
813
|
-
});
|
|
814
|
-
}
|
|
815
|
-
}
|
|
816
768
|
async #insert(entity) {
|
|
817
769
|
// Auto-generate the PK when declared via `@PrimaryKey({ generated })`.
|
|
818
770
|
this.#applyPrimaryKeyGenerator(entity);
|
|
@@ -1069,6 +1021,10 @@ export class BaseRepository {
|
|
|
1069
1021
|
const relatedRepo = new BaseRepository(relatedClass, this.#db, {
|
|
1070
1022
|
dialect: this.#dialect,
|
|
1071
1023
|
});
|
|
1024
|
+
// Propagate the domain-event sink so entities persisted through a relation
|
|
1025
|
+
// proxy (user.related('posts').create(...)) dispatch their events too —
|
|
1026
|
+
// otherwise the related entity's events silently vanish.
|
|
1027
|
+
relatedRepo.onDomainEvents = this.onDomainEvents;
|
|
1072
1028
|
const db = this.#db;
|
|
1073
1029
|
// FK column naming: belongsTo stores the FK on THIS side; has* / m2m on the OTHER side.
|
|
1074
1030
|
const fkCol = relation.foreignKey ??
|