joist-core 2.1.0-next.9 → 2.2.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/ConditionBuilder.d.ts +1 -22
- package/build/ConditionBuilder.d.ts.map +1 -1
- package/build/ConditionBuilder.js +6 -72
- package/build/ConditionBuilder.js.map +1 -1
- package/build/EntityFilter.d.ts +2 -0
- package/build/EntityFilter.d.ts.map +1 -1
- package/build/EntityGraphQLFilter.d.ts +2 -0
- package/build/EntityGraphQLFilter.d.ts.map +1 -1
- package/build/EntityGraphQLFilter.js.map +1 -1
- package/build/EntityManager.d.ts +5 -0
- package/build/EntityManager.d.ts.map +1 -1
- package/build/EntityManager.js +51 -26
- package/build/EntityManager.js.map +1 -1
- package/build/EntityMetadata.d.ts +2 -0
- package/build/EntityMetadata.d.ts.map +1 -1
- package/build/EntityMetadata.js.map +1 -1
- package/build/InstanceData.d.ts +7 -1
- package/build/InstanceData.d.ts.map +1 -1
- package/build/InstanceData.js +36 -7
- package/build/InstanceData.js.map +1 -1
- package/build/IsLoadedCache.d.ts +1 -1
- package/build/IsLoadedCache.d.ts.map +1 -1
- package/build/IsLoadedCache.js +6 -1
- package/build/IsLoadedCache.js.map +1 -1
- package/build/JoinRows.d.ts +1 -1
- package/build/JoinRows.js +6 -1
- package/build/JoinRows.js.map +1 -1
- package/build/PluginManager.d.ts +12 -0
- package/build/PluginManager.d.ts.map +1 -1
- package/build/PluginManager.js +18 -2
- package/build/PluginManager.js.map +1 -1
- package/build/QueryParser.collectionJoins.d.ts +27 -0
- package/build/QueryParser.collectionJoins.d.ts.map +1 -0
- package/build/QueryParser.collectionJoins.js +460 -0
- package/build/QueryParser.collectionJoins.js.map +1 -0
- package/build/QueryParser.collectionJoins.test.d.ts +2 -0
- package/build/QueryParser.collectionJoins.test.d.ts.map +1 -0
- package/build/QueryParser.collectionJoins.test.js +772 -0
- package/build/QueryParser.collectionJoins.test.js.map +1 -0
- package/build/QueryParser.d.ts +62 -9
- package/build/QueryParser.d.ts.map +1 -1
- package/build/QueryParser.js +39 -33
- package/build/QueryParser.js.map +1 -1
- package/build/QueryParser.pruning.d.ts +4 -2
- package/build/QueryParser.pruning.d.ts.map +1 -1
- package/build/QueryParser.pruning.js +80 -10
- package/build/QueryParser.pruning.js.map +1 -1
- package/build/QueryParser.pruning.test.d.ts +2 -0
- package/build/QueryParser.pruning.test.d.ts.map +1 -0
- package/build/QueryParser.pruning.test.js +106 -0
- package/build/QueryParser.pruning.test.js.map +1 -0
- package/build/QueryVisitor.d.ts.map +1 -1
- package/build/QueryVisitor.js +22 -0
- package/build/QueryVisitor.js.map +1 -1
- package/build/ReactionsManager.js +2 -2
- package/build/batchloaders/BatchLoader.d.ts.map +1 -1
- package/build/batchloaders/BatchLoader.js +4 -1
- package/build/batchloaders/BatchLoader.js.map +1 -1
- package/build/changes.d.ts.map +1 -1
- package/build/changes.js +1 -4
- package/build/changes.js.map +1 -1
- package/build/config.d.ts.map +1 -1
- package/build/config.js +18 -10
- package/build/config.js.map +1 -1
- package/build/configure.js +2 -2
- package/build/dataloaders/findCountDataLoader.js +2 -2
- package/build/dataloaders/findCountDataLoader.js.map +1 -1
- package/build/dataloaders/findIdsDataLoader.js +2 -2
- package/build/dataloaders/findIdsDataLoader.js.map +1 -1
- package/build/dataloaders/findOrCreateDataLoader.d.ts.map +1 -1
- package/build/dataloaders/findOrCreateDataLoader.js +6 -1
- package/build/dataloaders/findOrCreateDataLoader.js.map +1 -1
- package/build/defaults.d.ts.map +1 -1
- package/build/defaults.js +49 -42
- package/build/defaults.js.map +1 -1
- package/build/drivers/buildRawQuery.d.ts.map +1 -1
- package/build/drivers/buildRawQuery.js +3 -2
- package/build/drivers/buildRawQuery.js.map +1 -1
- package/build/drivers/buildUtils.d.ts +7 -2
- package/build/drivers/buildUtils.d.ts.map +1 -1
- package/build/drivers/buildUtils.js +14 -5
- package/build/drivers/buildUtils.js.map +1 -1
- package/build/fields.d.ts.map +1 -1
- package/build/fields.js +16 -7
- package/build/fields.js.map +1 -1
- package/build/index.d.ts +2 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +7 -5
- package/build/index.js.map +1 -1
- package/build/json.d.ts +3 -3
- package/build/json.d.ts.map +1 -1
- package/build/json.js +4 -4
- package/build/json.js.map +1 -1
- package/build/loadHints.d.ts +4 -4
- package/build/loadHints.d.ts.map +1 -1
- package/build/loadLens.js +1 -1
- package/build/loadLens.js.map +1 -1
- package/build/preloading/JsonAggregatePreloader.js +6 -2
- package/build/preloading/JsonAggregatePreloader.js.map +1 -1
- package/build/reactiveHints.d.ts +24 -7
- package/build/reactiveHints.d.ts.map +1 -1
- package/build/reactiveHints.js +45 -28
- package/build/reactiveHints.js.map +1 -1
- package/build/relations/AbstractRelationImpl.d.ts +7 -2
- package/build/relations/AbstractRelationImpl.d.ts.map +1 -1
- package/build/relations/AbstractRelationImpl.js.map +1 -1
- package/build/relations/AsyncProperty.d.ts +36 -0
- package/build/relations/AsyncProperty.d.ts.map +1 -0
- package/build/relations/AsyncProperty.js +80 -0
- package/build/relations/AsyncProperty.js.map +1 -0
- package/build/relations/{ReactiveQueryField.d.ts → AsyncReactiveField.d.ts} +10 -10
- package/build/relations/AsyncReactiveField.d.ts.map +1 -0
- package/build/relations/{ReactiveQueryField.js → AsyncReactiveField.js} +19 -19
- package/build/relations/{ReactiveQueryField.js.map → AsyncReactiveField.js.map} +1 -1
- package/build/relations/ReactiveField.d.ts +7 -9
- package/build/relations/ReactiveField.d.ts.map +1 -1
- package/build/relations/ReactiveField.js +5 -10
- package/build/relations/ReactiveField.js.map +1 -1
- package/build/relations/ReactiveGetter.d.ts +5 -5
- package/build/relations/ReactiveGetter.d.ts.map +1 -1
- package/build/relations/ReactiveGetter.js +3 -3
- package/build/relations/ReactiveGetter.js.map +1 -1
- package/build/relations/ReactiveReference.d.ts +2 -2
- package/build/relations/ReactiveReference.d.ts.map +1 -1
- package/build/relations/ReactiveReference.js +100 -36
- package/build/relations/ReactiveReference.js.map +1 -1
- package/build/relations/{hasAsyncProperty.d.ts → hasProperty.d.ts} +12 -12
- package/build/relations/hasProperty.d.ts.map +1 -0
- package/build/relations/{hasAsyncProperty.js → hasProperty.js} +20 -20
- package/build/relations/hasProperty.js.map +1 -0
- package/build/relations/index.d.ts +3 -2
- package/build/relations/index.d.ts.map +1 -1
- package/build/relations/index.js +16 -11
- package/build/relations/index.js.map +1 -1
- package/build/resurrection.d.ts +10 -0
- package/build/resurrection.d.ts.map +1 -0
- package/build/resurrection.js +93 -0
- package/build/resurrection.js.map +1 -0
- package/build/rules.js +3 -3
- package/build/trusted.d.ts +1 -1
- package/build/trusted.d.ts.map +1 -1
- package/build/trusted.js +1 -1
- package/build/trusted.js.map +1 -1
- package/build/upsert.d.ts.map +1 -1
- package/build/upsert.js +26 -10
- package/build/upsert.js.map +1 -1
- package/build/withLoaded.js +5 -5
- package/build/withLoaded.js.map +1 -1
- package/package.json +9 -9
- package/build/relations/ReactiveQueryField.d.ts.map +0 -1
- package/build/relations/hasAsyncProperty.d.ts.map +0 -1
- package/build/relations/hasAsyncProperty.js.map +0 -1
package/build/configure.js
CHANGED
|
@@ -13,7 +13,7 @@ const defaults_1 = require("./defaults");
|
|
|
13
13
|
const getProperties_1 = require("./getProperties");
|
|
14
14
|
const keys_1 = require("./keys");
|
|
15
15
|
const reactiveHints_1 = require("./reactiveHints");
|
|
16
|
-
const
|
|
16
|
+
const AsyncReactiveField_1 = require("./relations/AsyncReactiveField");
|
|
17
17
|
const rules_1 = require("./rules");
|
|
18
18
|
const serde_1 = require("./serde");
|
|
19
19
|
const utils_1 = require("./utils");
|
|
@@ -248,7 +248,7 @@ function reverseIndexReactivity(metas) {
|
|
|
248
248
|
const reversals = (0, reactiveHints_1.reverseReactiveHint)(meta.cstr, meta.cstr, ap.reactiveHint);
|
|
249
249
|
for (const { kind, entity, path, fields } of reversals) {
|
|
250
250
|
(0, EntityMetadata_1.getMetadata)(entity).config.__data.reactables.push({
|
|
251
|
-
kind: ap instanceof
|
|
251
|
+
kind: ap instanceof AsyncReactiveField_1.AsyncReactiveFieldImpl ? "query" : "populate",
|
|
252
252
|
cstr: meta.cstr,
|
|
253
253
|
isReadOnly: kind === "read-only",
|
|
254
254
|
name: field.fieldName,
|
|
@@ -27,7 +27,7 @@ function findCountDataLoader(em, type, filter) {
|
|
|
27
27
|
const primary = query.tables.find((t) => t.join === "primary") ?? (0, utils_1.fail)("No primary");
|
|
28
28
|
query.selects = [`count(distinct ${(0, keywords_1.kq)(primary.alias)}.id) as count`];
|
|
29
29
|
query.orderBys = [];
|
|
30
|
-
const rows = await em["executeFind"](meta, exports.findCountOperation, query, { checkLimit: false });
|
|
30
|
+
const rows = await em["executeFind"](meta, exports.findCountOperation, query, { ...options, checkLimit: false });
|
|
31
31
|
return [Number(rows[0].count)];
|
|
32
32
|
}
|
|
33
33
|
// WITH _find (tag, arg1, arg2) AS (
|
|
@@ -59,7 +59,7 @@ function findCountDataLoader(em, type, filter) {
|
|
|
59
59
|
ctes: [(0, unnest_1.buildUnnestCte)("_find", argsColumns, (0, findDataLoader_1.createColumnValues)(meta, argsColumns, queries))],
|
|
60
60
|
orderBys: [],
|
|
61
61
|
};
|
|
62
|
-
const rows = await em["executeFind"](meta, exports.findCountOperation, query2, { checkLimit: false });
|
|
62
|
+
const rows = await em["executeFind"](meta, exports.findCountOperation, query2, { ...options, checkLimit: false });
|
|
63
63
|
// Make an empty array for each batched query, per the dataloader contract
|
|
64
64
|
const results = queries.map(() => 0);
|
|
65
65
|
// Then put each row into the tagged query it matched
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findCountDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/findCountDataLoader.ts"],"names":[],"mappings":";;;AAkBA,kDA8EC;AA5FD,sDAAgD;AAChD,0CAAiC;AACjC,gDAAiE;AACjE,sCAA2C;AAC3C,oCAAgC;AAChC,qDAK0B;AAEb,QAAA,kBAAkB,GAAG,YAAY,CAAC;AAE/C,SAAgB,mBAAmB,CACjC,EAAiB,EACjB,IAAuC,EACvC,MAA4B;IAE5B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAClC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAA,4BAAc,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAA,gDAA+B,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE9D,OAAO,EAAE,CAAC,SAAS,CACjB,0BAAkB,EAClB,QAAQ,EACR,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,kEAAkE;QAElE,uGAAuG;QACvG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAA,4BAAc,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,IAAA,YAAI,EAAC,YAAY,CAAC,CAAC;YACrF,KAAK,CAAC,OAAO,GAAG,CAAC,kBAAkB,IAAA,aAAE,EAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACrE,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,0BAAkB,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"findCountDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/findCountDataLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ function findIdsDataLoader(em, type, filter) {
|
|
|
29
29
|
query.selects = [`${(0, keywords_1.kq)(primary.alias)}.id as id`];
|
|
30
30
|
query.orderBys = [{ alias: primary.alias, column: "id", order: "ASC" }];
|
|
31
31
|
// explicitly pass limit: undefined to avoid executeFind applying the default entityLimit
|
|
32
|
-
const rows = await em["executeFind"](meta, exports.findIdsOperation, query, { limit: undefined });
|
|
32
|
+
const rows = await em["executeFind"](meta, exports.findIdsOperation, query, { ...options, limit: undefined });
|
|
33
33
|
return [rows.map((row) => (0, keys_1.keyToTaggedId)(meta, row.id))];
|
|
34
34
|
}
|
|
35
35
|
// WITH _find (tag, arg1, arg2) AS (
|
|
@@ -61,7 +61,7 @@ function findIdsDataLoader(em, type, filter) {
|
|
|
61
61
|
orderBys: [],
|
|
62
62
|
};
|
|
63
63
|
// explicitly pass limit: undefined to avoid executeFind applying the default entityLimit
|
|
64
|
-
const rows = await em["executeFind"](meta, exports.findIdsOperation, query2, { limit: undefined });
|
|
64
|
+
const rows = await em["executeFind"](meta, exports.findIdsOperation, query2, { ...options, limit: undefined });
|
|
65
65
|
// Make an empty array for each batched query, per the dataloader contract
|
|
66
66
|
const results = queries.map(() => []);
|
|
67
67
|
// Then put each row's ID into the tagged query it matched
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findIdsDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/findIdsDataLoader.ts"],"names":[],"mappings":";;;AAmBA,8CA+EC;AA9FD,sDAAgD;AAChD,kCAAwC;AACxC,0CAAiC;AACjC,gDAAiE;AACjE,sCAA2C;AAC3C,oCAAgC;AAChC,qDAK0B;AAEb,QAAA,gBAAgB,GAAG,UAAU,CAAC;AAE3C,SAAgB,iBAAiB,CAC/B,EAAiB,EACjB,IAAuC,EACvC,MAA4B;IAE5B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAClC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAA,4BAAc,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAA,gDAA+B,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE9D,OAAO,EAAE,CAAC,SAAS,CACjB,wBAAgB,EAChB,QAAQ,EACR,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,kEAAkE;QAElE,uGAAuG;QACvG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAA,4BAAc,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,IAAA,YAAI,EAAC,YAAY,CAAC,CAAC;YACrF,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,IAAA,aAAE,EAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAClD,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YACxE,yFAAyF;YACzF,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,wBAAgB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"findIdsDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/findIdsDataLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findOrCreateDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/findOrCreateDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAY,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAA4B,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"findOrCreateDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/findOrCreateDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAY,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAA4B,MAAM,kBAAkB,CAAC;AAI9F,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAIpC,UAAU,eAAe,CAAC,CAAC,SAAS,MAAM;IACxC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CACxC;AAED,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,EACrD,EAAE,EAAE,aAAa,EACjB,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC1B,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EACzB,WAAW,EAAE,SAAS,GAAG,SAAS,GACjC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAgGnC;AAED,yFAAyF;AACzF,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAgC5F"}
|
|
@@ -6,6 +6,7 @@ const Entity_1 = require("../Entity");
|
|
|
6
6
|
const EntityManager_1 = require("../EntityManager");
|
|
7
7
|
const EntityMetadata_1 = require("../EntityMetadata");
|
|
8
8
|
const relations_1 = require("../relations");
|
|
9
|
+
const resurrection_1 = require("../resurrection");
|
|
9
10
|
const utils_1 = require("../utils");
|
|
10
11
|
const findDataLoader_1 = require("./findDataLoader");
|
|
11
12
|
function findOrCreateDataLoader(em, type, where, softDeletes) {
|
|
@@ -48,6 +49,7 @@ function findOrCreateDataLoader(em, type, where, softDeletes) {
|
|
|
48
49
|
}
|
|
49
50
|
else if (inMemory.length === 1) {
|
|
50
51
|
const entity = inMemory[0];
|
|
52
|
+
(0, resurrection_1.resurrectIfSoftDeleted)(entity);
|
|
51
53
|
if (upsert) {
|
|
52
54
|
entity.set(upsert);
|
|
53
55
|
}
|
|
@@ -66,13 +68,16 @@ function findOrCreateDataLoader(em, type, where, softDeletes) {
|
|
|
66
68
|
// If we didn't find it in the EM, do the db query/em.create
|
|
67
69
|
const entities = (await em.find(type,
|
|
68
70
|
// Convert `publisher: undefined` --> `publisher: null`, and we need to make a copy anyway
|
|
69
|
-
Object.fromEntries(Object.entries(where).map(([k, v]) => [k, v === undefined ? null : v])),
|
|
71
|
+
Object.fromEntries(Object.entries(where).map(([k, v]) => [k, v === undefined ? null : v])),
|
|
72
|
+
// Always include soft-deleted rows so findOrCreate can resurrect them instead of creating duplicates.
|
|
73
|
+
{ softDeletes: "include" })).filter((e) => !e.isDeletedEntity);
|
|
70
74
|
let entity;
|
|
71
75
|
if (entities.length > 1) {
|
|
72
76
|
throw new EntityManager_1.TooManyError(`Found more than one existing ${type.name} with ${whereAsString(where)}`);
|
|
73
77
|
}
|
|
74
78
|
else if (entities.length === 1) {
|
|
75
79
|
entity = entities[0];
|
|
80
|
+
(0, resurrection_1.resurrectIfSoftDeleted)(entity);
|
|
76
81
|
}
|
|
77
82
|
else {
|
|
78
83
|
entity = em.create(type, { ...where, ...ifNew });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findOrCreateDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/findOrCreateDataLoader.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"findOrCreateDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/findOrCreateDataLoader.ts"],"names":[],"mappings":"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"}
|
package/build/defaults.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAsE,MAAM,kBAAkB,CAAC;AAGtH,OAAO,EAAqB,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAsE,MAAM,kBAAkB,CAAC;AAGtH,OAAO,EAAqB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAKlE,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAIhF;AAED,0CAA0C;AAC1C,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CA2CpD;AAED,oEAAoE;AACpE,wBAAsB,gBAAgB,CACpC,oBAAoB,EAAE,KAAK,EAAE,EAC7B,GAAG,EAAE,OAAO,EAIZ,gBAAgB,EAAE,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,GAC9C,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,4FAA4F;AAC5F,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAOhF;AAED,wDAAwD;AACxD,qBAAa,YAAY,CAAC,CAAC,SAAS,MAAM;;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;gBAKhC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG;IAM3F,uFAAuF;IACjF,aAAa,CACjB,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,iBAAiB,EACrB,oBAAoB,EAAE,KAAK,EAAE,EAC7B,YAAY,EAAE,cAAc,EAC5B,OAAO,EAAE,CAAC,EAAE,GACX,OAAO,CAAC,GAAG,CAAC;IA0Df,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI;IAmCjD,wEAAwE;IACxE,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,IAAI;CAGb;AAED,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,EACrD,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,EAC3B,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GACxB,iBAAiB,EAAE,CAuCrB;AAED;;;;;;;;;GASG;AACH,cAAM,iBAAiB;;gBAIT,gBAAgB,EAAE,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;IAQ3D,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO;IAI9C,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;CASrE"}
|
package/build/defaults.js
CHANGED
|
@@ -13,49 +13,52 @@ const fields_1 = require("./fields");
|
|
|
13
13
|
const normalizeHints_1 = require("./normalizeHints");
|
|
14
14
|
const reactiveHints_1 = require("./reactiveHints");
|
|
15
15
|
const index_1 = require("./relations/index");
|
|
16
|
+
const trusted_1 = require("./trusted");
|
|
16
17
|
const utils_1 = require("./utils");
|
|
17
18
|
function hasDefaultValue(meta, fieldName) {
|
|
18
19
|
return (0, EntityMetadata_1.getBaseAndSelfMetas)(meta).some((m) => fieldName in m.config.__data.syncDefaults || fieldName in m.config.__data.asyncDefaults);
|
|
19
20
|
}
|
|
20
21
|
/** Run the sync defaults for `entity`. */
|
|
21
22
|
function setSyncDefaults(entity) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
field.
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
(0, fields_1.setField)(entity, fieldName, value);
|
|
36
|
-
}
|
|
37
|
-
else if (!isRelation(field)) {
|
|
38
|
-
const hasBeenSet = fieldName in (0, BaseEntity_1.getInstanceData)(entity).data;
|
|
39
|
-
if (!hasBeenSet) {
|
|
23
|
+
return (0, trusted_1.runInTrustedContext)(() => {
|
|
24
|
+
const meta = (0, EntityMetadata_1.getMetadata)(entity);
|
|
25
|
+
// Allow subtypes to override base setDefaults
|
|
26
|
+
const syncDefaults = (0, EntityMetadata_1.getBaseAndSelfMetas)(meta).reduce((acc, m) => ({ ...acc, ...m.config.__data.syncDefaults }), {});
|
|
27
|
+
for (const [fieldName, maybeFn] of Object.entries(syncDefaults)) {
|
|
28
|
+
const field = meta.allFields[fieldName];
|
|
29
|
+
// Use allFields in case a subtype sets a default for one of its base fields
|
|
30
|
+
if ((field.kind === "primitive" || field.kind === "enum") &&
|
|
31
|
+
field.derived === "async") {
|
|
32
|
+
// If this is an AsyncReactiveField, we want to push in a default, but setOpts is called
|
|
33
|
+
// from the codegen constructor, so the user-defined `hasAsyncReactiveField` fields will
|
|
34
|
+
// not have been initialized yet (i.e. `entity[field]` will be undefined and not yet an
|
|
35
|
+
// `instanceof AsyncReactiveField`). Thankfully we can just use setField.
|
|
40
36
|
const value = maybeFn instanceof Function ? maybeFn(entity) : maybeFn;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
37
|
+
(0, fields_1.setField)(entity, fieldName, value);
|
|
38
|
+
}
|
|
39
|
+
else if (!isRelation(field)) {
|
|
40
|
+
const hasBeenSet = fieldName in (0, BaseEntity_1.getInstanceData)(entity).data;
|
|
41
|
+
if (!hasBeenSet) {
|
|
42
|
+
const value = maybeFn instanceof Function ? maybeFn(entity) : maybeFn;
|
|
43
|
+
// If the value is undefined, leave it unset, so that a default invoked during
|
|
44
|
+
// the constructor being called (before any other opts are set) can be called
|
|
45
|
+
// again during `em.flush` and get an opportunity to observe other fields.
|
|
46
|
+
if (value !== undefined) {
|
|
47
|
+
entity[fieldName] = value;
|
|
48
|
+
}
|
|
46
49
|
}
|
|
47
50
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
else {
|
|
52
|
+
const value = entity[fieldName];
|
|
53
|
+
if ((0, index_1.isLoadedReference)(value) && !value.isSet && !value.hasBeenSet) {
|
|
54
|
+
// A sync default usually would never be for a reference, because reference defaults usually
|
|
55
|
+
// require a field hint (so would be async) to get "the other entity". However, something like:
|
|
56
|
+
// `config.setDefault("original", (self) => self);` is technically valid.
|
|
57
|
+
value.set(maybeFn instanceof Function ? maybeFn(entity) : maybeFn);
|
|
58
|
+
}
|
|
56
59
|
}
|
|
57
60
|
}
|
|
58
|
-
}
|
|
61
|
+
});
|
|
59
62
|
}
|
|
60
63
|
/** Runs the async defaults for all inserted entities in `todos`. */
|
|
61
64
|
async function setAsyncDefaults(suppressedTypeErrors, ctx,
|
|
@@ -63,19 +66,23 @@ async function setAsyncDefaults(suppressedTypeErrors, ctx,
|
|
|
63
66
|
// the subtype `setOnEntities(...all subtype entities...)` and `setOnEntities(...any base types...)`
|
|
64
67
|
// as bulk calls.
|
|
65
68
|
insertsBySubType) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
return (0, trusted_1.runInTrustedContext)(async () => {
|
|
70
|
+
const dt = new DependencyTracker(insertsBySubType);
|
|
71
|
+
const results = await Promise.allSettled([...insertsBySubType.entries()].flatMap(([meta, inserts]) => {
|
|
72
|
+
// configure will have copy/pasted base defaults into our config, so we can loop over it directly
|
|
73
|
+
return Object.values(meta.config.__data.asyncDefaults).map((df) => df.setOnEntities(ctx, dt, suppressedTypeErrors, meta, inserts));
|
|
74
|
+
}));
|
|
75
|
+
(0, utils_1.failIfAnyRejected)(results);
|
|
76
|
+
});
|
|
72
77
|
}
|
|
73
78
|
/** Sets async defaults *synchronously*, only safe for factories with `DeepNew` entities. */
|
|
74
79
|
function setAsyncDefaultsSynchronously(ctx, entity) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
df.
|
|
78
|
-
|
|
80
|
+
return (0, trusted_1.runInTrustedContext)(() => {
|
|
81
|
+
// configure will have copy/pasted base defaults into our config, so we can loop over it directly
|
|
82
|
+
for (const df of Object.values((0, EntityMetadata_1.getMetadata)(entity).config.__data.asyncDefaults)) {
|
|
83
|
+
df.setOnFactoryEntity(ctx, entity);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
79
86
|
}
|
|
80
87
|
/** Wraps the hint + lambda of an async `setDefault`. */
|
|
81
88
|
class AsyncDefault {
|
package/build/defaults.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildRawQuery.d.ts","sourceRoot":"","sources":["../../src/drivers/buildRawQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAe,MAAM,gBAAgB,CAAC;AAK/E;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,GAAG,EAAE,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"buildRawQuery.d.ts","sourceRoot":"","sources":["../../src/drivers/buildRawQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAe,MAAM,gBAAgB,CAAC;AAK/E;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,GAAG,EAAE,CAAA;CAAE,CAiH3C;AAWD,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,GAAG,EAAE,CAAA;CAAE,CAe3F"}
|
|
@@ -52,13 +52,14 @@ function buildRawQuery(parsed, settings) {
|
|
|
52
52
|
sql += " ";
|
|
53
53
|
}
|
|
54
54
|
sql += "SELECT ";
|
|
55
|
+
const subqueryRenderer = (q) => buildRawQuery(q, {});
|
|
55
56
|
parsed.selects.forEach((s, i) => {
|
|
56
57
|
const maybeDistinct = i === 0 && needsDistinct ? buildDistinctOn(parsed, primary) : "";
|
|
57
58
|
const maybeComma = i === parsed.selects.length - 1 ? "" : ", ";
|
|
58
59
|
if (typeof s === "string") {
|
|
59
60
|
sql += maybeDistinct + s + maybeComma;
|
|
60
61
|
}
|
|
61
|
-
else {
|
|
62
|
+
else if ("sql" in s) {
|
|
62
63
|
sql += maybeDistinct + s.sql + maybeComma;
|
|
63
64
|
bindings.push(...s.bindings);
|
|
64
65
|
}
|
|
@@ -95,7 +96,7 @@ function buildRawQuery(parsed, settings) {
|
|
|
95
96
|
}
|
|
96
97
|
}
|
|
97
98
|
if (parsed.condition) {
|
|
98
|
-
const where = (0, buildUtils_1.buildWhereClause)(parsed.condition, true);
|
|
99
|
+
const where = (0, buildUtils_1.buildWhereClause)(parsed.condition, true, subqueryRenderer);
|
|
99
100
|
if (where) {
|
|
100
101
|
sql += " WHERE " + where[0];
|
|
101
102
|
bindings.push(...where[1]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildRawQuery.js","sourceRoot":"","sources":["../../src/drivers/buildRawQuery.ts"],"names":[],"mappings":";;AAWA,
|
|
1
|
+
{"version":3,"file":"buildRawQuery.js","sourceRoot":"","sources":["../../src/drivers/buildRawQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import { ParsedExpressionFilter } from "../QueryParser";
|
|
1
|
+
import { type ParsedExpressionFilter, type ParsedFindQuery } from "../QueryParser";
|
|
2
|
+
/** Renders a ParsedFindQuery subquery to SQL — passed in to avoid circular imports with buildRawQuery. */
|
|
3
|
+
export type SubqueryRenderer = (q: ParsedFindQuery) => {
|
|
4
|
+
sql: string;
|
|
5
|
+
bindings: readonly any[];
|
|
6
|
+
};
|
|
2
7
|
/** Returns a tuple of `["cond AND (cond OR cond)", bindings]`. */
|
|
3
|
-
export declare function buildWhereClause(exp: ParsedExpressionFilter, topLevel?: boolean): [string, any[]] | undefined;
|
|
8
|
+
export declare function buildWhereClause(exp: ParsedExpressionFilter, topLevel?: boolean, renderSubquery?: SubqueryRenderer): [string, any[]] | undefined;
|
|
4
9
|
//# sourceMappingURL=buildUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildUtils.d.ts","sourceRoot":"","sources":["../../src/drivers/buildUtils.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"buildUtils.d.ts","sourceRoot":"","sources":["../../src/drivers/buildUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EAErB,MAAM,gBAAgB,CAAC;AAIxB,0GAA0G;AAC1G,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,EAAE,eAAe,KAAK;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,GAAG,EAAE,CAAA;CAAE,CAAC;AAEjG,kEAAkE;AAClE,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,sBAAsB,EAC3B,QAAQ,UAAQ,EAChB,cAAc,CAAC,EAAE,gBAAgB,GAChC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,CAoB7B"}
|
|
@@ -6,16 +6,18 @@ const EntityManager_1 = require("../EntityManager");
|
|
|
6
6
|
const keywords_1 = require("../keywords");
|
|
7
7
|
const utils_1 = require("../utils");
|
|
8
8
|
/** Returns a tuple of `["cond AND (cond OR cond)", bindings]`. */
|
|
9
|
-
function buildWhereClause(exp, topLevel = false) {
|
|
9
|
+
function buildWhereClause(exp, topLevel = false, renderSubquery) {
|
|
10
10
|
const tuples = exp.conditions
|
|
11
11
|
.map((c) => {
|
|
12
12
|
return c.kind === "exp"
|
|
13
|
-
? buildWhereClause(c)
|
|
13
|
+
? buildWhereClause(c, false, renderSubquery)
|
|
14
14
|
: c.kind === "column"
|
|
15
15
|
? buildCondition(c)
|
|
16
16
|
: c.kind === "raw"
|
|
17
17
|
? buildRawCondition(c)
|
|
18
|
-
:
|
|
18
|
+
: c.kind === "exists"
|
|
19
|
+
? buildExistsCondition(c, renderSubquery)
|
|
20
|
+
: (0, utils_1.fail)(`Invalid condition ${c}`);
|
|
19
21
|
})
|
|
20
22
|
.filter(EntityManager_1.isDefined);
|
|
21
23
|
// If we don't have any conditions to combine, just return undefined;
|
|
@@ -54,12 +56,12 @@ function buildCondition(cc) {
|
|
|
54
56
|
case "contains":
|
|
55
57
|
case "containedBy":
|
|
56
58
|
case "overlaps": {
|
|
57
|
-
const fn = EntityGraphQLFilter_1.opToFn[cond.kind] ?? fail(`Invalid operator ${cond.kind}`);
|
|
59
|
+
const fn = EntityGraphQLFilter_1.opToFn[cond.kind] ?? (0, utils_1.fail)(`Invalid operator ${cond.kind}`);
|
|
58
60
|
return [`${columnName} ${fn} ?`, [cond.value]];
|
|
59
61
|
}
|
|
60
62
|
case "noverlaps":
|
|
61
63
|
case "ncontains": {
|
|
62
|
-
const fn = EntityGraphQLFilter_1.opToFn[cond.kind.substring(1)] ?? fail(`Invalid operator ${cond.kind}`);
|
|
64
|
+
const fn = EntityGraphQLFilter_1.opToFn[cond.kind.substring(1)] ?? (0, utils_1.fail)(`Invalid operator ${cond.kind}`);
|
|
63
65
|
return [`NOT (${columnName} ${fn} ?)`, [cond.value]];
|
|
64
66
|
}
|
|
65
67
|
case "is-null":
|
|
@@ -76,4 +78,11 @@ function buildCondition(cc) {
|
|
|
76
78
|
(0, utils_1.assertNever)(cond);
|
|
77
79
|
}
|
|
78
80
|
}
|
|
81
|
+
function buildExistsCondition(c, renderSubquery) {
|
|
82
|
+
if (!renderSubquery)
|
|
83
|
+
throw new Error("EXISTS condition requires a subquery renderer");
|
|
84
|
+
const { sql, bindings } = renderSubquery(c.subquery);
|
|
85
|
+
const prefix = c.negate ? "NOT EXISTS" : "EXISTS";
|
|
86
|
+
return [`${prefix} (${sql})`, [...bindings]];
|
|
87
|
+
}
|
|
79
88
|
//# sourceMappingURL=buildUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildUtils.js","sourceRoot":"","sources":["../../src/drivers/buildUtils.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"buildUtils.js","sourceRoot":"","sources":["../../src/drivers/buildUtils.ts"],"names":[],"mappings":";;AAgBA,4CAwBC;AAxCD,gEAAgD;AAChD,oDAA6C;AAQ7C,0CAAoC;AACpC,oCAA6C;AAK7C,kEAAkE;AAClE,SAAgB,gBAAgB,CAC9B,GAA2B,EAC3B,QAAQ,GAAG,KAAK,EAChB,cAAiC;IAEjC,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU;SAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,OAAO,CAAC,CAAC,IAAI,KAAK,KAAK;YACrB,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC;YAC5C,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ;gBACnB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;gBACnB,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK;oBAChB,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBACtB,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ;wBACnB,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,cAAc,CAAC;wBACzC,CAAC,CAAC,IAAA,YAAI,EAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC;SACD,MAAM,CAAC,yBAAS,CAAC,CAAC;IACrB,qEAAqE;IACrE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,2EAA2E;IAC3E,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACvE,IAAI,CAAC,QAAQ;QAAE,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;IAChC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAiB;IAC1C,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED,uDAAuD;AACvD,SAAS,cAAc,CAAC,EAAmB;IACzC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,IAAA,gBAAK,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,IAAI,CAAC;QACV,KAAK,IAAI,CAAC;QACV,KAAK,KAAK,CAAC;QACX,KAAK,IAAI,CAAC;QACV,KAAK,KAAK,CAAC;QACX,KAAK,IAAI,CAAC;QACV,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,gBAAgB,CAAC;QACtB,KAAK,mBAAmB,CAAC;QACzB,KAAK,UAAU,CAAC;QAChB,KAAK,aAAa,CAAC;QACnB,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,EAAE,GAAG,4BAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAA,YAAI,EAAC,oBAAoB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,UAAU,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,KAAK,WAAW,CAAC;QACjB,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,EAAE,GAAI,4BAAc,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,IAAA,YAAI,EAAC,oBAAoB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5F,OAAO,CAAC,QAAQ,UAAU,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,KAAK,SAAS;YACZ,OAAO,CAAC,GAAG,UAAU,UAAU,EAAE,EAAE,CAAC,CAAC;QACvC,KAAK,UAAU;YACb,OAAO,CAAC,GAAG,UAAU,cAAc,EAAE,EAAE,CAAC,CAAC;QAC3C,KAAK,IAAI;YACP,OAAO,CAAC,GAAG,UAAU,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,KAAK,KAAK;YACR,OAAO,CAAC,GAAG,UAAU,YAAY,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACnD,KAAK,SAAS;YACZ,OAAO,CAAC,GAAG,UAAU,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD;YACE,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,CAAkB,EAAE,cAAiC;IACjF,IAAI,CAAC,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACtF,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;IAClD,OAAO,CAAC,GAAG,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC/C,CAAC"}
|
package/build/fields.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAY,MAAM,UAAU,CAAC;AAO5C;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG,CAe/D;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAE5E;AAED,qFAAqF;AACrF,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAQrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAY,MAAM,UAAU,CAAC;AAO5C;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG,CAe/D;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAE5E;AAED,qFAAqF;AACrF,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAQrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAyFlF"}
|
package/build/fields.js
CHANGED
|
@@ -69,18 +69,23 @@ function setField(entity, fieldName, newValue) {
|
|
|
69
69
|
api.checkWritesAllowed();
|
|
70
70
|
// Tell any `#isLoaded` or `#value` caches that they might be stale
|
|
71
71
|
isLoadedCache.resetIsLoaded(entity, fieldName);
|
|
72
|
-
const
|
|
72
|
+
const instanceData = (0, BaseEntity_1.getInstanceData)(entity);
|
|
73
|
+
const { data, originalData, flushedData } = instanceData;
|
|
73
74
|
// Do string sanitization
|
|
74
75
|
const field = (0, EntityMetadata_1.getMetadata)(entity).allFields[fieldName];
|
|
75
76
|
if (field.kind === "primitive" && field.type === "string" && field.sanitize !== false) {
|
|
76
77
|
newValue = (0, index_1.cleanStringValue)(newValue);
|
|
77
78
|
}
|
|
78
|
-
|
|
79
|
+
const currentValue = getField(entity, fieldName);
|
|
80
|
+
const isReference = field.kind === "m2o" || field.kind === "poly";
|
|
81
|
+
// Remember every prior reference value so `followReverseHint` can rewalk both original and transient owners.
|
|
82
|
+
if (isReference && !equalOrSameEntity(currentValue, newValue)) {
|
|
83
|
+
instanceData.rememberReferenceValue(fieldName, currentValue);
|
|
84
|
+
}
|
|
85
|
+
// If a `set` occurs during the AsyncReactiveField-loop, copy the last-flushed value to flushedData.
|
|
79
86
|
// Then our `pendingOperation` logic can tell "do we need another micro-flush?" separately
|
|
80
87
|
// from our public-facing changed fields logic.
|
|
81
88
|
if (flushedData) {
|
|
82
|
-
// Get the currentValue, which is what we should have flushed to the db
|
|
83
|
-
const currentValue = getField(entity, fieldName);
|
|
84
89
|
if (fieldName in flushedData) {
|
|
85
90
|
// We've already copied the last-micro-flush value into flushedData,
|
|
86
91
|
// are we changing back to that? If so, we won't need another micro-flush.
|
|
@@ -101,18 +106,22 @@ function setField(entity, fieldName, newValue) {
|
|
|
101
106
|
// "Un-dirty" our originalData if newValue is reverting to originalData
|
|
102
107
|
if (fieldName in originalData) {
|
|
103
108
|
if (equalOrSameEntity(originalData[fieldName], newValue)) {
|
|
104
|
-
const currentValue = getField(entity, fieldName);
|
|
105
109
|
indexManager.maybeUpdateFieldIndex(entity, fieldName, currentValue, newValue);
|
|
106
110
|
pluginManager.beforeSetField(entity, fieldName, newValue);
|
|
107
111
|
data[fieldName] = newValue;
|
|
108
112
|
delete originalData[fieldName];
|
|
109
113
|
fieldLogger?.logSet(entity, fieldName, newValue);
|
|
110
|
-
|
|
114
|
+
if (isReference && instanceData.getReferenceHistory(fieldName).length > 0) {
|
|
115
|
+
rm.queueDownstreamReactables(entity, fieldName);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
// For normal reverts, the field is clean again, so any pending downstream work can be removed.
|
|
119
|
+
rm.dequeueDownstreamReactables(entity, fieldName);
|
|
120
|
+
}
|
|
111
121
|
return true;
|
|
112
122
|
}
|
|
113
123
|
}
|
|
114
124
|
// Push this logic into a field serde type abstraction?
|
|
115
|
-
const currentValue = getField(entity, fieldName);
|
|
116
125
|
if (equalOrSameEntity(currentValue, newValue)) {
|
|
117
126
|
// If we're doing `entity.field = undefined`, we'll be equal, but mark ourselves as "set"
|
|
118
127
|
// so that defaults know to respect the intent of keeping this field undefined.
|
package/build/fields.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":";;AAeA,4BAeC;AAGD,8CAEC;AAGD,gCAQC;AAWD,
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"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"}
|