joist-core 2.2.0 → 2.3.0-next.2
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/Aliases.d.ts.map +1 -1
- package/build/Aliases.js.map +1 -1
- package/build/BaseEntity.d.ts +2 -0
- package/build/BaseEntity.d.ts.map +1 -1
- package/build/BaseEntity.js +1 -1
- package/build/BaseEntity.js.map +1 -1
- package/build/Entity.d.ts +1 -0
- package/build/Entity.d.ts.map +1 -1
- package/build/EntityFilter.d.ts +29 -10
- package/build/EntityFilter.d.ts.map +1 -1
- package/build/EntityFilter.js +18 -0
- package/build/EntityFilter.js.map +1 -1
- package/build/EntityGraphQLFilter.d.ts +3 -0
- package/build/EntityGraphQLFilter.d.ts.map +1 -1
- package/build/EntityGraphQLFilter.js.map +1 -1
- package/build/EntityManager.d.ts +36 -50
- package/build/EntityManager.d.ts.map +1 -1
- package/build/EntityManager.js +248 -124
- package/build/EntityManager.js.map +1 -1
- package/build/EntityMetadata.d.ts +48 -2
- package/build/EntityMetadata.d.ts.map +1 -1
- package/build/EntityMetadata.js +17 -0
- package/build/EntityMetadata.js.map +1 -1
- package/build/IndexManager.d.ts +5 -5
- package/build/IndexManager.d.ts.map +1 -1
- package/build/IndexManager.js +48 -32
- package/build/IndexManager.js.map +1 -1
- package/build/InstanceData.d.ts +16 -2
- package/build/InstanceData.d.ts.map +1 -1
- package/build/InstanceData.js +37 -4
- package/build/InstanceData.js.map +1 -1
- package/build/IsLoadedCache.d.ts.map +1 -1
- package/build/IsLoadedCache.js +31 -25
- package/build/IsLoadedCache.js.map +1 -1
- package/build/JoinRows.d.ts +54 -12
- package/build/JoinRows.d.ts.map +1 -1
- package/build/JoinRows.js +114 -44
- package/build/JoinRows.js.map +1 -1
- package/build/QueryParser.collectionJoins.js +8 -2
- package/build/QueryParser.collectionJoins.js.map +1 -1
- package/build/QueryParser.d.ts +15 -3
- package/build/QueryParser.d.ts.map +1 -1
- package/build/QueryParser.js +293 -190
- package/build/QueryParser.js.map +1 -1
- package/build/QueryParser.pruning.d.ts.map +1 -1
- package/build/QueryParser.pruning.js +8 -1
- package/build/QueryParser.pruning.js.map +1 -1
- package/build/QueryParser.test.d.ts +2 -0
- package/build/QueryParser.test.d.ts.map +1 -0
- package/build/QueryParser.test.js +27 -0
- package/build/QueryParser.test.js.map +1 -0
- package/build/ReactionsManager.d.ts +2 -1
- package/build/ReactionsManager.d.ts.map +1 -1
- package/build/ReactionsManager.js +53 -49
- package/build/ReactionsManager.js.map +1 -1
- package/build/Todo.d.ts +4 -0
- package/build/Todo.d.ts.map +1 -1
- package/build/Todo.js.map +1 -1
- package/build/batchloaders/BatchLoader.d.ts.map +1 -1
- package/build/batchloaders/BatchLoader.js +6 -1
- package/build/batchloaders/BatchLoader.js.map +1 -1
- package/build/batchloaders/enumCollectionBatchLoader.d.ts +7 -0
- package/build/batchloaders/enumCollectionBatchLoader.d.ts.map +1 -0
- package/build/batchloaders/enumCollectionBatchLoader.js +54 -0
- package/build/batchloaders/enumCollectionBatchLoader.js.map +1 -0
- package/build/batchloaders/manyToManyBatchLoader.d.ts.map +1 -1
- package/build/batchloaders/manyToManyBatchLoader.js +10 -2
- package/build/batchloaders/manyToManyBatchLoader.js.map +1 -1
- package/build/batchloaders/populateBatchLoader.d.ts.map +1 -1
- package/build/batchloaders/populateBatchLoader.js +26 -8
- package/build/batchloaders/populateBatchLoader.js.map +1 -1
- package/build/batchloaders/recursiveChildrenBatchLoader.d.ts.map +1 -1
- package/build/batchloaders/recursiveChildrenBatchLoader.js +2 -0
- package/build/batchloaders/recursiveChildrenBatchLoader.js.map +1 -1
- package/build/batchloaders/recursiveM2mBatchLoader.d.ts.map +1 -1
- package/build/batchloaders/recursiveM2mBatchLoader.js +1 -3
- package/build/batchloaders/recursiveM2mBatchLoader.js.map +1 -1
- package/build/batchloaders/recursiveParentsBatchLoader.d.ts.map +1 -1
- package/build/batchloaders/recursiveParentsBatchLoader.js +2 -0
- package/build/batchloaders/recursiveParentsBatchLoader.js.map +1 -1
- package/build/changes.d.ts +13 -0
- package/build/changes.d.ts.map +1 -1
- package/build/changes.js +49 -0
- package/build/changes.js.map +1 -1
- package/build/configure.d.ts +5 -3
- package/build/configure.d.ts.map +1 -1
- package/build/configure.js +70 -0
- package/build/configure.js.map +1 -1
- package/build/dataloaders/fastWhereFilterHash.d.ts +15 -0
- package/build/dataloaders/fastWhereFilterHash.d.ts.map +1 -0
- package/build/dataloaders/fastWhereFilterHash.js +164 -0
- package/build/dataloaders/fastWhereFilterHash.js.map +1 -0
- package/build/dataloaders/fastWhereFilterHash.test.d.ts +2 -0
- package/build/dataloaders/fastWhereFilterHash.test.d.ts.map +1 -0
- package/build/dataloaders/fastWhereFilterHash.test.js +59 -0
- package/build/dataloaders/fastWhereFilterHash.test.js.map +1 -0
- package/build/dataloaders/findCountDataLoader.d.ts +13 -4
- package/build/dataloaders/findCountDataLoader.d.ts.map +1 -1
- package/build/dataloaders/findCountDataLoader.js +58 -15
- package/build/dataloaders/findCountDataLoader.js.map +1 -1
- package/build/dataloaders/findDataLoader.d.ts +49 -10
- package/build/dataloaders/findDataLoader.d.ts.map +1 -1
- package/build/dataloaders/findDataLoader.js +217 -108
- package/build/dataloaders/findDataLoader.js.map +1 -1
- package/build/dataloaders/findIdsDataLoader.d.ts +1 -2
- package/build/dataloaders/findIdsDataLoader.d.ts.map +1 -1
- package/build/dataloaders/findIdsDataLoader.js +18 -17
- package/build/dataloaders/findIdsDataLoader.js.map +1 -1
- package/build/dataloaders/findOrCreateDataLoader.d.ts.map +1 -1
- package/build/dataloaders/findOrCreateDataLoader.js +3 -3
- package/build/dataloaders/findOrCreateDataLoader.js.map +1 -1
- package/build/dataloaders/findPaginatedDataLoader.d.ts +7 -0
- package/build/dataloaders/findPaginatedDataLoader.d.ts.map +1 -0
- package/build/dataloaders/findPaginatedDataLoader.js +84 -0
- package/build/dataloaders/findPaginatedDataLoader.js.map +1 -0
- package/build/dataloaders/manyToManyFindDataLoader.js +7 -1
- package/build/dataloaders/manyToManyFindDataLoader.js.map +1 -1
- package/build/drivers/EntityWriter.js +13 -7
- package/build/drivers/EntityWriter.js.map +1 -1
- package/build/drivers/buildRawQuery.d.ts +6 -4
- package/build/drivers/buildRawQuery.d.ts.map +1 -1
- package/build/drivers/buildRawQuery.js +8 -4
- package/build/drivers/buildRawQuery.js.map +1 -1
- package/build/fields.d.ts +2 -0
- package/build/fields.d.ts.map +1 -1
- package/build/fields.js +18 -6
- package/build/fields.js.map +1 -1
- package/build/index.d.ts +3 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +4 -1
- package/build/index.js.map +1 -1
- package/build/keys.d.ts.map +1 -1
- package/build/keys.js +8 -6
- package/build/keys.js.map +1 -1
- package/build/loadHints.d.ts +13 -4
- package/build/loadHints.d.ts.map +1 -1
- package/build/loadHints.js +63 -9
- package/build/loadHints.js.map +1 -1
- package/build/loadLens.d.ts +11 -0
- package/build/loadLens.d.ts.map +1 -1
- package/build/loadLens.js +43 -10
- package/build/loadLens.js.map +1 -1
- package/build/newEntity.d.ts.map +1 -1
- package/build/newEntity.js +16 -14
- package/build/newEntity.js.map +1 -1
- package/build/newTestInstance.d.ts.map +1 -1
- package/build/newTestInstance.js +3 -0
- package/build/newTestInstance.js.map +1 -1
- package/build/normalizeHints.d.ts +7 -0
- package/build/normalizeHints.d.ts.map +1 -1
- package/build/normalizeHints.js +40 -2
- package/build/normalizeHints.js.map +1 -1
- package/build/preloading/JsonAggregatePreloader.d.ts.map +1 -1
- package/build/preloading/JsonAggregatePreloader.js +91 -9
- package/build/preloading/JsonAggregatePreloader.js.map +1 -1
- package/build/preloading/canPreload.d.ts +2 -2
- package/build/preloading/canPreload.d.ts.map +1 -1
- package/build/preloading/canPreload.js +3 -0
- package/build/preloading/canPreload.js.map +1 -1
- package/build/preloading/partitionHint.d.ts.map +1 -1
- package/build/preloading/partitionHint.js +10 -4
- package/build/preloading/partitionHint.js.map +1 -1
- package/build/reactiveHints.d.ts +2 -2
- package/build/reactiveHints.d.ts.map +1 -1
- package/build/reactiveHints.js +9 -0
- package/build/reactiveHints.js.map +1 -1
- package/build/relations/EnumCollection.d.ts +81 -0
- package/build/relations/EnumCollection.d.ts.map +1 -0
- package/build/relations/EnumCollection.js +211 -0
- package/build/relations/EnumCollection.js.map +1 -0
- package/build/relations/ManyToManyCollection.d.ts +1 -0
- package/build/relations/ManyToManyCollection.d.ts.map +1 -1
- package/build/relations/ManyToManyCollection.js +5 -2
- package/build/relations/ManyToManyCollection.js.map +1 -1
- package/build/relations/ManyToManyLargeCollection.d.ts +3 -2
- package/build/relations/ManyToManyLargeCollection.d.ts.map +1 -1
- package/build/relations/ManyToManyLargeCollection.js +7 -4
- package/build/relations/ManyToManyLargeCollection.js.map +1 -1
- package/build/relations/OneToManyCollection.d.ts.map +1 -1
- package/build/relations/OneToManyCollection.js +2 -2
- package/build/relations/OneToManyCollection.js.map +1 -1
- package/build/relations/OneToManyLargeCollection.d.ts.map +1 -1
- package/build/relations/OneToManyLargeCollection.js +2 -1
- package/build/relations/OneToManyLargeCollection.js.map +1 -1
- package/build/relations/ReactiveManyToMany.d.ts +1 -0
- package/build/relations/ReactiveManyToMany.d.ts.map +1 -1
- package/build/relations/ReactiveManyToMany.js +4 -1
- package/build/relations/ReactiveManyToMany.js.map +1 -1
- package/build/relations/ReactiveManyToManyOtherSide.d.ts +1 -0
- package/build/relations/ReactiveManyToManyOtherSide.d.ts.map +1 -1
- package/build/relations/ReactiveManyToManyOtherSide.js +4 -1
- package/build/relations/ReactiveManyToManyOtherSide.js.map +1 -1
- package/build/relations/RecursiveCollection.d.ts +2 -6
- package/build/relations/RecursiveCollection.d.ts.map +1 -1
- package/build/relations/RecursiveCollection.js +9 -17
- package/build/relations/RecursiveCollection.js.map +1 -1
- package/build/relations/RecursiveCycleError.d.ts +13 -0
- package/build/relations/RecursiveCycleError.d.ts.map +1 -0
- package/build/relations/RecursiveCycleError.js +15 -0
- package/build/relations/RecursiveCycleError.js.map +1 -0
- package/build/relations/hasOneThrough.d.ts.map +1 -1
- package/build/relations/hasOneThrough.js +6 -4
- package/build/relations/hasOneThrough.js.map +1 -1
- package/build/relations/hasProperty.d.ts +2 -1
- package/build/relations/hasProperty.d.ts.map +1 -1
- package/build/relations/hasProperty.js +15 -5
- package/build/relations/hasProperty.js.map +1 -1
- package/build/relations/index.d.ts +1 -0
- package/build/relations/index.d.ts.map +1 -1
- package/build/relations/index.js +5 -2
- package/build/relations/index.js.map +1 -1
- package/build/rules.js +1 -1
- package/build/rules.js.map +1 -1
- package/build/scopes.d.ts +185 -0
- package/build/scopes.d.ts.map +1 -0
- package/build/scopes.js +302 -0
- package/build/scopes.js.map +1 -0
- package/build/temporal.d.ts +32 -2
- package/build/temporal.d.ts.map +1 -1
- package/build/temporal.js +18 -0
- package/build/temporal.js.map +1 -1
- package/build/upsert.d.ts.map +1 -1
- package/build/upsert.js +9 -2
- package/build/upsert.js.map +1 -1
- package/build/utils.d.ts +2 -0
- package/build/utils.d.ts.map +1 -1
- package/build/utils.js +12 -0
- package/build/utils.js.map +1 -1
- package/package.json +8 -10
- package/build/caches.d.ts +0 -6
- package/build/caches.d.ts.map +0 -1
- package/build/caches.js +0 -42
- package/build/caches.js.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Entity } from "../Entity";
|
|
2
|
+
interface RecursiveCycleRelation {
|
|
3
|
+
entity: Entity;
|
|
4
|
+
fieldName: string;
|
|
5
|
+
}
|
|
6
|
+
/** Indicates a recursive relation/property cycle that cannot be safely evaluated. */
|
|
7
|
+
export declare class RecursiveCycleError extends Error {
|
|
8
|
+
readonly fieldName: string;
|
|
9
|
+
entities: Entity[];
|
|
10
|
+
constructor(relation: RecursiveCycleRelation, entities: Entity[]);
|
|
11
|
+
}
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=RecursiveCycleError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecursiveCycleError.d.ts","sourceRoot":"","sources":["../../src/relations/RecursiveCycleError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,UAAU,sBAAsB;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qFAAqF;AACrF,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAM;gBAEZ,QAAQ,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,EAAE;CAKjE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RecursiveCycleError = void 0;
|
|
4
|
+
/** Indicates a recursive relation/property cycle that cannot be safely evaluated. */
|
|
5
|
+
class RecursiveCycleError extends Error {
|
|
6
|
+
fieldName;
|
|
7
|
+
entities = [];
|
|
8
|
+
constructor(relation, entities) {
|
|
9
|
+
super(`Cycle detected in ${relation.entity.toString()}.${relation.fieldName}`);
|
|
10
|
+
this.fieldName = relation.fieldName;
|
|
11
|
+
this.entities = entities;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.RecursiveCycleError = RecursiveCycleError;
|
|
15
|
+
//# sourceMappingURL=RecursiveCycleError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecursiveCycleError.js","sourceRoot":"","sources":["../../src/relations/RecursiveCycleError.ts"],"names":[],"mappings":";;;AAOA,qFAAqF;AACrF,MAAa,mBAAoB,SAAQ,KAAK;IACnC,SAAS,CAAS;IAC3B,QAAQ,GAAa,EAAE,CAAC;IAExB,YAAY,QAAgC,EAAE,QAAkB;QAC9D,KAAK,CAAC,qBAAqB,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AATD,kDASC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hasOneThrough.d.ts","sourceRoot":"","sources":["../../src/relations/hasOneThrough.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EAIN,IAAI,
|
|
1
|
+
{"version":3,"file":"hasOneThrough.d.ts","sourceRoot":"","sources":["../../src/relations/hasOneThrough.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EAIN,IAAI,EAIJ,SAAS,EACV,MAAM,UAAU,CAAC;AAGlB;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,KAAK,GAAG,SAAS,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAC5G,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAC/B,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAYpB"}
|
|
@@ -11,13 +11,15 @@ const newEntity_1 = require("../newEntity");
|
|
|
11
11
|
* Because this is based on `CustomReference`, it will work in populates, i.e. `em.populate(review, "author")`.
|
|
12
12
|
*/
|
|
13
13
|
function hasOneThrough(lens) {
|
|
14
|
+
const paths = (0, index_1.lensToPath)(lens);
|
|
15
|
+
const loadHint = (0, index_1.lensPathToLoadHint)(paths);
|
|
14
16
|
return (0, newEntity_1.lazyField)((entity) => {
|
|
15
17
|
const meta = (0, index_1.getMetadata)(entity);
|
|
16
18
|
return new index_1.CustomReference(entity, {
|
|
17
|
-
load: (entity, opts) => (0, index_1.
|
|
18
|
-
get: () => (0, index_1.
|
|
19
|
-
isLoaded: () => (0, index_1.
|
|
20
|
-
loadHint
|
|
19
|
+
load: (entity, opts) => (0, index_1.loadLensPath)(entity, paths, opts),
|
|
20
|
+
get: () => (0, index_1.getLensPath)(meta, entity, paths),
|
|
21
|
+
isLoaded: () => (0, index_1.isLensLoadedPath)(entity, paths),
|
|
22
|
+
loadHint,
|
|
21
23
|
});
|
|
22
24
|
});
|
|
23
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hasOneThrough.js","sourceRoot":"","sources":["../../src/relations/hasOneThrough.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"hasOneThrough.js","sourceRoot":"","sources":["../../src/relations/hasOneThrough.ts"],"names":[],"mappings":";;AAqBA,sCAcC;AAnCD,oCAWkB;AAClB,4CAAyC;AAEzC;;;;;;GAMG;AACH,SAAgB,aAAa,CAC3B,IAAgC;IAEhC,MAAM,KAAK,GAAG,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAA,0BAAkB,EAAI,KAAK,CAAC,CAAC;IAC9C,OAAO,IAAA,qBAAS,EAAC,CAAC,MAAS,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,IAAA,mBAAW,EAAC,MAAM,CAAC,CAAC;QACjC,OAAO,IAAI,uBAAe,CAAU,MAAM,EAAE;YAC1C,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAA,oBAAY,EAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC;YACzD,GAAG,EAAE,GAAG,EAAE,CAAC,IAAA,mBAAW,EAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC;YAC3C,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAA,wBAAgB,EAAC,MAAM,EAAE,KAAK,CAAC;YAC/C,QAAQ;SACT,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -30,9 +30,10 @@ export declare function hasProperty<T extends Entity, const H extends LoadHint<T
|
|
|
30
30
|
export declare function hasReactiveProperty<T extends Entity, const H extends ReactiveHint<T>, V>(reactiveHint: H, fn: (entity: Reacted<T, H>) => MaybeReactedPropertyEntity<V>): Property<T, V>;
|
|
31
31
|
export declare class PropertyImpl<T extends Entity, H extends LoadHint<T>, V> implements Property<T, V> {
|
|
32
32
|
#private;
|
|
33
|
+
private fieldName;
|
|
33
34
|
private fn;
|
|
34
35
|
private opts;
|
|
35
|
-
constructor(entity: T, hint: H | ReactiveHint<T>, fn: (entity: Loaded<T, H>) => V, opts?: {
|
|
36
|
+
constructor(entity: T, fieldName: string, hint: H | ReactiveHint<T>, fn: (entity: Loaded<T, H>) => V, opts?: {
|
|
36
37
|
isReactive?: boolean;
|
|
37
38
|
});
|
|
38
39
|
load(): Promise<V>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hasProperty.d.ts","sourceRoot":"","sources":["../../src/relations/hasProperty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAY,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,0BAA0B,EAAE,OAAO,EAAE,YAAY,EAAqB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"hasProperty.d.ts","sourceRoot":"","sources":["../../src/relations/hasProperty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAY,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,0BAA0B,EAAE,OAAO,EAAE,YAAY,EAAqB,MAAM,kBAAkB,CAAC;AAIxG,eAAO,MAAM,SAAS,eAAW,CAAC;AAElC,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC;IAE3C,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CACpB;AAED,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC;IACjD,GAAG,EAAE,CAAC,CAAC;CACR;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAC1E,QAAQ,EAAE,CAAC,EACX,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAC9B,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAIhB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EACtF,YAAY,EAAE,CAAC,EACf,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,0BAA0B,CAAC,CAAC,CAAC,GAC3D,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAIhB;AAED,qBAAa,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAE,YAAW,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;;IAW3F,OAAO,CAAC,SAAS;IAEjB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,IAAI;gBAJZ,MAAM,EAAE,CAAC,EACD,SAAS,EAAE,MAAM,EACzB,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EACjB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAC/B,IAAI,GAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAO;IAQ7C,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC;IAWlB,IAAI,QAAQ,IAAI,CAAC,CAMhB;IAED,IAAI,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAE9C;IAED,IAAI,GAAG,IAAI,CAAC,CAEX;IAED,IAAI,QAAQ,YAYX;IAED,CAAC,SAAS,CAAC,EAAuB,CAAC,CAAC;CACrC;AAED,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,aAAa,EAAE,GAAG,GAAG,aAAa,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAElF;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,GAAG,GACjB,aAAa,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAEhE"}
|
|
@@ -10,6 +10,7 @@ const loadHints_1 = require("../loadHints");
|
|
|
10
10
|
const newEntity_1 = require("../newEntity");
|
|
11
11
|
const reactiveHints_1 = require("../reactiveHints");
|
|
12
12
|
const utils_1 = require("../utils");
|
|
13
|
+
const RecursiveCycleError_1 = require("./RecursiveCycleError");
|
|
13
14
|
exports.PropertyT = Symbol();
|
|
14
15
|
/**
|
|
15
16
|
* Creates a calculated derived value from a load hint + lambda.
|
|
@@ -20,8 +21,8 @@ exports.PropertyT = Symbol();
|
|
|
20
21
|
* with `someProperty.get`.
|
|
21
22
|
*/
|
|
22
23
|
function hasProperty(loadHint, fn) {
|
|
23
|
-
return (0, newEntity_1.lazyField)((entity) => {
|
|
24
|
-
return new PropertyImpl(entity, loadHint, fn);
|
|
24
|
+
return (0, newEntity_1.lazyField)((entity, fieldName) => {
|
|
25
|
+
return new PropertyImpl(entity, fieldName, loadHint, fn);
|
|
25
26
|
});
|
|
26
27
|
}
|
|
27
28
|
/**
|
|
@@ -33,20 +34,23 @@ function hasProperty(loadHint, fn) {
|
|
|
33
34
|
* with `someProperty.get`.
|
|
34
35
|
*/
|
|
35
36
|
function hasReactiveProperty(reactiveHint, fn) {
|
|
36
|
-
return (0, newEntity_1.lazyField)((entity) => {
|
|
37
|
-
return new PropertyImpl(entity, reactiveHint, fn, { isReactive: true });
|
|
37
|
+
return (0, newEntity_1.lazyField)((entity, fieldName) => {
|
|
38
|
+
return new PropertyImpl(entity, fieldName, reactiveHint, fn, { isReactive: true });
|
|
38
39
|
});
|
|
39
40
|
}
|
|
40
41
|
class PropertyImpl {
|
|
42
|
+
fieldName;
|
|
41
43
|
fn;
|
|
42
44
|
opts;
|
|
43
45
|
// We'll probe for loaded if undefined
|
|
44
46
|
#loaded = undefined;
|
|
47
|
+
#isCheckingLoaded = false;
|
|
45
48
|
#loadPromise;
|
|
46
49
|
#entity;
|
|
47
50
|
#hint;
|
|
48
51
|
#reactiveHint;
|
|
49
|
-
constructor(entity, hint, fn, opts = {}) {
|
|
52
|
+
constructor(entity, fieldName, hint, fn, opts = {}) {
|
|
53
|
+
this.fieldName = fieldName;
|
|
50
54
|
this.fn = fn;
|
|
51
55
|
this.opts = opts;
|
|
52
56
|
const { isReactive = false } = opts;
|
|
@@ -80,7 +84,13 @@ class PropertyImpl {
|
|
|
80
84
|
get isLoaded() {
|
|
81
85
|
// Probe the first time, which is useful for factories that are DeepNew
|
|
82
86
|
if (this.#loaded === undefined) {
|
|
87
|
+
if (this.#isCheckingLoaded) {
|
|
88
|
+
this.#isCheckingLoaded = false;
|
|
89
|
+
throw new RecursiveCycleError_1.RecursiveCycleError({ entity: this.#entity, fieldName: this.fieldName }, [this.#entity]);
|
|
90
|
+
}
|
|
91
|
+
this.#isCheckingLoaded = true;
|
|
83
92
|
this.#loaded = (0, loadHints_1.isLoaded)(this.#entity, this.loadHint);
|
|
93
|
+
this.#isCheckingLoaded = false;
|
|
84
94
|
}
|
|
85
95
|
return !!this.#loaded;
|
|
86
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hasProperty.js","sourceRoot":"","sources":["../../src/relations/hasProperty.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"hasProperty.js","sourceRoot":"","sources":["../../src/relations/hasProperty.ts"],"names":[],"mappings":";;;AA6BA,kCAOC;AAUD,kDAOC;AAqED,gCAEC;AAGD,4CAIC;AAlID,sDAAgD;AAChD,4CAA0D;AAC1D,4CAAyC;AACzC,oDAAwG;AACxG,oCAAsC;AACtC,+DAA4D;AAE/C,QAAA,SAAS,GAAG,MAAM,EAAE,CAAC;AAalC;;;;;;;GAOG;AACH,SAAgB,WAAW,CACzB,QAAW,EACX,EAA+B;IAE/B,OAAO,IAAA,qBAAS,EAAC,CAAC,MAAS,EAAE,SAAS,EAAE,EAAE;QACxC,OAAO,IAAI,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CACjC,YAAe,EACf,EAA4D;IAE5D,OAAO,IAAA,qBAAS,EAAC,CAAC,MAAS,EAAE,SAAS,EAAE,EAAE;QACxC,OAAO,IAAI,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,YAAmB,EAAE,EAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACnG,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAa,YAAY;IAWb;IAEA;IACA;IAbV,sCAAsC;IACtC,OAAO,GAAwB,SAAS,CAAC;IACzC,iBAAiB,GAAG,KAAK,CAAC;IAC1B,YAAY,CAAM;IAET,OAAO,CAAI;IACpB,KAAK,CAAgB;IACrB,aAAa,CAA8B;IAC3C,YACE,MAAS,EACD,SAAiB,EACzB,IAAyB,EACjB,EAA+B,EAC/B,OAAiC,EAAE;QAHnC,cAAS,GAAT,SAAS,CAAQ;QAEjB,OAAE,GAAF,EAAE,CAA6B;QAC/B,SAAI,GAAJ,IAAI,CAA+B;QAE3C,MAAM,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,IAAU,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,CAAC,CAAE,IAAwB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,CAAC;IAED,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC7F,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC,CAAC;QACN,CAAC;QACD,OAAO,IAAA,kBAAU,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,QAAQ;QACV,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,0DAA0D;YAC1D,IAAI,CAAC,KAAK,GAAG,IAAA,iCAAiB,EAAC,IAAA,4BAAW,EAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,aAAoB,CAAM,CAAC;QAC5F,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAuB,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,QAAQ;QACV,uEAAuE;QACvE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAC/B,MAAM,IAAI,yCAAmB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACrG,CAAC;YACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,OAAO,GAAG,IAAA,oBAAQ,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QACjC,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,CAAC,iBAAS,CAAC,GAAG,SAAqB,CAAC;CACrC;AAhED,oCAgEC;AAED,2EAA2E;AAC3E,SAAgB,UAAU,CAAC,aAAkB;IAC3C,OAAO,aAAa,YAAY,YAAY,CAAC;AAC/C,CAAC;AAED,kFAAkF;AAClF,SAAgB,gBAAgB,CAC9B,aAAkB;IAElB,OAAO,UAAU,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC;AAC7D,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { Collection, LoadedCollection, isCollection, isLoadedCollection } from "./Collection";
|
|
2
2
|
export { CustomCollection, hasCustomCollection } from "./CustomCollection";
|
|
3
|
+
export { EnumCollection, EnumCollectionImpl, LoadedEnumCollection, hasEnumCollection } from "./EnumCollection";
|
|
3
4
|
export { CustomReference, hasCustomReference } from "./CustomReference";
|
|
4
5
|
export { AsyncMethod, LoadedMethod, hasAsyncMethod } from "./hasAsyncMethod";
|
|
5
6
|
export { LoadedProperty, Property, PropertyImpl, hasProperty, hasReactiveProperty, isLoadedProperty, isProperty, } from "./hasProperty";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/relations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EACL,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAChH,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAC/B,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACxH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/relations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC/G,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EACL,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAChH,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAC/B,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACxH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
package/build/relations/index.js
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.isRelation = exports.isReference = exports.isLoadedReference = exports.hasRecursiveParents = exports.hasRecursiveM2m = exports.hasRecursiveChildren = exports.RecursiveCycleError = exports.isReadOnlyCollection = exports.isLoadedReadOnlyCollection = exports.isReactiveReference = exports.hasReactiveReference = exports.ReactiveReferenceImpl = void 0;
|
|
3
|
+
exports.isReactiveManyToManyOtherSide = exports.hasReactiveManyToManyOtherSide = exports.ReactiveManyToManyOtherSideImpl = exports.isReactiveManyToMany = exports.hasReactiveManyToMany = exports.ReactiveManyToManyImpl = exports.isReactiveGetter = exports.hasReactiveGetter = exports.isReactiveField = exports.hasReactiveField = exports.isPolymorphicReference = exports.hasOnePolymorphic = exports.PolymorphicReferenceImpl = exports.isOneToOneReference = exports.isLoadedOneToOneReference = exports.hasOneToOne = exports.OneToOneReferenceImpl = exports.hasLargeMany = exports.OneToManyLargeCollection = exports.hasMany = exports.OneToManyCollection = exports.isManyToOneReference = exports.hasOne = exports.ManyToOneReferenceImpl = exports.hasLargeManyToMany = exports.ManyToManyLargeCollection = exports.hasManyToMany = exports.ManyToManyCollection = exports.hasOneThrough = exports.hasOneDerived = exports.hasManyThrough = exports.hasManyDerived = exports.isLoadedAsyncProperty = exports.isAsyncProperty = exports.hasAsyncProperty = exports.AsyncPropertyImpl = exports.isProperty = exports.isLoadedProperty = exports.hasReactiveProperty = exports.hasProperty = exports.PropertyImpl = exports.hasAsyncMethod = exports.hasCustomReference = exports.CustomReference = exports.hasEnumCollection = exports.EnumCollectionImpl = exports.hasCustomCollection = exports.CustomCollection = exports.isLoadedCollection = exports.isCollection = void 0;
|
|
4
|
+
exports.isRelation = exports.isReference = exports.isLoadedReference = exports.hasRecursiveParents = exports.hasRecursiveM2m = exports.hasRecursiveChildren = exports.RecursiveCycleError = exports.isReadOnlyCollection = exports.isLoadedReadOnlyCollection = exports.isReactiveReference = exports.hasReactiveReference = exports.ReactiveReferenceImpl = exports.isAsyncReactiveField = exports.hasAsyncReactiveField = void 0;
|
|
5
5
|
var Collection_1 = require("./Collection");
|
|
6
6
|
Object.defineProperty(exports, "isCollection", { enumerable: true, get: function () { return Collection_1.isCollection; } });
|
|
7
7
|
Object.defineProperty(exports, "isLoadedCollection", { enumerable: true, get: function () { return Collection_1.isLoadedCollection; } });
|
|
8
8
|
var CustomCollection_1 = require("./CustomCollection");
|
|
9
9
|
Object.defineProperty(exports, "CustomCollection", { enumerable: true, get: function () { return CustomCollection_1.CustomCollection; } });
|
|
10
10
|
Object.defineProperty(exports, "hasCustomCollection", { enumerable: true, get: function () { return CustomCollection_1.hasCustomCollection; } });
|
|
11
|
+
var EnumCollection_1 = require("./EnumCollection");
|
|
12
|
+
Object.defineProperty(exports, "EnumCollectionImpl", { enumerable: true, get: function () { return EnumCollection_1.EnumCollectionImpl; } });
|
|
13
|
+
Object.defineProperty(exports, "hasEnumCollection", { enumerable: true, get: function () { return EnumCollection_1.hasEnumCollection; } });
|
|
11
14
|
var CustomReference_1 = require("./CustomReference");
|
|
12
15
|
Object.defineProperty(exports, "CustomReference", { enumerable: true, get: function () { return CustomReference_1.CustomReference; } });
|
|
13
16
|
Object.defineProperty(exports, "hasCustomReference", { enumerable: true, get: function () { return CustomReference_1.hasCustomReference; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/relations/index.ts"],"names":[],"mappings":";;;;AAAA,2CAA8F;AAAvD,0GAAA,YAAY,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AACvE,uDAA2E;AAAlE,oHAAA,gBAAgB,OAAA;AAAE,uHAAA,mBAAmB,OAAA;AAC9C,qDAAwE;AAA/D,kHAAA,eAAe,OAAA;AAAE,qHAAA,kBAAkB,OAAA;AAC5C,mDAA6E;AAAzC,gHAAA,cAAc,OAAA;AAClD,6CAQuB;AALrB,2GAAA,YAAY,OAAA;AACZ,0GAAA,WAAW,OAAA;AACX,kHAAA,mBAAmB,OAAA;AACnB,+GAAA,gBAAgB,OAAA;AAChB,yGAAA,UAAU,OAAA;AAEZ,iDAMyB;AAJvB,kHAAA,iBAAiB,OAAA;AACjB,iHAAA,gBAAgB,OAAA;AAChB,gHAAA,eAAe,OAAA;AACf,sHAAA,qBAAqB,OAAA;AAEvB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AAEtB,+DAA6E;AAApE,4HAAA,oBAAoB,OAAA;AAAE,qHAAA,aAAa,OAAA;AAC5C,yEAA4F;AAAnF,sIAAA,yBAAyB,OAAA;AAAE,+HAAA,kBAAkB,OAAA;AACtD,2DAAgH;AAAnF,4HAAA,sBAAsB,OAAA;AAAE,4GAAA,MAAM,OAAA;AAAE,0HAAA,oBAAoB,OAAA;AACjF,6DAAqE;AAA5D,0HAAA,mBAAmB,OAAA;AAAE,8GAAA,OAAO,OAAA;AACrC,uEAAoF;AAA3E,oIAAA,wBAAwB,OAAA;AAAE,wHAAA,YAAY,OAAA;AAC/C,yDAM6B;AAJ3B,0HAAA,qBAAqB,OAAA;AACrB,gHAAA,WAAW,OAAA;AACX,8HAAA,yBAAyB,OAAA;AACzB,wHAAA,mBAAmB,OAAA;AAErB,+DAKgC;AAH9B,gIAAA,wBAAwB,OAAA;AACxB,yHAAA,iBAAiB,OAAA;AACjB,8HAAA,sBAAsB,OAAA;AAExB,iDAAmF;AAA3D,iHAAA,gBAAgB,OAAA;AAAE,gHAAA,eAAe,OAAA;AACzD,mDAAuF;AAA9D,mHAAA,iBAAiB,OAAA;AAAE,kHAAA,gBAAgB,OAAA;AAC5D,2DAK8B;AAH5B,4HAAA,sBAAsB,OAAA;AACtB,2HAAA,qBAAqB,OAAA;AACrB,0HAAA,oBAAoB,OAAA;AAEtB,6EAKuC;AAHrC,8IAAA,+BAA+B,OAAA;AAC/B,6IAAA,8BAA8B,OAAA;AAC9B,4IAAA,6BAA6B,OAAA;AAE/B,2DAAmF;AAA1E,2HAAA,qBAAqB,OAAA;AAAE,0HAAA,oBAAoB,OAAA;AACpD,yDAK6B;AAH3B,0HAAA,qBAAqB,OAAA;AACrB,yHAAA,oBAAoB,OAAA;AACpB,wHAAA,mBAAmB,OAAA;AAErB,2DAK8B;AAF5B,gIAAA,0BAA0B,OAAA;AAC1B,0HAAA,oBAAoB,OAAA;AAEtB,6DAAwH;AAA/G,0HAAA,mBAAmB,OAAA;AAAE,2HAAA,oBAAoB,OAAA;AAAE,sHAAA,eAAe,OAAA;AAAE,0HAAA,mBAAmB,OAAA;AACxF,yCAAyF;AAApD,8GAAA,iBAAiB,OAAA;AAAE,wGAAA,WAAW,OAAA;AACnE,uCAAkD;AAA/B,sGAAA,UAAU,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/relations/index.ts"],"names":[],"mappings":";;;;AAAA,2CAA8F;AAAvD,0GAAA,YAAY,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AACvE,uDAA2E;AAAlE,oHAAA,gBAAgB,OAAA;AAAE,uHAAA,mBAAmB,OAAA;AAC9C,mDAA+G;AAAtF,oHAAA,kBAAkB,OAAA;AAAwB,mHAAA,iBAAiB,OAAA;AACpF,qDAAwE;AAA/D,kHAAA,eAAe,OAAA;AAAE,qHAAA,kBAAkB,OAAA;AAC5C,mDAA6E;AAAzC,gHAAA,cAAc,OAAA;AAClD,6CAQuB;AALrB,2GAAA,YAAY,OAAA;AACZ,0GAAA,WAAW,OAAA;AACX,kHAAA,mBAAmB,OAAA;AACnB,+GAAA,gBAAgB,OAAA;AAChB,yGAAA,UAAU,OAAA;AAEZ,iDAMyB;AAJvB,kHAAA,iBAAiB,OAAA;AACjB,iHAAA,gBAAgB,OAAA;AAChB,gHAAA,eAAe,OAAA;AACf,sHAAA,qBAAqB,OAAA;AAEvB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AAEtB,+DAA6E;AAApE,4HAAA,oBAAoB,OAAA;AAAE,qHAAA,aAAa,OAAA;AAC5C,yEAA4F;AAAnF,sIAAA,yBAAyB,OAAA;AAAE,+HAAA,kBAAkB,OAAA;AACtD,2DAAgH;AAAnF,4HAAA,sBAAsB,OAAA;AAAE,4GAAA,MAAM,OAAA;AAAE,0HAAA,oBAAoB,OAAA;AACjF,6DAAqE;AAA5D,0HAAA,mBAAmB,OAAA;AAAE,8GAAA,OAAO,OAAA;AACrC,uEAAoF;AAA3E,oIAAA,wBAAwB,OAAA;AAAE,wHAAA,YAAY,OAAA;AAC/C,yDAM6B;AAJ3B,0HAAA,qBAAqB,OAAA;AACrB,gHAAA,WAAW,OAAA;AACX,8HAAA,yBAAyB,OAAA;AACzB,wHAAA,mBAAmB,OAAA;AAErB,+DAKgC;AAH9B,gIAAA,wBAAwB,OAAA;AACxB,yHAAA,iBAAiB,OAAA;AACjB,8HAAA,sBAAsB,OAAA;AAExB,iDAAmF;AAA3D,iHAAA,gBAAgB,OAAA;AAAE,gHAAA,eAAe,OAAA;AACzD,mDAAuF;AAA9D,mHAAA,iBAAiB,OAAA;AAAE,kHAAA,gBAAgB,OAAA;AAC5D,2DAK8B;AAH5B,4HAAA,sBAAsB,OAAA;AACtB,2HAAA,qBAAqB,OAAA;AACrB,0HAAA,oBAAoB,OAAA;AAEtB,6EAKuC;AAHrC,8IAAA,+BAA+B,OAAA;AAC/B,6IAAA,8BAA8B,OAAA;AAC9B,4IAAA,6BAA6B,OAAA;AAE/B,2DAAmF;AAA1E,2HAAA,qBAAqB,OAAA;AAAE,0HAAA,oBAAoB,OAAA;AACpD,yDAK6B;AAH3B,0HAAA,qBAAqB,OAAA;AACrB,yHAAA,oBAAoB,OAAA;AACpB,wHAAA,mBAAmB,OAAA;AAErB,2DAK8B;AAF5B,gIAAA,0BAA0B,OAAA;AAC1B,0HAAA,oBAAoB,OAAA;AAEtB,6DAAwH;AAA/G,0HAAA,mBAAmB,OAAA;AAAE,2HAAA,oBAAoB,OAAA;AAAE,sHAAA,eAAe,OAAA;AAAE,0HAAA,mBAAmB,OAAA;AACxF,yCAAyF;AAApD,8GAAA,iBAAiB,OAAA;AAAE,wGAAA,WAAW,OAAA;AACnE,uCAAkD;AAA/B,sGAAA,UAAU,OAAA"}
|
package/build/rules.js
CHANGED
|
@@ -102,7 +102,7 @@ function cannotBeUpdated(field, optsOrUnless) {
|
|
|
102
102
|
function cannotBeChanged(field, opts) {
|
|
103
103
|
return ruleWithOpts(opts, (entity) => {
|
|
104
104
|
const changes = entity.changes[field];
|
|
105
|
-
if (changes.kind === "m2m" || changes.kind === "o2m") {
|
|
105
|
+
if (changes.kind === "m2m" || changes.kind === "o2m" || changes.kind === "m2mEnum") {
|
|
106
106
|
throw new Error("cannotBeChanged is only supported on primitive & m2o fields");
|
|
107
107
|
}
|
|
108
108
|
else if (changes.hasUpdated) {
|
package/build/rules.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { type Alias } from "./Aliases";
|
|
2
|
+
import type { Entity } from "./Entity";
|
|
3
|
+
import type { ExpressionCondition, ExpressionFilter, FilterAndSettings, FilterWithAlias, FindFilter } from "./EntityFilter";
|
|
4
|
+
import type { GraphQLFilterWithAlias } from "./EntityGraphQLFilter";
|
|
5
|
+
import type { EntityManager, FindFilterOptions } from "./EntityManager";
|
|
6
|
+
import type { Loaded, LoadHint } from "./loadHints";
|
|
7
|
+
import type { OrderOf } from "./typeMap";
|
|
8
|
+
/**
|
|
9
|
+
* A scope fragment that introduces its own join aliases: a join tree plus conditions
|
|
10
|
+
* that reference the aliases it binds.
|
|
11
|
+
*
|
|
12
|
+
* Lets a scope express predicates a plain nested filter can't, e.g. a top-level `OR`
|
|
13
|
+
* spanning two different joined tables. Both halves are required — the `where` tree binds
|
|
14
|
+
* the aliases (via `as:`) that `conditions` reference, so neither is meaningful alone.
|
|
15
|
+
*/
|
|
16
|
+
export interface ScopeJoinFilter<T extends Entity> {
|
|
17
|
+
where: FilterWithAlias<T>;
|
|
18
|
+
conditions: ExpressionFilter;
|
|
19
|
+
}
|
|
20
|
+
/** A predicate expressed against a bound alias, i.e. `(a) => a.age.gte(18)`. */
|
|
21
|
+
export type AliasFn<T extends Entity> = (a: Alias<T>) => ExpressionCondition | ExpressionCondition[] | ScopeJoinFilter<T>;
|
|
22
|
+
/**
|
|
23
|
+
* Discriminates an {@link AliasFn} result that is a {@link ScopeJoinFilter} from a bare
|
|
24
|
+
* condition / condition array.
|
|
25
|
+
*
|
|
26
|
+
* A `ScopeJoinFilter` is the only `AliasFn` return that carries both `where` and `conditions`
|
|
27
|
+
* keys; `ExpressionFilter` (`and`/`or`), `ColumnCondition`/`RawCondition` (`kind`), and arrays
|
|
28
|
+
* have neither, so the two-key check is unambiguous.
|
|
29
|
+
*/
|
|
30
|
+
export declare function isScopeJoinFilter<T extends Entity>(result: ExpressionCondition | ExpressionCondition[] | ScopeJoinFilter<T>): result is ScopeJoinFilter<T>;
|
|
31
|
+
/**
|
|
32
|
+
* The fluent builder to either a) terminate/invoke or b) chain scope methods.
|
|
33
|
+
*
|
|
34
|
+
* I.e. `Author.adult` is a ScopeQuery that can either do `.find` or `.popular`.
|
|
35
|
+
*
|
|
36
|
+
* This `ScopeQuery` is just the terminal/invocation methods, the `.popular` methods
|
|
37
|
+
* are chained on via the `Scope` mapped type below.
|
|
38
|
+
*/
|
|
39
|
+
export interface ScopeQuery<T extends Entity> {
|
|
40
|
+
/**
|
|
41
|
+
* ANDs an ad-hoc filter onto the scope, i.e. `Author.adult.where({ firstName: "a1" })`.
|
|
42
|
+
*
|
|
43
|
+
* Accepts either a plain find filter (`{ field: value }`) or an alias callback
|
|
44
|
+
* (`(a) => a.field.eq(value)`) and appends it to the recorded ops — multiple
|
|
45
|
+
* `.where(...)` calls on the same field AND together rather than override.
|
|
46
|
+
*/
|
|
47
|
+
where(where: FilterWithAlias<T>): this;
|
|
48
|
+
where(fn: AliasFn<T>): this;
|
|
49
|
+
/**
|
|
50
|
+
* Appends an `orderBy` to the scope, i.e. `Author.adult.orderBy({ age: "DESC" })`.
|
|
51
|
+
*
|
|
52
|
+
* Chained `.orderBy(...)` calls **accumulate** (the resulting query has every recorded
|
|
53
|
+
* orderBy in declaration order), unlike `.limit`/`.offset`/`.softDeletes` which are
|
|
54
|
+
* last-wins. To replace an existing scope's ordering, pass `orderBy` to the terminal
|
|
55
|
+
* `.find(em, { orderBy: ... })` instead — terminal options override the scope's.
|
|
56
|
+
*/
|
|
57
|
+
orderBy(orderBy: OrderOf<T> | OrderOf<T>[]): this;
|
|
58
|
+
/**
|
|
59
|
+
* Sets the row limit on the scope, i.e. `Author.adult.limit(10)`.
|
|
60
|
+
*
|
|
61
|
+
* Chained `.limit(...)` calls are last-wins — only the most recent value survives compile.
|
|
62
|
+
*/
|
|
63
|
+
limit(limit: number): this;
|
|
64
|
+
/**
|
|
65
|
+
* Sets the row offset on the scope, i.e. `Author.adult.offset(10)`.
|
|
66
|
+
*
|
|
67
|
+
* Chained `.offset(...)` calls are last-wins — only the most recent value survives compile.
|
|
68
|
+
*/
|
|
69
|
+
offset(offset: number): this;
|
|
70
|
+
/**
|
|
71
|
+
* Overrides Joist's default soft-delete handling for this query, i.e.
|
|
72
|
+
* `Author.adult.softDeletes("include")` to see soft-deleted rows.
|
|
73
|
+
*
|
|
74
|
+
* Chained `.softDeletes(...)` calls are last-wins. The effective value also gates
|
|
75
|
+
* how `.where({ relation: ... })` filters that touch soft-delete-aware entities are
|
|
76
|
+
* composed at compile time.
|
|
77
|
+
*/
|
|
78
|
+
softDeletes(softDeletes: "include" | "exclude"): this;
|
|
79
|
+
/**
|
|
80
|
+
* Runs the scope against `em`, returning all matching rows.
|
|
81
|
+
*
|
|
82
|
+
* Terminal options (`orderBy`, `limit`, `offset`, `softDeletes`) passed here
|
|
83
|
+
* **override** anything the scope recorded via `.orderBy(...)`, `.limit(...)`, etc.;
|
|
84
|
+
* `conditions` passed here are ANDed with the scope's compiled conditions rather than
|
|
85
|
+
* replacing them. To extend the scope's ordering instead of replacing it, chain
|
|
86
|
+
* `.orderBy(...)` before `.find(em)`.
|
|
87
|
+
*/
|
|
88
|
+
find(em: EntityManager): Promise<T[]>;
|
|
89
|
+
find<const H extends LoadHint<T>>(em: EntityManager, opts?: FindFilterOptions<T> & {
|
|
90
|
+
populate?: H;
|
|
91
|
+
}): Promise<Loaded<T, H>[]>;
|
|
92
|
+
/** Like {@link find} but returns a single match or `undefined`. Same options precedence as `find`. */
|
|
93
|
+
findOne(em: EntityManager): Promise<T | undefined>;
|
|
94
|
+
findOne<const H extends LoadHint<T>>(em: EntityManager, opts?: FindFilterOptions<T> & {
|
|
95
|
+
populate?: H;
|
|
96
|
+
}): Promise<Loaded<T, H> | undefined>;
|
|
97
|
+
/** Like {@link findOne} but throws if no row matches. Same options precedence as `find`. */
|
|
98
|
+
findOneOrFail(em: EntityManager): Promise<T>;
|
|
99
|
+
findOneOrFail<const H extends LoadHint<T>>(em: EntityManager, opts?: FindFilterOptions<T> & {
|
|
100
|
+
populate?: H;
|
|
101
|
+
}): Promise<Loaded<T, H>>;
|
|
102
|
+
/**
|
|
103
|
+
* Returns the count of rows matching the scope.
|
|
104
|
+
*
|
|
105
|
+
* Recorded `orderBy`/`limit`/`offset` ops are dropped (they're meaningless for a count);
|
|
106
|
+
* `softDeletes` and conditions still apply.
|
|
107
|
+
*/
|
|
108
|
+
findCount(em: EntityManager): Promise<number>;
|
|
109
|
+
/**
|
|
110
|
+
* Returns the tagged ids of rows matching the scope.
|
|
111
|
+
*
|
|
112
|
+
* Like {@link findCount}, recorded `orderBy`/`limit`/`offset` ops are dropped.
|
|
113
|
+
*/
|
|
114
|
+
findIds(em: EntityManager): Promise<string[]>;
|
|
115
|
+
/**
|
|
116
|
+
* Compiles the scope into Joist's `FilterAndSettings` shape for passing to other APIs
|
|
117
|
+
* or for inspection in tests.
|
|
118
|
+
*
|
|
119
|
+
* Useful primarily for debugging — the returned shape captures whatever the terminal
|
|
120
|
+
* `find` methods would have sent to `em.find`, before terminal-options precedence is
|
|
121
|
+
* applied.
|
|
122
|
+
*/
|
|
123
|
+
toFindArgs(): FilterAndSettings<T>;
|
|
124
|
+
}
|
|
125
|
+
/** A scope for entity `T`, with chainable named accessors supplied by `S`. */
|
|
126
|
+
export type Scope<T extends Entity, S = {}> = ScopeQuery<T> & S;
|
|
127
|
+
/**
|
|
128
|
+
* A per-entity, pre-typed function for declaring scopes.
|
|
129
|
+
*
|
|
130
|
+
* I.e. this is the type of the `import { authorScope as scope }` that entity files
|
|
131
|
+
* use to declare their scopes.
|
|
132
|
+
*
|
|
133
|
+
* Because of the `authorScope as scope` rename, we can bake into the API that this
|
|
134
|
+
* is the Author entity, and so simplify its usage.
|
|
135
|
+
*/
|
|
136
|
+
export interface ScopeFn<T extends Entity, R extends Scope<T>> {
|
|
137
|
+
/** Defines a scope based on a filter condition, i.e. `scope({ name: "John" })` or `scope(a => a.name.eq("John")`. */
|
|
138
|
+
(arg: FilterWithAlias<T> | AliasFn<T>): R;
|
|
139
|
+
/** Defines a parametrized filter, i.e. `scope(name => ({ name: { startsWith: name } }))`. */
|
|
140
|
+
fn<A extends unknown[]>(fn: (...args: A) => FilterWithAlias<T> | AliasFn<T>): (...args: A) => R;
|
|
141
|
+
}
|
|
142
|
+
/** A scope fragment that can be expanded against any current query alias. */
|
|
143
|
+
export type ScopeFilterFragment<T extends Entity> = {
|
|
144
|
+
kind: "alias";
|
|
145
|
+
fn: AliasFn<T>;
|
|
146
|
+
} | {
|
|
147
|
+
kind: "filter";
|
|
148
|
+
filter: FilterWithAlias<T>;
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Fully-expanded scope contents, with named refs resolved and settings collapsed.
|
|
152
|
+
*
|
|
153
|
+
* Deliberately *not* a `ParsedFindQuery`, even though they look adjacent: this is the pre-parse,
|
|
154
|
+
* alias-free *input* we feed into `parseFindQuery`, not its alias-committed AST output. Two reasons
|
|
155
|
+
* the distinction matters:
|
|
156
|
+
* - `fragments` are un-parsed DSL — filter objects plus un-invoked `AliasFn` closures — so the same
|
|
157
|
+
* scope can be re-rooted onto the query's primary alias (`Author.adult.find(em)`) or onto a joined
|
|
158
|
+
* relation alias (`em.find(Book, { author: Author.adult })`). A `ParsedFindQuery` has already baked
|
|
159
|
+
* in concrete aliases like `a`/`b1` and could only be reused via alias-rewrite surgery.
|
|
160
|
+
* - keeping `fragments` as a *list* (rather than one merged condition tree) preserves independent-EXISTS
|
|
161
|
+
* semantics: `.where({ books: ... }).where({ books: ... })` must stay two predicates — one EXISTS each —
|
|
162
|
+
* which a collapsed `ParsedFindQuery.condition` can no longer be split back into.
|
|
163
|
+
*/
|
|
164
|
+
export interface ResolvedScope<T extends Entity> {
|
|
165
|
+
fragments: ScopeFilterFragment<T>[];
|
|
166
|
+
orderBys: OrderOf<T>[];
|
|
167
|
+
limit: number | undefined;
|
|
168
|
+
offset: number | undefined;
|
|
169
|
+
softDeletes: "include" | "exclude" | undefined;
|
|
170
|
+
}
|
|
171
|
+
/** Creates a per-entity, pre-typed scope function. */
|
|
172
|
+
export declare function newScopeFn<T extends Entity, R extends Scope<T>>(entityType: string): ScopeFn<T, R>;
|
|
173
|
+
/** Returns true if `value` is one of our scope proxies. */
|
|
174
|
+
export declare function isScope<T extends Entity>(value: unknown): value is Scope<T>;
|
|
175
|
+
/** Resolves a scope proxy into ordered filter fragments plus collapsed settings. */
|
|
176
|
+
export declare function resolveScope<T extends Entity>(scope: Scope<T>): ResolvedScope<T>;
|
|
177
|
+
/**
|
|
178
|
+
* Returns true for find filters that select every row of the entity type, i.e. an empty `{}` filter
|
|
179
|
+
* or a scope that resolved to no fragments.
|
|
180
|
+
*
|
|
181
|
+
* Used by `em.findCount` and the count dataloader to short-circuit in-memory delete adjustments, which
|
|
182
|
+
* are only safe when the query has no `where`/`conditions` to evaluate created/deleted entities against.
|
|
183
|
+
*/
|
|
184
|
+
export declare function isSelectAllFilter<T extends Entity>(where: FindFilter<T> | GraphQLFilterWithAlias<T>, conditions: ExpressionFilter | undefined): boolean;
|
|
185
|
+
//# sourceMappingURL=scopes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../src/scopes.ts"],"names":[],"mappings":"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"}
|