joist-orm 1.185.2 → 1.186.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/config.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { AsyncDefault } from "./defaults";
1
2
  import { Entity } from "./Entity";
2
3
  import { EntityField, FieldsOf, Loaded, LoadHint, MaybeAbstractEntityConstructor, Reacted, ReactiveHint, RelationsIn, SettableFields } from "./index";
3
4
  import { ValidationRule, ValidationRuleInternal } from "./rules";
@@ -127,7 +128,11 @@ export declare class ConfigData<T extends Entity, C> {
127
128
  /** Synchronous defaults for this entity type, invoked on `em.create`. */
128
129
  syncDefaults: Record<string, ((entity: T) => void) | unknown>;
129
130
  /** Asynchronous defaults for this entity type, invoked on `em.flush`. */
130
- asyncDefaults: Record<string, (entity: T, ctx: C) => MaybePromise<T>>;
131
+ asyncDefaults: Record<string, AsyncDefault<T>>;
132
+ /** Asynchronous defaults organized by dependent-level for parallel loading. */
133
+ asyncDefaultsByLevel: AsyncDefault<T>[][];
134
+ /** All fields in order of default dependencies. */
135
+ fieldsInOrder: string[];
131
136
  reactiveRules: ReactiveRule[];
132
137
  reactiveDerivedValues: ReactiveField[];
133
138
  cascadeDeleteFields: Array<keyof RelationsIn<T>>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/build/config.js CHANGED
@@ -4,6 +4,7 @@ exports.ConfigData = exports.ConfigApi = exports.constraintNameToValidationError
4
4
  exports.setBooted = setBooted;
5
5
  exports.resetBootFlag = resetBootFlag;
6
6
  exports.getCallerName = getCallerName;
7
+ const defaults_1 = require("./defaults");
7
8
  const index_1 = require("./index");
8
9
  const reactiveHints_1 = require("./reactiveHints");
9
10
  exports.constraintNameToValidationError = {};
@@ -108,12 +109,7 @@ class ConfigApi {
108
109
  if (fn) {
109
110
  // If we're called once by the codegen, and again by the user, override the syncDefault
110
111
  delete this.__data.syncDefaults[fieldName];
111
- this.__data.asyncDefaults[fieldName] = async (entity, ctx) => {
112
- // Ideally we'd convert this once outside `fn`, but we don't have `metadata` yet
113
- const loadHint = (0, reactiveHints_1.convertToLoadHint)((0, index_1.getMetadata)(entity), hintOrFnOrValue);
114
- const loaded = await entity.em.populate(entity, loadHint);
115
- return fn(loaded, ctx);
116
- };
112
+ this.__data.asyncDefaults[fieldName] = new defaults_1.AsyncDefault(fieldName, hintOrFnOrValue, fn);
117
113
  }
118
114
  else {
119
115
  this.__data.syncDefaults[fieldName] = hintOrFnOrValue;
@@ -173,6 +169,10 @@ class ConfigData {
173
169
  syncDefaults = {};
174
170
  /** Asynchronous defaults for this entity type, invoked on `em.flush`. */
175
171
  asyncDefaults = {};
172
+ /** Asynchronous defaults organized by dependent-level for parallel loading. */
173
+ asyncDefaultsByLevel = [];
174
+ /** All fields in order of default dependencies. */
175
+ fieldsInOrder = [];
176
176
  // An array of the reactive rules that depend on this entity
177
177
  reactiveRules = [];
178
178
  // An array of the reactive fields that depend on this entity
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,8BAA8B,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAA+B,MAAM,kBAAkB,CAAC;AAK/E,OAAO,EAAyB,SAAS,EAAE,MAAM,aAAa,CAAC;AAW/D,yEAAyE;AACzE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,CAQ/D;AAQD,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,QAAQ,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAG5F;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAErE;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAEnE;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,GAC5D,8BAA8B,CAAC,GAAG,CAAC,GAAG,SAAS,CAGjD"}
1
+ {"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,8BAA8B,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAA+B,MAAM,kBAAkB,CAAC;AAK/E,OAAO,EAAyB,SAAS,EAAE,MAAM,aAAa,CAAC;AAa/D,yEAAyE;AACzE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,CAS/D;AAQD,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,QAAQ,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAG5F;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAErE;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAEnE;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,GAC5D,8BAA8B,CAAC,GAAG,CAAC,GAAG,SAAS,CAGjD"}
@@ -1,4 +1,7 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.configureMetadata = configureMetadata;
4
7
  exports.getConstructorFromTaggedId = getConstructorFromTaggedId;
@@ -14,6 +17,8 @@ const ReactiveQueryField_1 = require("./relations/ReactiveQueryField");
14
17
  const rules_1 = require("./rules");
15
18
  const serde_1 = require("./serde");
16
19
  const utils_1 = require("./utils");
20
+ // @ts-ignore
21
+ const batching_toposort_1 = __importDefault(require("batching-toposort"));
17
22
  const tagToConstructorMap = new Map();
18
23
  const tableToMetaMap = new Map();
19
24
  const typeToMetaMap = new Map();
@@ -26,6 +31,7 @@ function configureMetadata(metas) {
26
31
  hookUpBaseTypeAndSubTypes(metas);
27
32
  reverseIndexReactivity(metas);
28
33
  populatePolyComponentFields(metas);
34
+ sortFieldsBySetDefaultHints(metas);
29
35
  }
30
36
  function fireAfterMetadatas(metas) {
31
37
  for (const meta of metas) {
@@ -72,6 +78,30 @@ function setImmutableFields(metas) {
72
78
  });
73
79
  }
74
80
  }
81
+ // Order fields based on setDefault dependencies
82
+ function sortFieldsBySetDefaultHints(metas) {
83
+ for (const meta of metas) {
84
+ // Put every field into the dag of { dependency: dependents[] }
85
+ const dag = {};
86
+ for (const fieldName of Object.keys(meta.allFields)) {
87
+ dag[fieldName] ??= [];
88
+ // ...if `fieldName` is from a base type, this won't technically find it
89
+ const df = meta.config.__data.asyncDefaults[fieldName];
90
+ if (df)
91
+ for (const dep of df.dependsOn)
92
+ (dag[dep] ??= []).push(fieldName);
93
+ }
94
+ // [[a, b], [c, d]]
95
+ const levels = (0, batching_toposort_1.default)(dag);
96
+ meta.config.__data.asyncDefaultsByLevel = levels
97
+ .map((level) => {
98
+ return level.map((fieldName) => meta.config.__data.asyncDefaults[fieldName]).filter((df) => !!df);
99
+ })
100
+ .filter((level) => level.length > 0);
101
+ // [a, b, c, d]
102
+ meta.config.__data.fieldsInOrder = levels.flat();
103
+ }
104
+ }
75
105
  // Setup subTypes/baseTypes
76
106
  function hookUpBaseTypeAndSubTypes(metas) {
77
107
  const metaByName = metas.reduce((acc, m) => {
@@ -1 +1 @@
1
- {"version":3,"file":"configure.js","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configure.js","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,20 @@
1
1
  import { Entity } from "./Entity";
2
2
  import { EntityMetadata } from "./EntityMetadata";
3
3
  import { Todo } from "./Todo";
4
+ import { ReactiveHint } from "./reactiveHints";
4
5
  export declare function hasDefaultValue(meta: EntityMetadata, fieldName: string): boolean;
5
6
  /** Run the sync defaults for `entity`. */
6
7
  export declare function setSyncDefaults(entity: Entity): void;
7
8
  /** Runs the async defaults for all inserted entities in `todos`. */
8
9
  export declare function setAsyncDefaults(ctx: unknown, todos: Record<string, Todo>): Promise<unknown>;
10
+ /** Wraps the hint + lambda of an async `setDefault`. */
11
+ export declare class AsyncDefault<T extends Entity> {
12
+ #private;
13
+ readonly fieldName: string;
14
+ constructor(fieldName: string, fieldHint: ReactiveHint<T>, fn: (entity: T, ctx: any) => any);
15
+ /** Return the immediate, sibling fields we depend on. */
16
+ get dependsOn(): string[];
17
+ /** For the given `entity`, returns what the default value should be. */
18
+ getValue(entity: T, ctx: any): Promise<any>;
19
+ }
9
20
  //# sourceMappingURL=defaults.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAoD,MAAM,kBAAkB,CAAC;AACpG,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAI9B,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAIhF;AAED,0CAA0C;AAC1C,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAqBpD;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAiB5F"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAoD,MAAM,kBAAkB,CAAC;AACpG,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B,OAAO,EAAqB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGlE,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAIhF;AAED,0CAA0C;AAC1C,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAqBpD;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA4B5F;AAED,wDAAwD;AACxD,qBAAa,YAAY,CAAC,CAAC,SAAS,MAAM;;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAKf,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG;IAM3F,yDAAyD;IACzD,IAAI,SAAS,IAAI,MAAM,EAAE,CAGxB;IAED,wEAAwE;IACxE,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAK5C"}
package/build/defaults.js CHANGED
@@ -1,10 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AsyncDefault = void 0;
3
4
  exports.hasDefaultValue = hasDefaultValue;
4
5
  exports.setSyncDefaults = setSyncDefaults;
5
6
  exports.setAsyncDefaults = setAsyncDefaults;
6
7
  const EntityMetadata_1 = require("./EntityMetadata");
7
8
  const fields_1 = require("./fields");
9
+ const normalizeHints_1 = require("./normalizeHints");
10
+ const reactiveHints_1 = require("./reactiveHints");
8
11
  const index_1 = require("./relations/index");
9
12
  function hasDefaultValue(meta, fieldName) {
10
13
  return (0, EntityMetadata_1.getBaseAndSelfMetas)(meta).some((m) => fieldName in m.config.__data.syncDefaults || fieldName in m.config.__data.asyncDefaults);
@@ -36,14 +39,50 @@ function setSyncDefaults(entity) {
36
39
  }
37
40
  /** Runs the async defaults for all inserted entities in `todos`. */
38
41
  function setAsyncDefaults(ctx, todos) {
39
- return Promise.all(Object.values(todos).flatMap((todo) => todo.inserts.flatMap((entity) => (0, EntityMetadata_1.getBaseAndSelfMetas)((0, EntityMetadata_1.getMetadata)(entity)).flatMap((m) => Object.entries(m.config.__data.asyncDefaults).map(async ([fieldName, fn]) => {
40
- const value = entity[fieldName];
41
- if (value === undefined) {
42
- entity[fieldName] = await fn(entity, ctx);
42
+ // For inheritance, we want our sort to be across-subtypes, i.e. a Child.foo depends on a Parent.bar field
43
+ // It would be nice if `meta.config.data.__asyncDefaults` ended up with all DFs from the type + base types
44
+ // When setting defaults, we probably want per-subtype Todos, as then we could bulk `em.populate(...subtypes..., fieldHint)`
45
+ // It's tempting to create a single `fieldHint`, but which fields will need defaults will change from
46
+ // flush to flush, and entity to entity.
47
+ return Promise.all(Object.values(todos).flatMap((todo) =>
48
+ // Would probably be good to bulk `em.populate` all the entities at once, instead of dataloader-ing them back together
49
+ todo.inserts.flatMap((entity) => (0, EntityMetadata_1.getBaseAndSelfMetas)((0, EntityMetadata_1.getMetadata)(entity)).flatMap(async (m) => {
50
+ // Apply defaults by level, for defaults by depend on another
51
+ for await (const level of m.config.__data.asyncDefaultsByLevel) {
52
+ await Promise.all(level.map(async (df) => {
53
+ const value = entity[df.fieldName];
54
+ if (value === undefined) {
55
+ entity[df.fieldName] = await df.getValue(entity, ctx);
56
+ }
57
+ else if ((0, index_1.isLoadedReference)(value) && !value.isSet) {
58
+ value.set(await df.getValue(entity, ctx));
59
+ }
60
+ }));
43
61
  }
44
- else if ((0, index_1.isLoadedReference)(value) && !value.isSet) {
45
- value.set(await fn(entity, ctx));
46
- }
47
- })))));
62
+ }))));
63
+ }
64
+ /** Wraps the hint + lambda of an async `setDefault`. */
65
+ class AsyncDefault {
66
+ fieldName;
67
+ #fieldHint;
68
+ #loadHint;
69
+ #fn;
70
+ constructor(fieldName, fieldHint, fn) {
71
+ this.fieldName = fieldName;
72
+ this.#fieldHint = fieldHint;
73
+ this.#fn = fn;
74
+ }
75
+ /** Return the immediate, sibling fields we depend on. */
76
+ get dependsOn() {
77
+ // i.e. `{ author: { firstName }, title: {}` -> `[author, title]`
78
+ return Object.keys((0, normalizeHints_1.normalizeHint)(this.#fieldHint));
79
+ }
80
+ /** For the given `entity`, returns what the default value should be. */
81
+ getValue(entity, ctx) {
82
+ // We can't convert this until now, since it requires the `metadata`
83
+ this.#loadHint ??= (0, reactiveHints_1.convertToLoadHint)((0, EntityMetadata_1.getMetadata)(entity), this.#fieldHint);
84
+ return entity.em.populate(entity, this.#loadHint).then((loaded) => this.#fn(loaded, ctx));
85
+ }
48
86
  }
87
+ exports.AsyncDefault = AsyncDefault;
49
88
  //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "joist-orm",
3
- "version": "1.185.2",
3
+ "version": "1.186.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -21,8 +21,9 @@
21
21
  "dependencies": {
22
22
  "@types/object-hash": "^3.0.6",
23
23
  "ansis": "^3.2.0",
24
+ "batching-toposort": "^1.2.0",
24
25
  "dataloader": "^2.2.2",
25
- "joist-utils": "1.185.2",
26
+ "joist-utils": "1.186.0",
26
27
  "knex": "^3.1.0",
27
28
  "object-hash": "^3.0.0",
28
29
  "pg": "^8.12.0",