joist-orm 1.246.2 → 1.247.1

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.
@@ -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;AAG9F,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGpC,UAAU,eAAe,CAAC,CAAC,SAAS,MAAM;IACxC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,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,CAmGnC;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,CA+B5F"}
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;AAG9F,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGpC,UAAU,eAAe,CAAC,CAAC,SAAS,MAAM;IACxC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,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,CAqGnC;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,CA+B5F"}
@@ -70,9 +70,9 @@ function findOrCreateDataLoader(em, type, where, softDeletes) {
70
70
  return keys.map(() => entity);
71
71
  }
72
72
  // If we didn't find it in the EM, do the db query/em.create
73
- const entities = await em.find(type,
73
+ const entities = (await em.find(type,
74
74
  // Convert `publisher: undefined` --> `publisher: null`, and we need to make a copy anyway
75
- Object.fromEntries(Object.entries(where).map(([k, v]) => [k, v === undefined ? null : v])), { softDeletes });
75
+ Object.fromEntries(Object.entries(where).map(([k, v]) => [k, v === undefined ? null : v])), { softDeletes })).filter((e) => !e.isDeletedEntity);
76
76
  let entity;
77
77
  if (entities.length > 1) {
78
78
  throw new EntityManager_1.TooManyError(`Found more than one existing ${type.name} with ${whereAsString(where)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"findOrCreateDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/findOrCreateDataLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"findOrCreateDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/findOrCreateDataLoader.ts"],"names":[],"mappings":"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"}
package/build/index.d.ts CHANGED
@@ -5,11 +5,13 @@ import { getDefaultDependencies } from "./defaults";
5
5
  import { buildWhereClause } from "./drivers/buildUtils";
6
6
  import { New } from "./loadHints";
7
7
  import { isAllSqlPaths } from "./loadLens";
8
+ import { partitionHint } from "./preloading/partitionHint";
8
9
  import { AbstractRelationImpl } from "./relations/AbstractRelationImpl";
9
10
  import { OptsOf } from "./typeMap";
10
11
  export declare const testing: {
11
12
  isAllSqlPaths: typeof isAllSqlPaths;
12
13
  getDefaultDependencies: typeof getDefaultDependencies;
14
+ partitionHint: typeof partitionHint;
13
15
  };
14
16
  export declare const internals: {
15
17
  buildWhereClause: typeof buildWhereClause;
@@ -46,6 +48,7 @@ export { ReactionLogger, setReactionLogging } from "./logging/ReactionLogger";
46
48
  export { defaultValue, FactoryEntityOpt, FactoryOpts, getTestIndex, maybeBranchValue, maybeNew, maybeNewPoly, newTestInstance, noValue, setFactoryLogging, testIndex, } from "./newTestInstance";
47
49
  export { deepNormalizeHint, normalizeHint } from "./normalizeHints";
48
50
  export { JoinResult, PreloadHydrator, PreloadPlugin } from "./plugins/PreloadPlugin";
51
+ export { JsonAggregatePreloader } from "./preloading/JsonAggregatePreloader";
49
52
  export { Reactable, Reacted, ReactiveHint, reverseReactiveHint } from "./reactiveHints";
50
53
  export * from "./relations";
51
54
  export { cannotBeUpdated, GenericError, maxValueRule, minValueRule, mustBeSubType, newRequiredRule, rangeValueRule, ValidationCode, ValidationError, ValidationErrors, ValidationRule, ValidationRuleResult, } from "./rules";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/build/index.js CHANGED
@@ -14,8 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.ValidationErrors = exports.ValidationCode = exports.rangeValueRule = exports.newRequiredRule = exports.mustBeSubType = exports.minValueRule = exports.maxValueRule = exports.cannotBeUpdated = exports.reverseReactiveHint = exports.normalizeHint = exports.deepNormalizeHint = exports.testIndex = exports.setFactoryLogging = exports.noValue = exports.newTestInstance = exports.maybeNewPoly = exports.maybeNew = exports.maybeBranchValue = exports.getTestIndex = exports.defaultValue = exports.setReactionLogging = exports.ReactionLogger = exports.setFactoryWriter = exports.maybePopulateThen = exports.isNew = exports.isLoaded = exports.ensureLoaded = exports.assertLoaded = exports.kqStar = exports.kqDot = exports.kq = exports.setField = exports.isFieldSet = exports.isChangeableField = exports.getField = exports.maybeGetConstructorFromReference = exports.getConstructorFromTaggedId = exports.configureMetadata = exports.resetBootFlag = exports.ConfigApi = exports.InstanceData = exports.isEntity = exports.ConditionBuilder = exports.setCurrentlyInstantiatingEntity = exports.getInstanceData = exports.BaseEntity = exports.AliasAssigner = exports.newPgConnectionConfig = exports.internals = exports.testing = void 0;
18
- exports.NoIdError = exports.withLoaded = exports.StubbedRelation = exports.ensureWithLoaded = exports.indexBy = exports.fail = exports.cleanStringValue = exports.assertNever = exports.asNew = exports.upsert = exports.updatePartial = exports.setRuntimeConfig = void 0;
17
+ exports.ValidationCode = exports.rangeValueRule = exports.newRequiredRule = exports.mustBeSubType = exports.minValueRule = exports.maxValueRule = exports.cannotBeUpdated = exports.reverseReactiveHint = exports.JsonAggregatePreloader = exports.normalizeHint = exports.deepNormalizeHint = exports.testIndex = exports.setFactoryLogging = exports.noValue = exports.newTestInstance = exports.maybeNewPoly = exports.maybeNew = exports.maybeBranchValue = exports.getTestIndex = exports.defaultValue = exports.setReactionLogging = exports.ReactionLogger = exports.setFactoryWriter = exports.maybePopulateThen = exports.isNew = exports.isLoaded = exports.ensureLoaded = exports.assertLoaded = exports.kqStar = exports.kqDot = exports.kq = exports.setField = exports.isFieldSet = exports.isChangeableField = exports.getField = exports.maybeGetConstructorFromReference = exports.getConstructorFromTaggedId = exports.configureMetadata = exports.resetBootFlag = exports.ConfigApi = exports.InstanceData = exports.isEntity = exports.ConditionBuilder = exports.setCurrentlyInstantiatingEntity = exports.getInstanceData = exports.BaseEntity = exports.AliasAssigner = exports.newPgConnectionConfig = exports.internals = exports.testing = void 0;
18
+ exports.NoIdError = exports.withLoaded = exports.StubbedRelation = exports.ensureWithLoaded = exports.indexBy = exports.fail = exports.cleanStringValue = exports.assertNever = exports.asNew = exports.upsert = exports.updatePartial = exports.setRuntimeConfig = exports.ValidationErrors = void 0;
19
19
  exports.setOpts = setOpts;
20
20
  exports.setOpt = setOpt;
21
21
  exports.ensureNotDeleted = ensureNotDeleted;
@@ -33,12 +33,13 @@ const fields_1 = require("./fields");
33
33
  const getProperties_1 = require("./getProperties");
34
34
  const loadLens_1 = require("./loadLens");
35
35
  const newTestInstance_1 = require("./newTestInstance");
36
+ const partitionHint_1 = require("./preloading/partitionHint");
36
37
  const relations_1 = require("./relations");
37
38
  const AbstractRelationImpl_1 = require("./relations/AbstractRelationImpl");
38
39
  const ReactiveField_1 = require("./relations/ReactiveField");
39
40
  const ReactiveQueryField_1 = require("./relations/ReactiveQueryField");
40
41
  const utils_1 = require("./utils");
41
- exports.testing = { isAllSqlPaths: loadLens_1.isAllSqlPaths, getDefaultDependencies: defaults_1.getDefaultDependencies };
42
+ exports.testing = { isAllSqlPaths: loadLens_1.isAllSqlPaths, getDefaultDependencies: defaults_1.getDefaultDependencies, partitionHint: partitionHint_1.partitionHint };
42
43
  exports.internals = { buildWhereClause: buildUtils_1.buildWhereClause };
43
44
  var joist_utils_1 = require("joist-utils");
44
45
  Object.defineProperty(exports, "newPgConnectionConfig", { enumerable: true, get: function () { return joist_utils_1.newPgConnectionConfig; } });
@@ -108,6 +109,8 @@ Object.defineProperty(exports, "testIndex", { enumerable: true, get: function ()
108
109
  var normalizeHints_1 = require("./normalizeHints");
109
110
  Object.defineProperty(exports, "deepNormalizeHint", { enumerable: true, get: function () { return normalizeHints_1.deepNormalizeHint; } });
110
111
  Object.defineProperty(exports, "normalizeHint", { enumerable: true, get: function () { return normalizeHints_1.normalizeHint; } });
112
+ var JsonAggregatePreloader_1 = require("./preloading/JsonAggregatePreloader");
113
+ Object.defineProperty(exports, "JsonAggregatePreloader", { enumerable: true, get: function () { return JsonAggregatePreloader_1.JsonAggregatePreloader; } });
111
114
  var reactiveHints_1 = require("./reactiveHints");
112
115
  Object.defineProperty(exports, "reverseReactiveHint", { enumerable: true, get: function () { return reactiveHints_1.reverseReactiveHint; } });
113
116
  __exportStar(require("./relations"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { Entity } from "../Entity";
2
+ import { EntityMetadata } from "../EntityMetadata";
3
+ import { HintNode } from "../HintTree";
4
+ import { LoadHint, NestedLoadHint } from "../loadHints";
5
+ import { JoinResult, PreloadHydrator, PreloadPlugin } from "../plugins/PreloadPlugin";
6
+ import { ParsedFindQuery } from "../QueryParser";
7
+ /**
8
+ * A PreloadPlugin implementation that uses `CROSS LATERAL JOIN` and `json_aggregate`
9
+ * to preload/reduce a subtree of data while still being a single row of data.
10
+ */
11
+ export declare class JsonAggregatePreloader implements PreloadPlugin {
12
+ partitionHint(meta: EntityMetadata | undefined, hint: LoadHint<any>): [NestedLoadHint<any> | undefined, NestedLoadHint<any> | undefined];
13
+ addPreloading<T extends Entity>(meta: EntityMetadata, root: HintNode<T>, query: ParsedFindQuery): PreloadHydrator | undefined;
14
+ getPreloadJoins<T extends Entity>(meta: EntityMetadata, root: HintNode<T>, query: ParsedFindQuery): JoinResult[];
15
+ }
16
+ //# sourceMappingURL=JsonAggregatePreloader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonAggregatePreloader.d.ts","sourceRoot":"","sources":["../../src/preloading/JsonAggregatePreloader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAc,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAA0C,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAIzF;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,aAAa;IAC1D,aAAa,CACX,IAAI,EAAE,cAAc,GAAG,SAAS,EAChC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,GAClB,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAIrE,aAAa,CAAC,CAAC,SAAS,MAAM,EAC5B,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EACjB,KAAK,EAAE,eAAe,GACrB,eAAe,GAAG,SAAS;IA6B9B,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,GAAG,UAAU,EAAE;CAsBjH"}
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JsonAggregatePreloader = void 0;
4
+ const AliasAssigner_1 = require("../AliasAssigner");
5
+ const ConditionBuilder_1 = require("../ConditionBuilder");
6
+ const EntityManager_1 = require("../EntityManager");
7
+ const keys_1 = require("../keys");
8
+ const keywords_1 = require("../keywords");
9
+ const QueryParser_1 = require("../QueryParser");
10
+ const canPreload_1 = require("./canPreload");
11
+ const partitionHint_1 = require("./partitionHint");
12
+ /**
13
+ * A PreloadPlugin implementation that uses `CROSS LATERAL JOIN` and `json_aggregate`
14
+ * to preload/reduce a subtree of data while still being a single row of data.
15
+ */
16
+ class JsonAggregatePreloader {
17
+ partitionHint(meta, hint) {
18
+ return (0, partitionHint_1.partitionHint)(meta, hint);
19
+ }
20
+ addPreloading(meta, root, query) {
21
+ const { getAlias } = new AliasAssigner_1.AliasAssigner(query);
22
+ // Get the existing primary alias
23
+ const alias = (0, QueryParser_1.getTables)(query)[0].alias;
24
+ const joins = calcLateralJoins(getAlias, { tree: root, alias, meta }, root, alias, meta);
25
+ // If there are no sql-based preload in the hints, just return
26
+ if (joins.length === 0)
27
+ return undefined;
28
+ // Include the aggregate `books._ as books`, `comments._ as comments`
29
+ for (const { alias, join } of joins) {
30
+ query.selects.push({
31
+ sql: `${(0, keywords_1.kqDot)(alias, "_")} as ${(0, keywords_1.kq)(alias)}`,
32
+ aliases: [alias],
33
+ bindings: [],
34
+ });
35
+ query.tables.push(join);
36
+ }
37
+ return (rows, entities) => {
38
+ rows.forEach((row, i) => {
39
+ const parent = entities[i];
40
+ for (const { alias, hydrator } of joins) {
41
+ hydrator(parent, parent, row[alias] ?? []);
42
+ }
43
+ });
44
+ };
45
+ }
46
+ getPreloadJoins(meta, root, query) {
47
+ const { getAlias } = new AliasAssigner_1.AliasAssigner(query);
48
+ // Get the existing primary alias
49
+ const alias = (0, QueryParser_1.getTables)(query)[0].alias;
50
+ const joins = calcLateralJoins(getAlias, { tree: root, alias, meta }, root, alias, meta);
51
+ // If there are no sql-based preload in the hints, just return
52
+ // Adapt our json aggregate joins to the higher-level JoinResult
53
+ return joins.map((join) => {
54
+ return {
55
+ selects: [{ value: (0, keywords_1.kqDot)(join.alias, "_"), as: join.alias }],
56
+ join: join.join,
57
+ hydrator: (rows, entities) => {
58
+ rows.forEach((row, i) => {
59
+ const parent = entities[i];
60
+ join.hydrator(parent, parent, row[join.alias] ?? []);
61
+ });
62
+ },
63
+ };
64
+ });
65
+ }
66
+ }
67
+ exports.JsonAggregatePreloader = JsonAggregatePreloader;
68
+ /**
69
+ * For a given hint tree `hint`, finds all SQL-able relations and preloads them.
70
+ *
71
+ * Specifically we use `json_agg` & `json_build_array` to `CROSS LATERAL JOIN`
72
+ * children/grand children back as arbitrarily-deeply nested arrays, and then
73
+ * stash the results in the `EntityManager` `joinLoadedRelations` cache, which
74
+ * each join-instrumented relation will check before making its SQL calls.
75
+ *
76
+ * https://sqlfum.pt/?n=60&indent=2&spaces=1&simplify=1&align=0&case=lower&sql=c2VsZWN0IGEuaWQsIGIuXyBhcyBiLCBjMS5fIGFzIGMxLCBhMS5fIGFzIGExIGZyb20gYXV0aG9ycyBhIGNyb3NzIGpvaW4gbGF0ZXJhbCAoIHNlbGVjdCBqc29uX2FnZyhqc29uX2J1aWxkX2FycmF5KGIuaWQsIGIudGl0bGUsIGIuIm9yZGVyIiwgYi5kZWxldGVkX2F0LCBiLmNyZWF0ZWRfYXQsIGIudXBkYXRlZF9hdCwgYi5hdXRob3JfaWQsIGJyLl8pKSBhcyBfIGZyb20gYm9va3MgYiBjcm9zcyBqb2luIGxhdGVyYWwgKCBzZWxlY3QganNvbl9hZ2coanNvbl9idWlsZF9hcnJheShici5pZCwgYnIucmF0aW5nLCBici5pc19wdWJsaWMsIGJyLmlzX3Rlc3QsIGJyLmNyZWF0ZWRfYXQsIGJyLnVwZGF0ZWRfYXQsIGJyLmJvb2tfaWQsIGMuXykpIGFzIF8gZnJvbSBib29rX3Jldmlld3MgYnIgY3Jvc3Mgam9pbiBsYXRlcmFsICggc2VsZWN0IGpzb25fYWdnKGpzb25fYnVpbGRfYXJyYXkoYy5pZCwgYy50ZXh0LCBjLmNyZWF0ZWRfYXQsIGMudXBkYXRlZF9hdCwgYy51c2VyX2lkLCBjLnBhcmVudF9hdXRob3JfaWQsIGMucGFyZW50X2Jvb2tfaWQsIGMucGFyZW50X2Jvb2tfcmV2aWV3X2lkLCBjLnBhcmVudF9wdWJsaXNoZXJfaWQpKSBhcyBfIGZyb20gY29tbWVudHMgYyB3aGVyZSBjLnBhcmVudF9ib29rX3Jldmlld19pZCA9IGJyLmlkICkgYyB3aGVyZSBici5ib29rX2lkID0gYi5pZCApIGJyIHdoZXJlIGIuYXV0aG9yX2lkID0gYS5pZCApIGIgY3Jvc3Mgam9pbiBsYXRlcmFsICggc2VsZWN0IGpzb25fYWdnKGpzb25fYnVpbGRfYXJyYXkoYzEuaWQsIGMxLnRleHQsIGMxLmNyZWF0ZWRfYXQsIGMxLnVwZGF0ZWRfYXQsIGMxLnVzZXJfaWQsIGMxLnBhcmVudF9hdXRob3JfaWQsIGMxLnBhcmVudF9ib29rX2lkLCBjMS5wYXJlbnRfYm9va19yZXZpZXdfaWQsIGMxLnBhcmVudF9wdWJsaXNoZXJfaWQpKSBhcyBfIGZyb20gY29tbWVudHMgYzEgd2hlcmUgYzEucGFyZW50X2F1dGhvcl9pZCA9IGEuaWQgKSBjMSBjcm9zcyBqb2luIGxhdGVyYWwgKCBzZWxlY3QganNvbl9hZ2coanNvbl9idWlsZF9hcnJheShhMS5pZCwgYTEuZmlyc3RfbmFtZSwgYTEubGFzdF9uYW1lLCBhMS5zc24sIGExLmluaXRpYWxzLCBhMS5udW1iZXJfb2ZfYm9va3MsIGExLmJvb2tfY29tbWVudHMsIGExLmlzX3BvcHVsYXIsIGExLmFnZSwgYTEuZ3JhZHVhdGVkLCBhMS5uaWNrX25hbWVzLCBhMS53YXNfZXZlcl9wb3B1bGFyLCBhMS5hZGRyZXNzLCBhMS5idXNpbmVzc19hZGRyZXNzLCBhMS5xdW90ZXMsIGExLm51bWJlcl9vZl9hdG9tcywgYTEuZGVsZXRlZF9hdCwgYTEubnVtYmVyX29mX3B1YmxpY19yZXZpZXdzLCBhMS4ibnVtYmVyT2ZQdWJsaWNSZXZpZXdzMiIsIGExLnRhZ3Nfb2ZfYWxsX2Jvb2tzLCBhMS5jcmVhdGVkX2F0LCBhMS51cGRhdGVkX2F0LCBhMS5mYXZvcml0ZV9zaGFwZSwgYTEuZmF2b3JpdGVfY29sb3JzLCBhMS5tZW50b3JfaWQsIGExLmN1cnJlbnRfZHJhZnRfYm9va19pZCwgYTEuZmF2b3JpdGVfYm9va19pZCwgYTEucHVibGlzaGVyX2lkKSkgYXMgXyBmcm9tIGF1dGhvcnMgYTEgd2hlcmUgYTEuaWQgPSBhLm1lbnRvcl9pZCApIGExIHdoZXJlIGEuaWQgPSAxOw%3D%3D
77
+ */
78
+ /**
79
+ * Given a `parent` like Author, and a hint of `{ books: ..., comments: ... }`, create `CROSS JOIN LATERAL`s
80
+ * that will pull in the `books` & `comments` children.
81
+ */
82
+ function calcLateralJoins(getAlias, root, tree, parentAlias, parentMeta) {
83
+ const results = [];
84
+ // Join in SQL-able hints from parent
85
+ Object.entries(tree.hints).forEach(([key, subTree]) => {
86
+ const field = parentMeta.allFields[key];
87
+ // AsyncProperties don't have fields, which is fine, skip for now...
88
+ if (field && (0, canPreload_1.canPreload)(parentMeta, field)) {
89
+ const otherMeta = field.otherMetadata();
90
+ const otherField = otherMeta.allFields[field.otherFieldName];
91
+ // Use a prefix like `_` to avoid collisions like `InvoiceDocument` -> alias `id` -> collides with the `id` column
92
+ const otherAlias = `_${getAlias(otherMeta.tableName)}`;
93
+ // Do the recursion up-front, so we can work it into our own join/hydrator
94
+ const subJoins = calcLateralJoins(getAlias, root, subTree, otherAlias, otherMeta);
95
+ // Get all fields with serdes and flatten out the columns
96
+ const columns = Object.values(otherMeta.allFields)
97
+ .filter((f) => f.serde)
98
+ .flatMap((f) => f.serde.columns);
99
+ const selects = [
100
+ ...columns.map((c) => (0, keywords_1.kqDot)(otherAlias, c.columnName)),
101
+ // We eventually need to handle parent types/subtypes here...
102
+ // Combine any grandchilden
103
+ ...subJoins.map((sb) => (0, keywords_1.kqDot)(sb.alias, "_")),
104
+ ];
105
+ const aliasMaybeSuffix = (0, keywords_1.kq)(`${parentAlias}${field.aliasSuffix}`);
106
+ const cb = new ConditionBuilder_1.ConditionBuilder();
107
+ let m2mTable;
108
+ if (otherField.kind === "m2o") {
109
+ cb.addRawCondition({
110
+ aliases: [otherAlias, parentAlias],
111
+ condition: `${(0, keywords_1.kqDot)(otherAlias, otherField.serde.columns[0].columnName)} = ${(0, keywords_1.kqDot)(parentAlias, "id")}`,
112
+ pruneable: true,
113
+ });
114
+ }
115
+ else if (otherField.kind === "poly") {
116
+ // Get the component that points to us
117
+ // const comp = otherField.components.find((c) => getAllMetas(parentMeta).some((m) => m.cstr === c.otherMetadata().cstr)) ??
118
+ const comp = otherField.components.find((c) => parentMeta.cstr === c.otherMetadata().cstr) ??
119
+ fail(`No component found for ${field.fieldName} -> ${otherField.fieldName}`);
120
+ cb.addRawCondition({
121
+ aliases: [otherAlias, parentAlias],
122
+ condition: `${(0, keywords_1.kqDot)(otherAlias, comp.columnName)} = ${(0, keywords_1.kqDot)(parentAlias, "id")}`,
123
+ pruneable: true,
124
+ });
125
+ }
126
+ else if (otherField.kind === "o2m" || otherField.kind === "lo2m") {
127
+ cb.addRawCondition({
128
+ aliases: [otherAlias, aliasMaybeSuffix],
129
+ condition: `${(0, keywords_1.kqDot)(otherAlias, "id")} = ${aliasMaybeSuffix}.${(0, keywords_1.kq)(field.serde.columns[0].columnName)}`,
130
+ pruneable: true,
131
+ });
132
+ }
133
+ else if (otherField.kind === "o2o") {
134
+ cb.addRawCondition({
135
+ aliases: [otherAlias, aliasMaybeSuffix],
136
+ condition: `${(0, keywords_1.kqDot)(otherAlias, "id")} = ${aliasMaybeSuffix}.${(0, keywords_1.kq)(field.serde.columns[0].columnName)}`,
137
+ pruneable: true,
138
+ });
139
+ }
140
+ else if (otherField.kind === "m2m") {
141
+ const m2mAlias = getAlias(otherField.joinTableName);
142
+ // Get the m2m row's id to track in JoinRows
143
+ selects.unshift((0, keywords_1.kqDot)(m2mAlias, "id"));
144
+ m2mTable = {
145
+ join: "inner",
146
+ table: otherField.joinTableName,
147
+ alias: m2mAlias,
148
+ col1: (0, keywords_1.kqDot)(parentAlias, "id"),
149
+ col2: (0, keywords_1.kqDot)(m2mAlias, otherField.columnNames[1]),
150
+ };
151
+ cb.addRawCondition({
152
+ aliases: [m2mAlias, otherAlias],
153
+ condition: `${(0, keywords_1.kqDot)(m2mAlias, otherField.columnNames[0])} = ${(0, keywords_1.kqDot)(otherAlias, "id")}`,
154
+ pruneable: true,
155
+ });
156
+ }
157
+ else {
158
+ throw new Error(`Unsupported otherField.kind ${otherField.kind}`);
159
+ }
160
+ const needsSubSelect = subTree.entities.size !== root.tree.entities.size;
161
+ if (needsSubSelect) {
162
+ cb.addRawCondition({
163
+ aliases: [root.alias],
164
+ condition: `${(0, keywords_1.kqDot)(root.alias, "id")} = ANY(?)`,
165
+ bindings: [
166
+ [...subTree.entities]
167
+ .filter((e) => typeof e === "string" || !e.isNewEntity)
168
+ .map((e) => (0, keys_1.keyToNumber)(root.meta, typeof e === "string" ? e : e.id)),
169
+ ],
170
+ pruneable: true,
171
+ });
172
+ }
173
+ const join = {
174
+ join: "lateral",
175
+ alias: otherAlias,
176
+ // Do we need to say which alias we're coming from, to avoid having it pruned?
177
+ // ...maybe not because preloading is always on the primary table?
178
+ fromAlias: "unset",
179
+ table: otherMeta.tableName,
180
+ query: {
181
+ selects: [`json_agg(json_build_array(${selects.join(", ")}) order by ${(0, keywords_1.kq)(otherAlias)}.id) as _`],
182
+ tables: [
183
+ { join: "primary", table: otherMeta.tableName, alias: otherAlias },
184
+ ...(m2mTable ? [m2mTable] : []),
185
+ ...subJoins.map((sj) => sj.join),
186
+ ],
187
+ condition: cb.toExpressionFilter(),
188
+ orderBys: [],
189
+ },
190
+ };
191
+ const hydrator = (root, parent, arrays) => {
192
+ const { em } = root;
193
+ // If we had overlapping load hints, i.e. `author.books` for [a1, a2] and `author.comments` for [a1], and
194
+ // we're processing the arrays of comments, but for a root author like `a2` that didn't ask for our load
195
+ // hint, then skip it to keep the relation unloaded.
196
+ if (subTree.entitiesKind === "instances" && !subTree.entities.has(root))
197
+ return;
198
+ if (subTree.entitiesKind === "ids" && !subTree.entities.has(root.idTagged))
199
+ return;
200
+ // We get back an array of [[1, title], [2, title], [3, title]]
201
+ const children = arrays.map((array) => {
202
+ // If we've snuck the m2m row id into the json array, ignore it
203
+ const m2mOffset = field.kind === "m2m" ? 1 : 0;
204
+ const taggedId = (0, keys_1.keyToTaggedId)(otherMeta, array[m2mOffset]);
205
+ const entity = em.findExistingInstance(taggedId) ??
206
+ em.hydrate(otherMeta.cstr,
207
+ // Turn the array into a hash for em.hydrate
208
+ [Object.fromEntries(columns.map((c, i) => [c.columnName, c.mapFromJsonAgg(array[m2mOffset + i])]))],
209
+ // When em.refreshing this should be true?
210
+ { overwriteExisting: false })[0];
211
+ // Tell the internal JoinRow booking-keeping about this m2m row
212
+ if (field.kind === "m2m") {
213
+ const m2m = parent[key];
214
+ (0, EntityManager_1.getEmInternalApi)(em)
215
+ .joinRows(m2m)
216
+ .addExisting(m2m, array[0], parent, entity);
217
+ }
218
+ // Within each child, look for grandchildren
219
+ subJoins.forEach((sub, i) => {
220
+ // array[i] could be null if there are no grandchildren, but still call `sub` to
221
+ // process it so that we store the empty array into the em.joinLoadedRelations, to
222
+ // avoid the relation.load method later doing a SQL for rows we know are not there.
223
+ sub.hydrator(root, entity, array[m2mOffset + columns.length + i] ?? []);
224
+ });
225
+ return entity;
226
+ });
227
+ // Cache the entities so `.load`s will see them
228
+ (0, EntityManager_1.getEmInternalApi)(em).setPreloadedRelation(parent.idTagged, key, children);
229
+ };
230
+ results.push({ alias: otherAlias, join, hydrator });
231
+ }
232
+ });
233
+ return results;
234
+ }
235
+ //# sourceMappingURL=JsonAggregatePreloader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonAggregatePreloader.js","sourceRoot":"","sources":["../../src/preloading/JsonAggregatePreloader.ts"],"names":[],"mappings":";;;AAAA,oDAAiD;AACjD,0DAAuD;AAEvD,oDAAoD;AAGpD,kCAAqD;AACrD,0CAAwC;AAGxC,gDAAyF;AACzF,6CAA0C;AAC1C,mDAAgD;AAEhD;;;GAGG;AACH,MAAa,sBAAsB;IACjC,aAAa,CACX,IAAgC,EAChC,IAAmB;QAEnB,OAAO,IAAA,6BAAa,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,aAAa,CACX,IAAoB,EACpB,IAAiB,EACjB,KAAsB;QAEtB,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,6BAAa,CAAC,KAAK,CAAC,CAAC;QAE9C,iCAAiC;QACjC,MAAM,KAAK,GAAG,IAAA,uBAAS,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACxC,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACzF,8DAA8D;QAC9D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAEzC,qEAAqE;QACrE,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;YACpC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACjB,GAAG,EAAE,GAAG,IAAA,gBAAK,EAAC,KAAK,EAAE,GAAG,CAAC,OAAO,IAAA,aAAE,EAAC,KAAK,CAAC,EAAE;gBAC3C,OAAO,EAAE,CAAC,KAAK,CAAC;gBAChB,QAAQ,EAAE,EAAE;aACb,CAAC,CAAC;YACH,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;YACxB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBACtB,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC3B,KAAK,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,KAAK,EAAE,CAAC;oBACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;IAED,eAAe,CAAmB,IAAoB,EAAE,IAAiB,EAAE,KAAsB;QAC/F,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,6BAAa,CAAC,KAAK,CAAC,CAAC;QAE9C,iCAAiC;QACjC,MAAM,KAAK,GAAG,IAAA,uBAAS,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACxC,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACzF,8DAA8D;QAE9D,gEAAgE;QAChE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACxB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAA,gBAAK,EAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC5D,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;oBAC3B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;wBACtB,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC3B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBACvD,CAAC,CAAC,CAAC;gBACL,CAAC;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA/DD,wDA+DC;AAKD;;;;;;;;;GASG;AAEH;;;GAGG;AACH,SAAS,gBAAgB,CACvB,QAAuC,EACvC,IAAgE,EAChE,IAAiB,EACjB,WAAmB,EACnB,UAA0B;IAE1B,MAAM,OAAO,GAA0B,EAAE,CAAC;IAE1C,qCAAqC;IACrC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE;QACpD,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACxC,oEAAoE;QACpE,IAAI,KAAK,IAAI,IAAA,uBAAU,EAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAE7D,kHAAkH;YAClH,MAAM,UAAU,GAAG,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YAEvD,0EAA0E;YAC1E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAElF,yDAAyD;YACzD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;iBAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;iBACtB,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAM,CAAC,OAAO,CAAC,CAAC;YACpC,MAAM,OAAO,GAAG;gBACd,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,gBAAK,EAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;gBACtD,6DAA6D;gBAC7D,2BAA2B;gBAC3B,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,gBAAK,EAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;aAC9C,CAAC;YAEF,MAAM,gBAAgB,GAAG,IAAA,aAAE,EAAC,GAAG,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YAElE,MAAM,EAAE,GAAG,IAAI,mCAAgB,EAAE,CAAC;YAClC,IAAI,QAA+B,CAAC;YACpC,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC9B,EAAE,CAAC,eAAe,CAAC;oBACjB,OAAO,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;oBAClC,SAAS,EAAE,GAAG,IAAA,gBAAK,EAAC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,IAAA,gBAAK,EAAC,WAAW,EAAE,IAAI,CAAC,EAAE;oBACvG,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACtC,sCAAsC;gBACtC,4HAA4H;gBAC5H,MAAM,IAAI,GACR,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC;oBAC7E,IAAI,CAAC,0BAA0B,KAAK,CAAC,SAAS,OAAO,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC/E,EAAE,CAAC,eAAe,CAAC;oBACjB,OAAO,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;oBAClC,SAAS,EAAE,GAAG,IAAA,gBAAK,EAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,IAAA,gBAAK,EAAC,WAAW,EAAE,IAAI,CAAC,EAAE;oBAChF,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACnE,EAAE,CAAC,eAAe,CAAC;oBACjB,OAAO,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC;oBACvC,SAAS,EAAE,GAAG,IAAA,gBAAK,EAAC,UAAU,EAAE,IAAI,CAAC,MAAM,gBAAgB,IAAI,IAAA,aAAE,EAAC,KAAK,CAAC,KAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;oBACvG,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACrC,EAAE,CAAC,eAAe,CAAC;oBACjB,OAAO,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC;oBACvC,SAAS,EAAE,GAAG,IAAA,gBAAK,EAAC,UAAU,EAAE,IAAI,CAAC,MAAM,gBAAgB,IAAI,IAAA,aAAE,EAAC,KAAK,CAAC,KAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;oBACvG,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBACpD,4CAA4C;gBAC5C,OAAO,CAAC,OAAO,CAAC,IAAA,gBAAK,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;gBACvC,QAAQ,GAAG;oBACT,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,UAAU,CAAC,aAAa;oBAC/B,KAAK,EAAE,QAAQ;oBACf,IAAI,EAAE,IAAA,gBAAK,EAAC,WAAW,EAAE,IAAI,CAAC;oBAC9B,IAAI,EAAE,IAAA,gBAAK,EAAC,QAAQ,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;iBACjD,CAAC;gBACF,EAAE,CAAC,eAAe,CAAC;oBACjB,OAAO,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;oBAC/B,SAAS,EAAE,GAAG,IAAA,gBAAK,EAAC,QAAQ,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,IAAA,gBAAK,EAAC,UAAU,EAAE,IAAI,CAAC,EAAE;oBACvF,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,+BAA+B,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YACpE,CAAC;YAED,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACzE,IAAI,cAAc,EAAE,CAAC;gBACnB,EAAE,CAAC,eAAe,CAAC;oBACjB,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBACrB,SAAS,EAAE,GAAG,IAAA,gBAAK,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW;oBAChD,QAAQ,EAAE;wBACR,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;6BAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;6BACtD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,kBAAW,EAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;qBACxE;oBACD,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC;YAED,MAAM,IAAI,GAAqB;gBAC7B,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,UAAU;gBACjB,8EAA8E;gBAC9E,kEAAkE;gBAClE,SAAS,EAAE,OAAO;gBAClB,KAAK,EAAE,SAAS,CAAC,SAAS;gBAC1B,KAAK,EAAE;oBACL,OAAO,EAAE,CAAC,6BAA6B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAA,aAAE,EAAC,UAAU,CAAC,WAAW,CAAC;oBACjG,MAAM,EAAE;wBACN,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE;wBAClE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC/B,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;qBACjC;oBACD,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE;oBAClC,QAAQ,EAAE,EAAE;iBACb;aACF,CAAC;YAEF,MAAM,QAAQ,GAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;gBAC/D,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;gBAEpB,yGAAyG;gBACzG,wGAAwG;gBACxG,oDAAoD;gBACpD,IAAI,OAAO,CAAC,YAAY,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAW,CAAC;oBAAE,OAAO;gBACvF,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAe,CAAC;oBAAE,OAAO;gBAE1F,+DAA+D;gBAC/D,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oBACpC,+DAA+D;oBAC/D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/C,MAAM,QAAQ,GAAG,IAAA,oBAAa,EAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAQ,CAAE,CAAC;oBACpE,MAAM,MAAM,GACV,EAAE,CAAC,oBAAoB,CAAS,QAAQ,CAAC;wBAEvC,EAAE,CAAC,OAAO,CACR,SAAS,CAAC,IAAI;wBACd,4CAA4C;wBAC5C,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnG,0CAA0C;wBAC1C,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAE/B,CAAC,CAAC,CAAC,CAAC;oBACP,+DAA+D;oBAC/D,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;wBACzB,MAAM,GAAG,GAAI,MAAc,CAAC,GAAG,CAAC,CAAC;wBACjC,IAAA,gCAAgB,EAAC,EAAE,CAAC;6BACjB,QAAQ,CAAC,GAAG,CAAC;6BACb,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;oBACvD,CAAC;oBACD,4CAA4C;oBAC5C,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;wBAC1B,gFAAgF;wBAChF,kFAAkF;wBAClF,mFAAmF;wBACnF,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAG,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAS,IAAI,EAAE,CAAC,CAAC;oBACnF,CAAC,CAAC,CAAC;oBACH,OAAO,MAAM,CAAC;gBAChB,CAAC,CAAC,CAAC;gBACH,+CAA+C;gBAC/C,IAAA,gCAAgB,EAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC5E,CAAC,CAAC;YAEF,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { EntityMetadata, Field, ManyToManyField, ManyToOneField, OneToManyField, OneToOneField } from "../EntityMetadata";
2
+ export declare function canPreload(meta: EntityMetadata, field: Field): field is OneToManyField | ManyToOneField | ManyToManyField | OneToOneField;
3
+ //# sourceMappingURL=canPreload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canPreload.d.ts","sourceRoot":"","sources":["../../src/preloading/canPreload.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,KAAK,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,aAAa,EACd,MAAM,mBAAmB,CAAC;AAE3B,wBAAgB,UAAU,CACxB,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,KAAK,GACX,KAAK,IAAI,cAAc,GAAG,cAAc,GAAG,eAAe,GAAG,aAAa,CAa5E"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.canPreload = canPreload;
4
+ function canPreload(meta, field) {
5
+ if (field.kind === "o2m" || field.kind === "o2o" || field.kind === "m2o" || field.kind === "m2m") {
6
+ const otherMeta = field.otherMetadata();
7
+ // We don't support preloading tables with inheritance yet
8
+ if (!!otherMeta.baseType || otherMeta.subTypes.length > 0)
9
+ return false;
10
+ // If `otherField` is missing, this could be a large collection which currently can't be loaded...
11
+ const otherField = otherMeta.allFields[field.otherFieldName];
12
+ if (!otherField)
13
+ return false;
14
+ // If otherField is a poly that points to a sub/base component, we don't support that yet
15
+ if (otherField.kind === "poly" && !otherField.components.some((c) => c.otherMetadata() === meta))
16
+ return false;
17
+ return true;
18
+ }
19
+ return false;
20
+ }
21
+ //# sourceMappingURL=canPreload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canPreload.js","sourceRoot":"","sources":["../../src/preloading/canPreload.ts"],"names":[],"mappings":";;AASA,gCAgBC;AAhBD,SAAgB,UAAU,CACxB,IAAoB,EACpB,KAAY;IAEZ,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACjG,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QACxC,0DAA0D;QAC1D,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QACxE,kGAAkG;QAClG,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAC9B,yFAAyF;QACzF,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC/G,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { EntityMetadata } from "../EntityMetadata";
2
+ import { LoadHint, NestedLoadHint } from "../loadHints";
3
+ /** Partitions a hint into SQL-able and non-SQL-able hints. */
4
+ export declare function partitionHint(meta: EntityMetadata | undefined, hint: LoadHint<any>): [NestedLoadHint<any> | undefined, NestedLoadHint<any> | undefined];
5
+ //# sourceMappingURL=partitionHint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partitionHint.d.ts","sourceRoot":"","sources":["../../src/preloading/partitionHint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAKxD,8DAA8D;AAC9D,wBAAgB,aAAa,CAC3B,IAAI,EAAE,cAAc,GAAG,SAAS,EAChC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,GAClB,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAqCpE"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.partitionHint = partitionHint;
4
+ const getProperties_1 = require("../getProperties");
5
+ const normalizeHints_1 = require("../normalizeHints");
6
+ const relations_1 = require("../relations");
7
+ const canPreload_1 = require("./canPreload");
8
+ /** Partitions a hint into SQL-able and non-SQL-able hints. */
9
+ function partitionHint(meta, hint) {
10
+ let sql = undefined;
11
+ let non = undefined;
12
+ for (const [key, subHint] of Object.entries((0, normalizeHints_1.normalizeHint)(hint))) {
13
+ const field = meta?.allFields[key];
14
+ if (field && (0, canPreload_1.canPreload)(meta, field)) {
15
+ const [_sql, _non] = partitionHint(field.otherMetadata(), subHint);
16
+ deepMerge(((sql ??= {})[key] ??= {}), _sql ?? {});
17
+ if (_non)
18
+ deepMerge(((non ??= {})[key] ??= {}), _non);
19
+ }
20
+ else {
21
+ // If this isn't a raw SQL relation, but it exposes a load-hint, inline that into our SQL.
22
+ // This will get the non-SQL relation's underlying SQL data preloaded.
23
+ const p = meta && (0, getProperties_1.getProperties)(meta)[key];
24
+ if (p && p.loadHint) {
25
+ // Maybe we could have `PersistedAsyncReferenceImpl` internally/dynamically return us the right
26
+ // load hint, instead of special casing it like this? Like it could internally check "needs calc?"
27
+ if (p instanceof relations_1.ReactiveReferenceImpl) {
28
+ // Instead of using p.loadHint, we'll just follow the FK in the database and go to the subHint
29
+ const [_sql, _non] = partitionHint(p.otherMeta, subHint);
30
+ deepMerge(((sql ??= {})[key] ??= {}), _sql ?? {});
31
+ if (_non)
32
+ deepMerge(((non ??= {})[key] ??= {}), _non);
33
+ continue;
34
+ }
35
+ else {
36
+ // It's not clear what to do with the subHint here, if anything--ideally it could stitch
37
+ // on top of load hint but only in the places that made sense. But we'd risk over-fetching.
38
+ // ...also we don't want to preload ReactiveField full hint vs. just using their
39
+ // calculated values.
40
+ // const [_sql, _non] = partitionHint(meta, p.loadHint);
41
+ // if (_sql) deepMerge((sql ??= {}), _sql);
42
+ // if (_non) deepMerge((non ??= {}), _non);
43
+ }
44
+ }
45
+ // Even if we did some SQL preloads, the subHint needs to go through the non-sql path.
46
+ deepMerge(((non ??= {})[key] ??= {}), (0, normalizeHints_1.deepNormalizeHint)(subHint));
47
+ }
48
+ }
49
+ return [sql, non];
50
+ }
51
+ function deepMerge(a, b) {
52
+ for (const [key, value] of Object.entries(b)) {
53
+ deepMerge((a[key] ??= {}), value);
54
+ }
55
+ }
56
+ //# sourceMappingURL=partitionHint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partitionHint.js","sourceRoot":"","sources":["../../src/preloading/partitionHint.ts"],"names":[],"mappings":";;AAQA,sCAwCC;AA/CD,oDAAiD;AAEjD,sDAAqE;AACrE,4CAAqD;AACrD,6CAA0C;AAE1C,8DAA8D;AAC9D,SAAgB,aAAa,CAC3B,IAAgC,EAChC,IAAmB;IAEnB,IAAI,GAAG,GAAoC,SAAS,CAAC;IACrD,IAAI,GAAG,GAAoC,SAAS,CAAC;IACrD,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACjE,MAAM,KAAK,GAAG,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,IAAI,IAAA,uBAAU,EAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,OAAO,CAAC,CAAC;YACnE,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YAClD,IAAI,IAAI;gBAAE,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,0FAA0F;YAC1F,sEAAsE;YACtE,MAAM,CAAC,GAAG,IAAI,IAAI,IAAA,6BAAa,EAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACpB,+FAA+F;gBAC/F,kGAAkG;gBAClG,IAAI,CAAC,YAAY,iCAAqB,EAAE,CAAC;oBACvC,8FAA8F;oBAC9F,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBACzD,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;oBAClD,IAAI,IAAI;wBAAE,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;oBACtD,SAAS;gBACX,CAAC;qBAAM,CAAC;oBACN,wFAAwF;oBACxF,2FAA2F;oBAC3F,gFAAgF;oBAChF,qBAAqB;oBACrB,wDAAwD;oBACxD,2CAA2C;oBAC3C,2CAA2C;gBAC7C,CAAC;YACH,CAAC;YACD,sFAAsF;YACtF,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,IAAA,kCAAiB,EAAC,OAAO,CAAC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,SAAS,CAAmB,CAAI,EAAE,CAAI;IAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,SAAS,CAAC,CAAE,CAAS,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "joist-orm",
3
- "version": "1.246.2",
3
+ "version": "1.247.1",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,7 +24,7 @@
24
24
  "@types/pg": "^8.11.14",
25
25
  "ansis": "^3.15.0",
26
26
  "dataloader": "^2.2.3",
27
- "joist-utils": "1.246.2",
27
+ "joist-utils": "1.247.1",
28
28
  "knex": "^3.1.0",
29
29
  "object-hash": "^3.0.0",
30
30
  "pg": "^8.15.5",