joist-orm 1.93.0 → 1.94.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/src/BaseEntity.js +1 -1
- package/build/src/BaseEntity.js.map +1 -1
- package/build/src/Entity.d.ts +6 -4
- package/build/src/Entity.d.ts.map +1 -1
- package/build/src/Entity.js +33 -1
- package/build/src/Entity.js.map +1 -1
- package/build/src/EntityManager.d.ts +12 -42
- package/build/src/EntityManager.d.ts.map +1 -1
- package/build/src/EntityManager.js +76 -92
- package/build/src/EntityManager.js.map +1 -1
- package/build/src/FlushLock.d.ts +25 -0
- package/build/src/FlushLock.d.ts.map +1 -0
- package/build/src/FlushLock.js +54 -0
- package/build/src/FlushLock.js.map +1 -0
- package/build/src/Todo.d.ts.map +1 -1
- package/build/src/Todo.js.map +1 -1
- package/build/src/dataloaders/findCountDataLoader.js +1 -1
- package/build/src/dataloaders/findCountDataLoader.js.map +1 -1
- package/build/src/dataloaders/findDataLoader.d.ts +1 -1
- package/build/src/dataloaders/findDataLoader.d.ts.map +1 -1
- package/build/src/dataloaders/findDataLoader.js +4 -4
- package/build/src/dataloaders/findDataLoader.js.map +1 -1
- package/build/src/dataloaders/manyToManyDataLoader.d.ts.map +1 -1
- package/build/src/dataloaders/manyToManyDataLoader.js +2 -1
- package/build/src/dataloaders/manyToManyDataLoader.js.map +1 -1
- package/build/src/index.d.ts.map +1 -1
- package/build/src/index.js +5 -12
- package/build/src/index.js.map +1 -1
- package/build/src/relations/ManyToManyCollection.d.ts.map +1 -1
- package/build/src/relations/ManyToManyCollection.js +4 -4
- package/build/src/relations/ManyToManyCollection.js.map +1 -1
- package/build/src/relations/ManyToOneReference.d.ts.map +1 -1
- package/build/src/relations/ManyToOneReference.js +2 -2
- package/build/src/relations/ManyToOneReference.js.map +1 -1
- package/build/src/relations/OneToManyCollection.d.ts.map +1 -1
- package/build/src/relations/OneToManyCollection.js +1 -1
- package/build/src/relations/OneToManyCollection.js.map +1 -1
- package/build/src/relations/hasPersistedAsyncProperty.d.ts.map +1 -1
- package/build/src/relations/hasPersistedAsyncProperty.js +1 -1
- package/build/src/relations/hasPersistedAsyncProperty.js.map +1 -1
- package/build/src/relations/hasPersistedAsyncReference.d.ts.map +1 -1
- package/build/src/relations/hasPersistedAsyncReference.js +1 -1
- package/build/src/relations/hasPersistedAsyncReference.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
package/build/src/BaseEntity.js
CHANGED
|
@@ -15,7 +15,7 @@ class BaseEntity {
|
|
|
15
15
|
entity;
|
|
16
16
|
constructor(em, metadata, defaultValues, opts) {
|
|
17
17
|
Object.defineProperty(this, "__orm", {
|
|
18
|
-
value:
|
|
18
|
+
value: new index_1.EntityOrmField(em, metadata, defaultValues),
|
|
19
19
|
enumerable: false,
|
|
20
20
|
});
|
|
21
21
|
Object.defineProperty(this, "entity", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseEntity.js","sourceRoot":"","sources":["../../src/BaseEntity.ts"],"names":[],"mappings":";;;AAAA,mCAWiB;AAEjB;;;;GAIG;AACH,MAAsB,UAAU;IAGrB,KAAK,CAAkB;IAChC,yFAAyF;IACzF,4FAA4F;IAC5F,8BAA8B;IACrB,MAAM,CAAQ;IAEvB,YAAsB,EAAiB,EAAE,QAAa,EAAE,aAAqB,EAAE,IAAS;QACtF,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;YACnC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"BaseEntity.js","sourceRoot":"","sources":["../../src/BaseEntity.ts"],"names":[],"mappings":"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"}
|
package/build/src/Entity.d.ts
CHANGED
|
@@ -33,20 +33,22 @@ export interface Entity {
|
|
|
33
33
|
toString(): string;
|
|
34
34
|
}
|
|
35
35
|
/** The `__orm` metadata field we track on each instance. */
|
|
36
|
-
export
|
|
36
|
+
export declare class EntityOrmField {
|
|
37
|
+
/** All entities must be associated to an `EntityManager` to handle lazy loading/etc. */
|
|
38
|
+
readonly em: EntityManager;
|
|
37
39
|
/** A point to our entity type's metadata. */
|
|
38
|
-
metadata: EntityMetadata<Entity>;
|
|
40
|
+
readonly metadata: EntityMetadata<Entity>;
|
|
39
41
|
/** A bag for our primitives/fk column values. */
|
|
40
42
|
data: Record<any, any>;
|
|
41
43
|
/** A bag to keep the original values, lazily populated. */
|
|
42
44
|
originalData: Record<any, any>;
|
|
43
45
|
/** Whether our entity has been deleted or not. */
|
|
44
46
|
deleted?: "pending" | "deleted";
|
|
45
|
-
/** All entities must be associated to an `EntityManager` to handle lazy loading/etc. */
|
|
46
|
-
em: EntityManager;
|
|
47
47
|
/** Whether our entity is new or not. */
|
|
48
48
|
isNew: boolean;
|
|
49
49
|
/** Whether our entity should flush regardless of any other changes. */
|
|
50
50
|
isTouched: boolean;
|
|
51
|
+
constructor(em: EntityManager, metadata: EntityMetadata<Entity>, defaultValues: Record<any, any>);
|
|
52
|
+
resetAfterFlushed(): void;
|
|
51
53
|
}
|
|
52
54
|
//# sourceMappingURL=Entity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../../src/Entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,wBAAgB,QAAQ,CAAC,WAAW,EAAE,GAAG,GAAG,WAAW,IAAI,MAAM,CAEhE;AAED,2DAA2D;AAC3D,MAAM,WAAW,MAAM;IACrB;;;;OAIG;IACH,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,qFAAqF;IACrF,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACvC,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACtD;;;;;OAKG;IACH,QAAQ,IAAI,MAAM,CAAC;CACpB;AAED,4DAA4D;AAC5D,
|
|
1
|
+
{"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../../src/Entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,wBAAgB,QAAQ,CAAC,WAAW,EAAE,GAAG,GAAG,WAAW,IAAI,MAAM,CAEhE;AAED,2DAA2D;AAC3D,MAAM,WAAW,MAAM;IACrB;;;;OAIG;IACH,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,qFAAqF;IACrF,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACvC,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACtD;;;;;OAKG;IACH,QAAQ,IAAI,MAAM,CAAC;CACpB;AAED,4DAA4D;AAC5D,qBAAa,cAAc;IACzB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAC3B,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACvB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/B,kDAAkD;IAClD,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,wCAAwC;IACxC,KAAK,EAAE,OAAO,CAAQ;IACtB,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAS;gBAEf,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;IAOhG,iBAAiB;CAQlB"}
|
package/build/src/Entity.js
CHANGED
|
@@ -1,8 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isEntity = void 0;
|
|
3
|
+
exports.EntityOrmField = exports.isEntity = void 0;
|
|
4
4
|
function isEntity(maybeEntity) {
|
|
5
5
|
return maybeEntity && typeof maybeEntity === "object" && "id" in maybeEntity && "__orm" in maybeEntity;
|
|
6
6
|
}
|
|
7
7
|
exports.isEntity = isEntity;
|
|
8
|
+
/** The `__orm` metadata field we track on each instance. */
|
|
9
|
+
class EntityOrmField {
|
|
10
|
+
/** All entities must be associated to an `EntityManager` to handle lazy loading/etc. */
|
|
11
|
+
em;
|
|
12
|
+
/** A point to our entity type's metadata. */
|
|
13
|
+
metadata;
|
|
14
|
+
/** A bag for our primitives/fk column values. */
|
|
15
|
+
data;
|
|
16
|
+
/** A bag to keep the original values, lazily populated. */
|
|
17
|
+
originalData;
|
|
18
|
+
/** Whether our entity has been deleted or not. */
|
|
19
|
+
deleted;
|
|
20
|
+
/** Whether our entity is new or not. */
|
|
21
|
+
isNew = true;
|
|
22
|
+
/** Whether our entity should flush regardless of any other changes. */
|
|
23
|
+
isTouched = false;
|
|
24
|
+
constructor(em, metadata, defaultValues) {
|
|
25
|
+
this.em = em;
|
|
26
|
+
this.metadata = metadata;
|
|
27
|
+
this.data = { ...defaultValues };
|
|
28
|
+
this.originalData = {};
|
|
29
|
+
}
|
|
30
|
+
resetAfterFlushed() {
|
|
31
|
+
this.originalData = {};
|
|
32
|
+
this.isTouched = false;
|
|
33
|
+
this.isNew = false;
|
|
34
|
+
if (this.deleted === "pending") {
|
|
35
|
+
this.deleted = "deleted";
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.EntityOrmField = EntityOrmField;
|
|
8
40
|
//# sourceMappingURL=Entity.js.map
|
package/build/src/Entity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../src/Entity.ts"],"names":[],"mappings":";;;AAIA,SAAgB,QAAQ,CAAC,WAAgB;IACvC,OAAO,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,IAAI,IAAI,WAAW,IAAI,OAAO,IAAI,WAAW,CAAC;AACzG,CAAC;AAFD,4BAEC"}
|
|
1
|
+
{"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../src/Entity.ts"],"names":[],"mappings":";;;AAIA,SAAgB,QAAQ,CAAC,WAAgB;IACvC,OAAO,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,IAAI,IAAI,WAAW,IAAI,OAAO,IAAI,WAAW,CAAC;AACzG,CAAC;AAFD,4BAEC;AAiCD,4DAA4D;AAC5D,MAAa,cAAc;IACzB,wFAAwF;IAC/E,EAAE,CAAgB;IAC3B,6CAA6C;IACpC,QAAQ,CAAyB;IAC1C,iDAAiD;IACjD,IAAI,CAAmB;IACvB,2DAA2D;IAC3D,YAAY,CAAmB;IAC/B,kDAAkD;IAClD,OAAO,CAAyB;IAChC,wCAAwC;IACxC,KAAK,GAAY,IAAI,CAAC;IACtB,uEAAuE;IACvE,SAAS,GAAY,KAAK,CAAC;IAE3B,YAAY,EAAiB,EAAE,QAAgC,EAAE,aAA+B;QAC9F,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,EAAE,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;YAC9B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;SAC1B;IACH,CAAC;CACF;AA/BD,wCA+BC"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { AsyncLocalStorage } from "async_hooks";
|
|
3
1
|
import DataLoader, { BatchLoadFn, Options } from "dataloader";
|
|
4
2
|
import { Knex } from "knex";
|
|
5
3
|
import { Entity } from "./Entity";
|
|
@@ -106,23 +104,6 @@ export declare function isId(value: any): value is IdOf<unknown>;
|
|
|
106
104
|
export declare let currentlyInstantiatingEntity: Entity | undefined;
|
|
107
105
|
export type EntityManagerHook = "beforeTransaction" | "afterTransaction";
|
|
108
106
|
type HookFn = (em: EntityManager, knex: Knex.Transaction) => MaybePromise<any>;
|
|
109
|
-
/**
|
|
110
|
-
* A marker to prevent setter calls during `flush` calls.
|
|
111
|
-
*
|
|
112
|
-
* The `flush` process does a dirty check + SQL flush and generally doesn't want
|
|
113
|
-
* entities to re-dirtied after it's done the initial dirty check. So we'd like
|
|
114
|
-
* to prevent all setter calls while `flush` is running.
|
|
115
|
-
*
|
|
116
|
-
* That said, lifecycle code like hooks actually can make setter calls b/c `flush`
|
|
117
|
-
* invokes them at a specific point in its process.
|
|
118
|
-
*
|
|
119
|
-
* We solve this by using node's `AsyncLocalStorage` to mark certain callbacks (promise
|
|
120
|
-
* handlers) as blessed / invoked-from-`flush`-itself, and they are allowed to call setters,
|
|
121
|
-
* but any external callers (i.e. application code) will be rejected.
|
|
122
|
-
*/
|
|
123
|
-
export declare const currentFlushSecret: AsyncLocalStorage<{
|
|
124
|
-
flushSecret: number;
|
|
125
|
-
}>;
|
|
126
107
|
export type LoaderCache = Record<string, DataLoader<any, any>>;
|
|
127
108
|
export type TimestampFields = {
|
|
128
109
|
updatedAt: string | undefined;
|
|
@@ -134,31 +115,11 @@ export interface FlushOptions {
|
|
|
134
115
|
skipValidation?: boolean;
|
|
135
116
|
}
|
|
136
117
|
export declare class EntityManager<C = unknown> {
|
|
118
|
+
#private;
|
|
137
119
|
readonly ctx: C;
|
|
138
120
|
driver: Driver;
|
|
139
121
|
currentTxnKnex: Knex | undefined;
|
|
140
|
-
private
|
|
141
|
-
private _entityIndex;
|
|
142
|
-
private flushSecret;
|
|
143
|
-
private _isFlushing;
|
|
144
|
-
private _isValidating;
|
|
145
|
-
pendingChildren: Map<string, Map<string, Entity[]>>;
|
|
146
|
-
/**
|
|
147
|
-
* Tracks cascade deletes.
|
|
148
|
-
*
|
|
149
|
-
* We originally used a beforeDelete lifecycle hook to implement this, but tracking this
|
|
150
|
-
* individually allows us to a) recursively cascade deletes even during the 1st iteration
|
|
151
|
-
* of our `flush` loop, and b) cascade deletions before we recalc fields & run user hooks,
|
|
152
|
-
* so that both see the most accurate state.
|
|
153
|
-
*/
|
|
154
|
-
private pendingCascadeDeletes;
|
|
155
|
-
dataloaders: Record<string, LoaderCache>;
|
|
156
|
-
__data: {
|
|
157
|
-
joinRows: Record<string, JoinRow[]>;
|
|
158
|
-
/** Stores any `source -> downstream` reactions to recalc during `em.flush`. */
|
|
159
|
-
rm: ReactionsManager;
|
|
160
|
-
};
|
|
161
|
-
private hooks;
|
|
122
|
+
private __api;
|
|
162
123
|
constructor(em: EntityManager<C>);
|
|
163
124
|
constructor(ctx: C, driver: Driver);
|
|
164
125
|
/** Returns a read-only shallow copy of the currently-loaded entities. */
|
|
@@ -412,7 +373,6 @@ export declare class EntityManager<C = unknown> {
|
|
|
412
373
|
* It returns entities that have changed (an entity is considered changed if it has been deleted, inserted, or updated)
|
|
413
374
|
*/
|
|
414
375
|
flush(flushOptions?: FlushOptions): Promise<Entity[]>;
|
|
415
|
-
get isFlushing(): boolean;
|
|
416
376
|
/**
|
|
417
377
|
* A very simple toJSON.
|
|
418
378
|
*
|
|
@@ -473,6 +433,16 @@ export declare class EntityManager<C = unknown> {
|
|
|
473
433
|
/** Recursively cascades any pending deletions. */
|
|
474
434
|
private cascadeDeletes;
|
|
475
435
|
}
|
|
436
|
+
/** Provides an internal API to the `EntityManager`. */
|
|
437
|
+
export interface EntityManagerInternalApi {
|
|
438
|
+
joinRows: Record<string, JoinRow[]>;
|
|
439
|
+
pendingChildren: Map<string, Map<string, Entity[]>>;
|
|
440
|
+
hooks: Record<EntityManagerHook, HookFn[]>;
|
|
441
|
+
rm: ReactionsManager;
|
|
442
|
+
isValidating: boolean;
|
|
443
|
+
checkWritesAllowed: () => void;
|
|
444
|
+
}
|
|
445
|
+
export declare function getEmInternalApi(em: EntityManager): EntityManagerInternalApi;
|
|
476
446
|
export declare let entityLimit: number;
|
|
477
447
|
export declare function setEntityLimit(limit: number): void;
|
|
478
448
|
export declare function setDefaultEntityLimit(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityManager.d.ts","sourceRoot":"","sources":["../../src/EntityManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EntityManager.d.ts","sourceRoot":"","sources":["../../src/EntityManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.isDefined = exports.afterTransaction = exports.beforeTransaction = exports.TooManyError = exports.NotFoundError = exports.sameEntity = exports.isKey = exports.setDefaultEntityLimit = exports.setEntityLimit = exports.entityLimit = exports.
|
|
7
|
-
const async_hooks_1 = require("async_hooks");
|
|
6
|
+
exports.isDefined = exports.afterTransaction = exports.beforeTransaction = exports.TooManyError = exports.NotFoundError = exports.sameEntity = exports.isKey = exports.setDefaultEntityLimit = exports.setEntityLimit = exports.entityLimit = exports.getEmInternalApi = exports.EntityManager = exports.currentlyInstantiatingEntity = exports.isId = void 0;
|
|
8
7
|
const dataloader_1 = __importDefault(require("dataloader"));
|
|
9
8
|
const Entity_1 = require("./Entity");
|
|
9
|
+
const FlushLock_1 = require("./FlushLock");
|
|
10
10
|
const ReactionsManager_1 = require("./ReactionsManager");
|
|
11
11
|
const Todo_1 = require("./Todo");
|
|
12
12
|
const config_1 = require("./config");
|
|
@@ -25,34 +25,16 @@ function isId(value) {
|
|
|
25
25
|
return value && typeof value === "string";
|
|
26
26
|
}
|
|
27
27
|
exports.isId = isId;
|
|
28
|
-
/**
|
|
29
|
-
* A marker to prevent setter calls during `flush` calls.
|
|
30
|
-
*
|
|
31
|
-
* The `flush` process does a dirty check + SQL flush and generally doesn't want
|
|
32
|
-
* entities to re-dirtied after it's done the initial dirty check. So we'd like
|
|
33
|
-
* to prevent all setter calls while `flush` is running.
|
|
34
|
-
*
|
|
35
|
-
* That said, lifecycle code like hooks actually can make setter calls b/c `flush`
|
|
36
|
-
* invokes them at a specific point in its process.
|
|
37
|
-
*
|
|
38
|
-
* We solve this by using node's `AsyncLocalStorage` to mark certain callbacks (promise
|
|
39
|
-
* handlers) as blessed / invoked-from-`flush`-itself, and they are allowed to call setters,
|
|
40
|
-
* but any external callers (i.e. application code) will be rejected.
|
|
41
|
-
*/
|
|
42
|
-
exports.currentFlushSecret = new async_hooks_1.AsyncLocalStorage();
|
|
43
28
|
class EntityManager {
|
|
44
29
|
ctx;
|
|
45
30
|
driver;
|
|
46
31
|
currentTxnKnex;
|
|
47
|
-
|
|
32
|
+
#entities = [];
|
|
48
33
|
// Indexes the currently loaded entities by their tagged ids. This fixes a real-world
|
|
49
|
-
// performance issue where `findExistingInstance` scanning `
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
_isValidating = false;
|
|
54
|
-
// TODO Make these private
|
|
55
|
-
pendingChildren = new Map();
|
|
34
|
+
// performance issue where `findExistingInstance` scanning `#entities` was an `O(n^2)`.
|
|
35
|
+
#entityIndex = new Map();
|
|
36
|
+
#isValidating = false;
|
|
37
|
+
#pendingChildren = new Map();
|
|
56
38
|
/**
|
|
57
39
|
* Tracks cascade deletes.
|
|
58
40
|
*
|
|
@@ -61,25 +43,22 @@ class EntityManager {
|
|
|
61
43
|
* of our `flush` loop, and b) cascade deletions before we recalc fields & run user hooks,
|
|
62
44
|
* so that both see the most accurate state.
|
|
63
45
|
*/
|
|
64
|
-
pendingCascadeDeletes = [];
|
|
65
|
-
dataloaders = {};
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
beforeTransaction: [],
|
|
74
|
-
afterTransaction: [],
|
|
75
|
-
};
|
|
46
|
+
#pendingCascadeDeletes = [];
|
|
47
|
+
#dataloaders = {};
|
|
48
|
+
#joinRows = {};
|
|
49
|
+
/** Stores any `source -> downstream` reactions to recalc during `em.flush`. */
|
|
50
|
+
#rm = new ReactionsManager_1.ReactionsManager();
|
|
51
|
+
/** Ensures our `em.flush` method is not interrupted. */
|
|
52
|
+
#fl = new FlushLock_1.FlushLock();
|
|
53
|
+
#hooks = { beforeTransaction: [], afterTransaction: [] };
|
|
54
|
+
__api;
|
|
76
55
|
constructor(emOrCtx, driver) {
|
|
77
56
|
if (emOrCtx instanceof EntityManager) {
|
|
78
57
|
const em = emOrCtx;
|
|
79
58
|
this.driver = em.driver;
|
|
80
|
-
this
|
|
81
|
-
beforeTransaction: [...em
|
|
82
|
-
afterTransaction: [...em
|
|
59
|
+
this.#hooks = {
|
|
60
|
+
beforeTransaction: [...em.#hooks.beforeTransaction],
|
|
61
|
+
afterTransaction: [...em.#hooks.afterTransaction],
|
|
83
62
|
};
|
|
84
63
|
this.ctx = em.ctx;
|
|
85
64
|
}
|
|
@@ -87,15 +66,29 @@ class EntityManager {
|
|
|
87
66
|
this.ctx = emOrCtx;
|
|
88
67
|
this.driver = driver;
|
|
89
68
|
}
|
|
69
|
+
// Expose some of our private fields as the EntityManagerInternalApi
|
|
70
|
+
const em = this;
|
|
71
|
+
this.__api = {
|
|
72
|
+
joinRows: this.#joinRows,
|
|
73
|
+
pendingChildren: this.#pendingChildren,
|
|
74
|
+
hooks: this.#hooks,
|
|
75
|
+
rm: this.#rm,
|
|
76
|
+
get isValidating() {
|
|
77
|
+
return em.#isValidating;
|
|
78
|
+
},
|
|
79
|
+
checkWritesAllowed() {
|
|
80
|
+
return em.#fl.checkWritesAllowed();
|
|
81
|
+
},
|
|
82
|
+
};
|
|
90
83
|
}
|
|
91
84
|
/** Returns a read-only shallow copy of the currently-loaded entities. */
|
|
92
85
|
get entities() {
|
|
93
|
-
return [...this
|
|
86
|
+
return [...this.#entities];
|
|
94
87
|
}
|
|
95
88
|
/** Looks up `id` in the list of already-loaded entities. */
|
|
96
89
|
getEntity(id) {
|
|
97
90
|
(0, index_1.assertIdIsTagged)(id);
|
|
98
|
-
return this.
|
|
91
|
+
return this.#entityIndex.get(id);
|
|
99
92
|
}
|
|
100
93
|
async find(type, where, options) {
|
|
101
94
|
const { populate, ...rest } = options || {};
|
|
@@ -183,7 +176,7 @@ class EntityManager {
|
|
|
183
176
|
// clause before knowing if it should adjust teh amount.
|
|
184
177
|
const isSelectAll = Object.keys(where).length === 0;
|
|
185
178
|
if (isSelectAll) {
|
|
186
|
-
for (const entity of this
|
|
179
|
+
for (const entity of this.#entities) {
|
|
187
180
|
if (entity instanceof type) {
|
|
188
181
|
if (entity.isNewEntity) {
|
|
189
182
|
count++;
|
|
@@ -457,10 +450,10 @@ class EntityManager {
|
|
|
457
450
|
if (this.findExistingInstance(entity.idTagged) !== undefined) {
|
|
458
451
|
throw new Error(`Entity ${entity} has a duplicate instance already loaded`);
|
|
459
452
|
}
|
|
460
|
-
this.
|
|
453
|
+
this.#entityIndex.set(entity.idTagged, entity);
|
|
461
454
|
}
|
|
462
|
-
this.
|
|
463
|
-
if (this.
|
|
455
|
+
this.#entities.push(entity);
|
|
456
|
+
if (this.#entities.length >= exports.entityLimit) {
|
|
464
457
|
throw new Error(`More than ${exports.entityLimit} entities have been instantiated`);
|
|
465
458
|
}
|
|
466
459
|
// Set a default createdAt/updatedAt that we'll keep if this is a new entity, or over-write if we're loaded an existing row
|
|
@@ -472,7 +465,7 @@ class EntityManager {
|
|
|
472
465
|
if (updatedAt) {
|
|
473
466
|
entity.__orm.data[updatedAt] = new Date();
|
|
474
467
|
}
|
|
475
|
-
this
|
|
468
|
+
this.#rm.queueAllDownstreamFields(entity);
|
|
476
469
|
}
|
|
477
470
|
exports.currentlyInstantiatingEntity = entity;
|
|
478
471
|
}
|
|
@@ -494,11 +487,11 @@ class EntityManager {
|
|
|
494
487
|
}
|
|
495
488
|
entity.__orm.deleted = "pending";
|
|
496
489
|
// Any derived fields that read this entity will need recalc-d
|
|
497
|
-
this
|
|
490
|
+
this.#rm.queueAllDownstreamFields(entity);
|
|
498
491
|
// Synchronously unhook the entity if the relations are loaded
|
|
499
492
|
getCascadeDeleteRelations(entity).forEach((r) => r.maybeCascadeDelete());
|
|
500
493
|
// And queue the cascade deletes
|
|
501
|
-
this
|
|
494
|
+
this.#pendingCascadeDeletes.push(entity);
|
|
502
495
|
}
|
|
503
496
|
async assignNewIds() {
|
|
504
497
|
let pendingEntities = this.entities.filter((e) => e.isNewEntity && !e.id);
|
|
@@ -520,11 +513,8 @@ class EntityManager {
|
|
|
520
513
|
*/
|
|
521
514
|
async flush(flushOptions = {}) {
|
|
522
515
|
const { skipValidation = false } = flushOptions;
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
}
|
|
526
|
-
this._isFlushing = true;
|
|
527
|
-
await exports.currentFlushSecret.run({ flushSecret: this.flushSecret }, async () => {
|
|
516
|
+
this.#fl.startLock();
|
|
517
|
+
await this.#fl.allowWrites(async () => {
|
|
528
518
|
// Recalc any touched entities
|
|
529
519
|
const touched = this.entities.filter((e) => e.__orm.isTouched);
|
|
530
520
|
if (touched.length > 0) {
|
|
@@ -536,14 +526,14 @@ class EntityManager {
|
|
|
536
526
|
// that would NPE their logic anyway).
|
|
537
527
|
await this.cascadeDeletes();
|
|
538
528
|
// Recalc before we run hooks, so the hooks will see the latest calculated values.
|
|
539
|
-
await this
|
|
529
|
+
await this.#rm.recalcPendingDerivedValues();
|
|
540
530
|
});
|
|
541
531
|
const hooksInvoked = new Set();
|
|
542
532
|
let pendingEntities = this.entities.filter((e) => e.isPendingFlush);
|
|
543
533
|
try {
|
|
544
534
|
while (pendingEntities.length > 0) {
|
|
545
535
|
// Run hooks in a series of loops until things "settle down"
|
|
546
|
-
await
|
|
536
|
+
await this.#fl.allowWrites(async () => {
|
|
547
537
|
// Run our hooks
|
|
548
538
|
let todos = (0, Todo_1.createTodos)(pendingEntities);
|
|
549
539
|
await beforeCreate(this.ctx, todos);
|
|
@@ -556,11 +546,10 @@ class EntityManager {
|
|
|
556
546
|
// The hooks could have deleted this-loop or prior-loop entities, so re-cascade again.
|
|
557
547
|
await this.cascadeDeletes();
|
|
558
548
|
// The hooks could have changed fields, so recalc again.
|
|
559
|
-
await this
|
|
549
|
+
await this.#rm.recalcPendingDerivedValues();
|
|
560
550
|
for (const e of pendingEntities)
|
|
561
551
|
hooksInvoked.add(e);
|
|
562
552
|
pendingEntities = this.entities.filter((e) => e.isPendingFlush && !hooksInvoked.has(e));
|
|
563
|
-
this.flushSecret += 1;
|
|
564
553
|
});
|
|
565
554
|
}
|
|
566
555
|
// Recreate todos now that we've run hooks and recalculated fields so know
|
|
@@ -569,18 +558,18 @@ class EntityManager {
|
|
|
569
558
|
const entityTodos = (0, Todo_1.createTodos)(entitiesToFlush);
|
|
570
559
|
if (!skipValidation) {
|
|
571
560
|
try {
|
|
572
|
-
this
|
|
561
|
+
this.#isValidating = true;
|
|
573
562
|
// Run simple rules first b/c it includes not-null/required rules, so that then when we run
|
|
574
563
|
// `validateReactiveRules` next, the lambdas won't see invalid entities.
|
|
575
564
|
await validateSimpleRules(entityTodos);
|
|
576
565
|
await validateReactiveRules(entityTodos);
|
|
577
566
|
}
|
|
578
567
|
finally {
|
|
579
|
-
this
|
|
568
|
+
this.#isValidating = false;
|
|
580
569
|
}
|
|
581
570
|
await afterValidation(this.ctx, entityTodos);
|
|
582
571
|
}
|
|
583
|
-
const joinRowTodos = (0, Todo_1.combineJoinRows)(this
|
|
572
|
+
const joinRowTodos = (0, Todo_1.combineJoinRows)(this.#joinRows);
|
|
584
573
|
if (Object.keys(entityTodos).length > 0 || Object.keys(joinRowTodos).length > 0) {
|
|
585
574
|
// The driver will handle the right thing if we're already in an existing transaction.
|
|
586
575
|
// We also purposefully don't pass an isolation level b/c if we're only doing
|
|
@@ -594,22 +583,16 @@ class EntityManager {
|
|
|
594
583
|
// TODO: This is really "after flush" if we're being called from a transaction that
|
|
595
584
|
// is going to make multiple `em.flush()` calls?
|
|
596
585
|
await afterCommit(this.ctx, entityTodos);
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
e.
|
|
601
|
-
}
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
});
|
|
605
|
-
[todo.inserts, todo.updates, todo.deletes].flat().forEach((e) => {
|
|
606
|
-
e.__orm.originalData = {};
|
|
607
|
-
e.__orm.isTouched = false;
|
|
608
|
-
});
|
|
609
|
-
});
|
|
586
|
+
// Update the `__orm` to reflect the new state
|
|
587
|
+
for (const e of entitiesToFlush) {
|
|
588
|
+
if (e.isNewEntity) {
|
|
589
|
+
this.#entityIndex.set(e.idTagged, e);
|
|
590
|
+
}
|
|
591
|
+
e.__orm.resetAfterFlushed();
|
|
592
|
+
}
|
|
610
593
|
// Reset the find caches b/c data will have changed in the db
|
|
611
|
-
this
|
|
612
|
-
this
|
|
594
|
+
this.#dataloaders = {};
|
|
595
|
+
this.#rm.clear();
|
|
613
596
|
}
|
|
614
597
|
return entitiesToFlush;
|
|
615
598
|
}
|
|
@@ -623,12 +606,9 @@ class EntityManager {
|
|
|
623
606
|
throw e;
|
|
624
607
|
}
|
|
625
608
|
finally {
|
|
626
|
-
this.
|
|
609
|
+
this.#fl.releaseLock();
|
|
627
610
|
}
|
|
628
611
|
}
|
|
629
|
-
get isFlushing() {
|
|
630
|
-
return this._isFlushing;
|
|
631
|
-
}
|
|
632
612
|
/**
|
|
633
613
|
* A very simple toJSON.
|
|
634
614
|
*
|
|
@@ -640,9 +620,9 @@ class EntityManager {
|
|
|
640
620
|
return `<EntityManager ${this.entities.length}>`;
|
|
641
621
|
}
|
|
642
622
|
async refresh(param) {
|
|
643
|
-
this
|
|
623
|
+
this.#dataloaders = {};
|
|
644
624
|
const deepLoad = param && "deepLoad" in param && param.deepLoad;
|
|
645
|
-
let todo = param === undefined ? this
|
|
625
|
+
let todo = param === undefined ? this.#entities : Array.isArray(param) ? param : (0, Entity_1.isEntity)(param) ? [param] : this.#entities;
|
|
646
626
|
const done = new Set();
|
|
647
627
|
while (todo.length > 0) {
|
|
648
628
|
const copy = [...todo];
|
|
@@ -683,7 +663,7 @@ class EntityManager {
|
|
|
683
663
|
// Currently only public for the driver impls
|
|
684
664
|
findExistingInstance(id) {
|
|
685
665
|
(0, index_1.assertIdIsTagged)(id);
|
|
686
|
-
return this.
|
|
666
|
+
return this.#entityIndex.get(id);
|
|
687
667
|
}
|
|
688
668
|
/**
|
|
689
669
|
* Takes a result `row` from a custom query and maps the db values into a new-or-existing domain object for that row.
|
|
@@ -725,10 +705,10 @@ class EntityManager {
|
|
|
725
705
|
entity.__orm.isTouched = true;
|
|
726
706
|
}
|
|
727
707
|
beforeTransaction(fn) {
|
|
728
|
-
this
|
|
708
|
+
this.#hooks.beforeTransaction.push(fn);
|
|
729
709
|
}
|
|
730
710
|
afterTransaction(fn) {
|
|
731
|
-
this
|
|
711
|
+
this.#hooks.afterTransaction.push(fn);
|
|
732
712
|
}
|
|
733
713
|
/**
|
|
734
714
|
* Returns an EntityManager-scoped (i.e. request scoped) data loader.
|
|
@@ -744,7 +724,7 @@ class EntityManager {
|
|
|
744
724
|
// If we wanted to, if not in a transaction, we could potentially do lookups against a global cache,
|
|
745
725
|
// to achieve cross-request batching. Granted we'd need all DataLoaders to have caching disabled, see:
|
|
746
726
|
// https://github.com/stephenh/joist-ts/issues/629
|
|
747
|
-
const loadersForKind = (this
|
|
727
|
+
const loadersForKind = (this.#dataloaders[operation] ??= {});
|
|
748
728
|
return (0, utils_1.getOrSet)(loadersForKind, batchKey, () => new dataloader_1.default(fn, opts));
|
|
749
729
|
}
|
|
750
730
|
toString() {
|
|
@@ -752,8 +732,8 @@ class EntityManager {
|
|
|
752
732
|
}
|
|
753
733
|
/** Recursively cascades any pending deletions. */
|
|
754
734
|
async cascadeDeletes() {
|
|
755
|
-
let entities = this
|
|
756
|
-
this
|
|
735
|
+
let entities = this.#pendingCascadeDeletes;
|
|
736
|
+
this.#pendingCascadeDeletes = [];
|
|
757
737
|
// Loop if our deletes cascade to other deletes
|
|
758
738
|
while (entities.length > 0) {
|
|
759
739
|
// For cascade delete relations, cascade the delete...
|
|
@@ -763,12 +743,16 @@ class EntityManager {
|
|
|
763
743
|
await beforeDelete(this.ctx, todos);
|
|
764
744
|
// For all relations, unhook the entity from the other side
|
|
765
745
|
await Promise.all(entities.flatMap(index_1.getRelations).map((r) => r.cleanupOnEntityDeleted()));
|
|
766
|
-
entities = this
|
|
767
|
-
this
|
|
746
|
+
entities = this.#pendingCascadeDeletes;
|
|
747
|
+
this.#pendingCascadeDeletes = [];
|
|
768
748
|
}
|
|
769
749
|
}
|
|
770
750
|
}
|
|
771
751
|
exports.EntityManager = EntityManager;
|
|
752
|
+
function getEmInternalApi(em) {
|
|
753
|
+
return em["__api"];
|
|
754
|
+
}
|
|
755
|
+
exports.getEmInternalApi = getEmInternalApi;
|
|
772
756
|
exports.entityLimit = 10000;
|
|
773
757
|
function setEntityLimit(limit) {
|
|
774
758
|
exports.entityLimit = limit;
|
|
@@ -875,11 +859,11 @@ async function validateSimpleRules(todos) {
|
|
|
875
859
|
}
|
|
876
860
|
}
|
|
877
861
|
function beforeTransaction(em, knex) {
|
|
878
|
-
return Promise.all(em
|
|
862
|
+
return Promise.all(getEmInternalApi(em).hooks.beforeTransaction.map((fn) => fn(em, knex)));
|
|
879
863
|
}
|
|
880
864
|
exports.beforeTransaction = beforeTransaction;
|
|
881
865
|
function afterTransaction(em, knex) {
|
|
882
|
-
return Promise.all(em
|
|
866
|
+
return Promise.all(getEmInternalApi(em).hooks.afterTransaction.map((fn) => fn(em, knex)));
|
|
883
867
|
}
|
|
884
868
|
exports.afterTransaction = afterTransaction;
|
|
885
869
|
async function runHook(ctx, hook, todos, keys) {
|