joist-orm 1.0.684 → 1.0.688

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.
Files changed (41) hide show
  1. package/build/src/EntityManager.d.ts +12 -55
  2. package/build/src/EntityManager.js +13 -14
  3. package/build/src/EntityManager.js.map +1 -1
  4. package/build/src/QueryBuilder.js +23 -25
  5. package/build/src/QueryBuilder.js.map +1 -1
  6. package/build/src/config.d.ts +2 -1
  7. package/build/src/config.js.map +1 -1
  8. package/build/src/createOrUpdatePartial.js +4 -4
  9. package/build/src/createOrUpdatePartial.js.map +1 -1
  10. package/build/src/drivers/InMemoryDriver.d.ts +1 -2
  11. package/build/src/drivers/InMemoryDriver.js +18 -10
  12. package/build/src/drivers/InMemoryDriver.js.map +1 -1
  13. package/build/src/drivers/PostgresDriver.d.ts +2 -2
  14. package/build/src/drivers/PostgresDriver.js +18 -19
  15. package/build/src/drivers/PostgresDriver.js.map +1 -1
  16. package/build/src/index.d.ts +1 -0
  17. package/build/src/index.js +9 -7
  18. package/build/src/index.js.map +1 -1
  19. package/build/src/loaded.d.ts +49 -0
  20. package/build/src/loaded.js +9 -0
  21. package/build/src/loaded.js.map +1 -0
  22. package/build/src/newTestInstance.d.ts +2 -1
  23. package/build/src/newTestInstance.js +3 -3
  24. package/build/src/newTestInstance.js.map +1 -1
  25. package/build/src/relations/PolymorphicReference.js +1 -1
  26. package/build/src/relations/PolymorphicReference.js.map +1 -1
  27. package/build/src/relations/hasAsyncProperty.d.ts +3 -2
  28. package/build/src/relations/hasAsyncProperty.js +3 -1
  29. package/build/src/relations/hasAsyncProperty.js.map +1 -1
  30. package/build/src/relations/hasManyDerived.d.ts +2 -1
  31. package/build/src/relations/hasManyDerived.js.map +1 -1
  32. package/build/src/relations/hasOneDerived.d.ts +3 -2
  33. package/build/src/relations/hasOneDerived.js.map +1 -1
  34. package/build/src/reverseHint.d.ts +2 -1
  35. package/build/src/reverseHint.js +2 -2
  36. package/build/src/reverseHint.js.map +1 -1
  37. package/build/src/serde.d.ts +75 -39
  38. package/build/src/serde.js +70 -55
  39. package/build/src/serde.js.map +1 -1
  40. package/build/tsconfig.tsbuildinfo +1 -1
  41. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"PolymorphicReference.js","sourceRoot":"","sources":["../../../src/relations/PolymorphicReference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PolymorphicReference.js","sourceRoot":"","sources":["../../../src/relations/PolymorphicReference.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { Entity, Loaded, LoadHint } from "../EntityManager";
1
+ import { Entity } from "../EntityManager";
2
+ import { Loaded, LoadHint } from "../loaded";
2
3
  declare const I: unique symbol;
3
4
  export interface AsyncProperty<T extends Entity, V> {
4
5
  isLoaded: boolean;
@@ -16,7 +17,7 @@ export interface LoadedProperty<T extends Entity, V> {
16
17
  * But if `someProperty` is used as a populate hint, then it can be accessed synchronously,
17
18
  * with `someProperty.get`.
18
19
  */
19
- export declare function hasAsyncProperty<T extends Entity, H extends LoadHint<T>, V>(entity: T, loadHint: H, fn: (entity: Loaded<T, H>) => V): AsyncProperty<T, V>;
20
+ export declare function hasAsyncProperty<T extends Entity, H extends LoadHint<T>, V>(loadHint: H, fn: (entity: Loaded<T, H>) => V): AsyncProperty<T, V>;
20
21
  export declare class AsyncPropertyImpl<T extends Entity, H extends LoadHint<T>, V> implements AsyncProperty<T, V> {
21
22
  private entity;
22
23
  private loadHint;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isLoadedAsyncProperty = exports.isAsyncProperty = exports.AsyncPropertyImpl = exports.hasAsyncProperty = void 0;
4
+ const EntityManager_1 = require("../EntityManager");
4
5
  const index_1 = require("../index");
5
6
  const I = Symbol();
6
7
  /**
@@ -11,7 +12,8 @@ const I = Symbol();
11
12
  * But if `someProperty` is used as a populate hint, then it can be accessed synchronously,
12
13
  * with `someProperty.get`.
13
14
  */
14
- function hasAsyncProperty(entity, loadHint, fn) {
15
+ function hasAsyncProperty(loadHint, fn) {
16
+ const entity = EntityManager_1.currentlyInstantiatingEntity;
15
17
  return new AsyncPropertyImpl(entity, loadHint, fn);
16
18
  }
17
19
  exports.hasAsyncProperty = hasAsyncProperty;
@@ -1 +1 @@
1
- {"version":3,"file":"hasAsyncProperty.js","sourceRoot":"","sources":["../../../src/relations/hasAsyncProperty.ts"],"names":[],"mappings":";;;AACA,oCAAiC;AAEjC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;AAYnB;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAC9B,MAAS,EACT,QAAW,EACX,EAA+B;IAE/B,OAAO,IAAI,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrD,CAAC;AAND,4CAMC;AAED,MAAa,iBAAiB;IAG5B,YAAoB,MAAS,EAAU,QAAW,EAAU,EAA+B;QAAvE,WAAM,GAAN,MAAM,CAAG;QAAU,aAAQ,GAAR,QAAQ,CAAG;QAAU,OAAE,GAAF,EAAE,CAA6B;QAFnF,WAAM,GAAG,KAAK,CAAC;IAEuE,CAAC;IAE/F,IAAI;QACF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,WAAW,KAAhB,IAAI,CAAC,WAAW,GAAK,IAAA,aAAK,EAAC,MAAM,CAAC;iBACvC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;iBAC1B,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC,CAAC,EAAC,CAAC;SACP;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,GAAG;QACL,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;QAC5B,OAAO,EAAE,CAAC,MAAsB,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AA1BD,8CA0BC;AAED,iFAAiF;AACjF,SAAgB,eAAe,CAAC,kBAAuB;IACrD,OAAO,kBAAkB,YAAY,iBAAiB,CAAC;AACzD,CAAC;AAFD,0CAEC;AAED,uFAAuF;AACvF,SAAgB,qBAAqB,CACnC,kBAAuB;IAEvB,OAAO,eAAe,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC;AAC5E,CAAC;AAJD,sDAIC"}
1
+ {"version":3,"file":"hasAsyncProperty.js","sourceRoot":"","sources":["../../../src/relations/hasAsyncProperty.ts"],"names":[],"mappings":";;;AAAA,oDAAwE;AACxE,oCAAiC;AAGjC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;AAYnB;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAC9B,QAAW,EACX,EAA+B;IAE/B,MAAM,MAAM,GAAG,4CAAiC,CAAC;IACjD,OAAO,IAAI,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrD,CAAC;AAND,4CAMC;AAED,MAAa,iBAAiB;IAG5B,YAAoB,MAAS,EAAU,QAAW,EAAU,EAA+B;QAAvE,WAAM,GAAN,MAAM,CAAG;QAAU,aAAQ,GAAR,QAAQ,CAAG;QAAU,OAAE,GAAF,EAAE,CAA6B;QAFnF,WAAM,GAAG,KAAK,CAAC;IAEuE,CAAC;IAE/F,IAAI;QACF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,WAAW,KAAhB,IAAI,CAAC,WAAW,GAAK,IAAA,aAAK,EAAC,MAAM,CAAC;iBACvC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;iBAC1B,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC,CAAC,EAAC,CAAC;SACP;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,GAAG;QACL,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;QAC5B,OAAO,EAAE,CAAC,MAAsB,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AA1BD,8CA0BC;AAED,iFAAiF;AACjF,SAAgB,eAAe,CAAC,kBAAuB;IACrD,OAAO,kBAAkB,YAAY,iBAAiB,CAAC;AACzD,CAAC;AAFD,0CAEC;AAED,uFAAuF;AACvF,SAAgB,qBAAqB,CACnC,kBAAuB;IAEvB,OAAO,eAAe,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC;AAC5E,CAAC;AAJD,sDAIC"}
@@ -1,5 +1,6 @@
1
1
  import { Collection } from "../";
2
- import { Entity, Loaded, LoadHint } from "../EntityManager";
2
+ import { Entity } from "../EntityManager";
3
+ import { Loaded, LoadHint } from "../loaded";
3
4
  declare type HasManyDerivedOpts<T extends Entity, U extends Entity, H extends LoadHint<T>> = {
4
5
  load?: (entity: T) => Promise<any>;
5
6
  get: (entity: Loaded<T, H>) => readonly U[];
@@ -1 +1 @@
1
- {"version":3,"file":"hasManyDerived.js","sourceRoot":"","sources":["../../../src/relations/hasManyDerived.ts"],"names":[],"mappings":";;;AAAA,2BAAsE;AAEtE,yDAAsD;AAUtD;;;;;;GAMG;AACH,SAAgB,cAAc,CAC5B,QAAW,EACX,IAAiC;IAEjC,MAAM,MAAM,GAAM,gCAAiC,CAAC;IACpD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAC/B,OAAO,IAAI,mCAAgB,CAAO,MAAM,EAAE;QACxC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,SAAK,EAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpE,GAAI,IAAY;KACjB,CAAC,CAAC;AACL,CAAC;AAVD,wCAUC"}
1
+ {"version":3,"file":"hasManyDerived.js","sourceRoot":"","sources":["../../../src/relations/hasManyDerived.ts"],"names":[],"mappings":";;;AAAA,2BAAsE;AAGtE,yDAAsD;AAUtD;;;;;;GAMG;AACH,SAAgB,cAAc,CAC5B,QAAW,EACX,IAAiC;IAEjC,MAAM,MAAM,GAAM,gCAAiC,CAAC;IACpD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAC/B,OAAO,IAAI,mCAAgB,CAAO,MAAM,EAAE;QACxC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,SAAK,EAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpE,GAAI,IAAY;KACjB,CAAC,CAAC;AACL,CAAC;AAVD,wCAUC"}
@@ -1,5 +1,6 @@
1
- import { Reference } from "../";
2
- import { Entity, Loaded, LoadHint } from "../EntityManager";
1
+ import { Entity } from "../EntityManager";
2
+ import { Loaded, LoadHint } from "../loaded";
3
+ import { Reference } from "./Reference";
3
4
  /**
4
5
  * Creates a CustomReference that can conditionally walk across references in the object graph.
5
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"hasOneDerived.js","sourceRoot":"","sources":["../../../src/relations/hasOneDerived.ts"],"names":[],"mappings":";;;AAAA,2BAAqE;AAErE,uDAAoD;AAEpD;;;;;;GAMG;AACH,SAAgB,aAAa,CAM3B,QAAW,EAAE,GAAgC;IAC7C,MAAM,MAAM,GAAM,gCAAiC,CAAC;IACpD,OAAO,IAAI,iCAAe,CAAU,MAAM,EAAE;QAC1C,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACrB,MAAM,IAAA,SAAK,EAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACjD,CAAC;QACD,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAsB,CAAC;KACvC,CAAC,CAAC;AACL,CAAC;AAdD,sCAcC"}
1
+ {"version":3,"file":"hasOneDerived.js","sourceRoot":"","sources":["../../../src/relations/hasOneDerived.ts"],"names":[],"mappings":";;;AAAA,2BAA0D;AAG1D,uDAAoD;AAGpD;;;;;;GAMG;AACH,SAAgB,aAAa,CAM3B,QAAW,EAAE,GAAgC;IAC7C,MAAM,MAAM,GAAM,gCAAiC,CAAC;IACpD,OAAO,IAAI,iCAAe,CAAU,MAAM,EAAE;QAC1C,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACrB,MAAM,IAAA,SAAK,EAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACjD,CAAC;QACD,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAsB,CAAC;KACvC,CAAC,CAAC;AACL,CAAC;AAdD,sCAcC"}
@@ -1,4 +1,5 @@
1
- import { Entity, EntityConstructor, LoadHint } from "./EntityManager";
1
+ import { Entity, EntityConstructor } from "./EntityManager";
2
+ import { LoadHint } from "./loaded";
2
3
  /**
3
4
  * Given a load hint of "given an entity, load these N things", return an array
4
5
  * of what those N things are, and reversed load hints to "come back" to the
@@ -13,7 +13,7 @@ function reverseHint(entityType, hint) {
13
13
  // For a simple string hint, i.e. Book "author", find the Book.author field,
14
14
  // and use the metdata to find the otherFieldName, i.e. Author "books"
15
15
  const meta = (0, EntityManager_1.getMetadata)(entityType);
16
- const field = meta.fields.find((f) => f.fieldName === hint) || (0, utils_1.fail)(`Invalid hint ${entityType.name} ${JSON.stringify(hint)}`);
16
+ const field = meta.fields[hint] || (0, utils_1.fail)(`Invalid hint ${entityType.name} ${JSON.stringify(hint)}`);
17
17
  if (field.kind !== "m2m" && field.kind !== "m2o" && field.kind !== "o2m" && field.kind !== "o2o") {
18
18
  throw new Error("Invalid hint");
19
19
  }
@@ -31,7 +31,7 @@ function reverseHint(entityType, hint) {
31
31
  // key in the hash, and then combine
32
32
  return Object.entries(hint).flatMap(([key, hint]) => {
33
33
  const meta = (0, EntityManager_1.getMetadata)(entityType);
34
- const field = meta.fields.find((f) => f.fieldName === key) || (0, utils_1.fail)(`Invalid hint ${entityType.name} ${JSON.stringify(hint)}`);
34
+ const field = meta.fields[key] || (0, utils_1.fail)(`Invalid hint ${entityType.name} ${JSON.stringify(hint)}`);
35
35
  if (field.kind !== "m2m" && field.kind !== "m2o" && field.kind !== "o2m" && field.kind !== "o2o") {
36
36
  throw new Error("Invalid hint");
37
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reverseHint.js","sourceRoot":"","sources":["../../src/reverseHint.ts"],"names":[],"mappings":";;;AAAA,mDAAmF;AACnF,mCAA+B;AAE/B;;;;GAIG;AACH,SAAgB,WAAW,CACzB,UAAgC,EAChC,IAAiB;IAEjB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,4EAA4E;QAC5E,sEAAsE;QACtE,MAAM,IAAI,GAAG,IAAA,2BAAW,EAAC,UAAU,CAAC,CAAC;QACrC,MAAM,KAAK,GACT,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,IAAA,YAAI,EAAC,gBAAgB,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnH,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;YAChG,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;SACjC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QACxC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;KACnD;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC9B,uEAAuE;QACvE,uEAAuE;QACvE,wBAAwB;QACxB,OAAQ,IAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,IAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;KACtF;SAAM;QACL,wEAAwE;QACxE,oCAAoC;QACpC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;YAClD,MAAM,IAAI,GAAG,IAAA,2BAAW,EAAC,UAAU,CAAC,CAAC;YACrC,MAAM,KAAK,GACT,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,IAAI,IAAA,YAAI,EAAC,gBAAgB,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClH,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;gBAChG,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;aACjC;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;YACxC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAuC,CAAC;YAC1F,OAAO;gBACL,EAAE;gBACF,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE;oBACrD,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,CAAuC,CAAC;gBACpF,CAAC,CAAC;aACH,CAAC;QACJ,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;AAxCD,kCAwCC"}
1
+ {"version":3,"file":"reverseHint.js","sourceRoot":"","sources":["../../src/reverseHint.ts"],"names":[],"mappings":";;;AAAA,mDAAyE;AAEzE,mCAA+B;AAE/B;;;;GAIG;AACH,SAAgB,WAAW,CACzB,UAAgC,EAChC,IAAiB;IAEjB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,4EAA4E;QAC5E,sEAAsE;QACtE,MAAM,IAAI,GAAG,IAAA,2BAAW,EAAC,UAAU,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAA,YAAI,EAAC,gBAAgB,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnG,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;YAChG,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;SACjC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QACxC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;KACnD;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC9B,uEAAuE;QACvE,uEAAuE;QACvE,wBAAwB;QACxB,OAAQ,IAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,IAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;KACtF;SAAM;QACL,wEAAwE;QACxE,oCAAoC;QACpC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;YAClD,MAAM,IAAI,GAAG,IAAA,2BAAW,EAAC,UAAU,CAAC,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAA,YAAI,EAAC,gBAAgB,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClG,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;gBAChG,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;aACjC;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;YACxC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAuC,CAAC;YAC1F,OAAO;gBACL,EAAE;gBACF,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE;oBACrD,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,CAAuC,CAAC;gBACpF,CAAC,CAAC;aACH,CAAC;QACJ,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;AAtCD,kCAsCC"}
@@ -1,17 +1,40 @@
1
+ import { Field, SerdeField } from "./EntityManager";
1
2
  import { EntityMetadata } from "./index";
2
- export interface ColumnSerde {
3
+ export declare function hasSerde(field: Field): field is SerdeField;
4
+ /**
5
+ * The database/column serialization / deserialization details of a given field.
6
+ *
7
+ * Most implementations will have just a single column in `columns`, but some logical
8
+ * domain fields can be mapped to multiple physical database columns, i.e. polymorphic
9
+ * references.
10
+ */
11
+ export interface FieldSerde {
12
+ /** A single field might persist to multiple columns, i.e. polymorphic references. */
13
+ columns: Column[];
14
+ /**
15
+ * Accepts a database `row` and sets the field's value(s) into the `__orm.data`.
16
+ *
17
+ * Used in EntityManager.hydrate to set row value on the entity
18
+ */
3
19
  setOnEntity(data: any, row: any): void;
4
- setOnRow(data: any, row: any): void;
5
- getFromEntity(data: any): any;
20
+ }
21
+ /** A specific physical column of a logical field. */
22
+ export interface Column {
23
+ columnName: string;
24
+ dbType: string;
25
+ dbValue(data: any): any;
6
26
  mapToDb(value: any): any;
27
+ isArray: boolean;
7
28
  }
8
- export declare class SimpleSerde implements ColumnSerde {
29
+ export declare class PrimitiveSerde implements FieldSerde {
9
30
  private fieldName;
10
- private columnName;
11
- constructor(fieldName: string, columnName: string);
31
+ columnName: string;
32
+ dbType: string;
33
+ isArray: boolean;
34
+ columns: this[];
35
+ constructor(fieldName: string, columnName: string, dbType: string);
12
36
  setOnEntity(data: any, row: any): void;
13
- setOnRow(data: any, row: any): void;
14
- getFromEntity(data: any): any;
37
+ dbValue(data: any): any;
15
38
  mapToDb(value: any): any;
16
39
  }
17
40
  /**
@@ -23,75 +46,88 @@ export declare class SimpleSerde implements ColumnSerde {
23
46
  * Also note that knex/pg accept `number`s as input, so we only need
24
47
  * to handle from-database -> to JS translation.
25
48
  */
26
- export declare class DecimalToNumberSerde implements ColumnSerde {
49
+ export declare class DecimalToNumberSerde implements FieldSerde {
27
50
  private fieldName;
28
- private columnName;
51
+ columnName: string;
52
+ dbType: string;
53
+ isArray: boolean;
54
+ columns: this[];
29
55
  constructor(fieldName: string, columnName: string);
30
56
  setOnEntity(data: any, row: any): void;
31
- setOnRow(data: any, row: any): void;
32
- getFromEntity(data: any): any;
57
+ dbValue(data: any): any;
33
58
  mapToDb(value: any): any;
34
59
  }
35
60
  /** Maps integer primary keys ot strings "because GraphQL". */
36
- export declare class PrimaryKeySerde implements ColumnSerde {
61
+ export declare class PrimaryKeySerde implements FieldSerde {
37
62
  private meta;
38
63
  private fieldName;
39
- private columnName;
64
+ columnName: string;
65
+ dbType: string;
66
+ isArray: boolean;
67
+ columns: this[];
40
68
  constructor(meta: () => EntityMetadata<any>, fieldName: string, columnName: string);
41
69
  setOnEntity(data: any, row: any): void;
42
- setOnRow(data: any, row: any): void;
43
- getFromEntity(data: any): number;
70
+ dbValue(data: any): number;
44
71
  mapToDb(value: any): number | undefined;
45
72
  }
46
- export declare class ForeignKeySerde implements ColumnSerde {
73
+ export declare class ForeignKeySerde implements FieldSerde {
47
74
  private fieldName;
48
- private columnName;
75
+ columnName: string;
49
76
  otherMeta: () => EntityMetadata<any>;
77
+ dbType: string;
78
+ isArray: boolean;
79
+ columns: this[];
50
80
  constructor(fieldName: string, columnName: string, otherMeta: () => EntityMetadata<any>);
51
81
  setOnEntity(data: any, row: any): void;
52
- setOnRow(data: any, row: any): void;
53
- getFromEntity(data: any): number | undefined;
82
+ dbValue(data: any): number | undefined;
54
83
  mapToDb(value: any): any;
55
84
  }
56
- export declare class PolymorphicKeySerde implements ColumnSerde {
85
+ export declare class PolymorphicKeySerde implements FieldSerde {
86
+ private meta;
57
87
  private fieldName;
58
- private columnName;
59
- otherMeta: () => EntityMetadata<any>;
60
- constructor(fieldName: string, columnName: string, otherMeta: () => EntityMetadata<any>);
88
+ constructor(meta: () => EntityMetadata<any>, fieldName: string);
61
89
  setOnEntity(data: any, row: any): void;
62
- setOnRow(data: any, row: any): void;
63
- getFromEntity(data: any): number | undefined;
64
- mapToDb(value: any): any;
90
+ get columns(): Array<Column & {
91
+ otherMetadata: () => EntityMetadata<any>;
92
+ }>;
93
+ get columnName(): string;
94
+ private get field();
65
95
  }
66
- export declare class EnumFieldSerde implements ColumnSerde {
96
+ export declare class EnumFieldSerde implements FieldSerde {
67
97
  private fieldName;
68
- private columnName;
98
+ columnName: string;
69
99
  private enumObject;
100
+ dbType: string;
101
+ isArray: boolean;
102
+ columns: this[];
70
103
  constructor(fieldName: string, columnName: string, enumObject: any);
71
104
  setOnEntity(data: any, row: any): void;
72
- setOnRow(data: any, row: any): void;
73
- getFromEntity(data: any): any;
105
+ dbValue(data: any): any;
74
106
  mapToDb(value: any): any;
75
107
  }
76
- export declare class EnumArrayFieldSerde implements ColumnSerde {
108
+ export declare class EnumArrayFieldSerde implements FieldSerde {
77
109
  private fieldName;
78
- private columnName;
110
+ columnName: string;
79
111
  private enumObject;
112
+ dbType: string;
113
+ isArray: boolean;
114
+ columns: this[];
80
115
  constructor(fieldName: string, columnName: string, enumObject: any);
81
116
  setOnEntity(data: any, row: any): void;
82
- setOnRow(data: any, row: any): void;
83
- getFromEntity(data: any): any;
117
+ dbValue(data: any): any;
84
118
  mapToDb(value: any): any;
85
119
  }
86
120
  /** Similar to SimpleSerde, but applies the superstruct `assert` function when reading values from the db. */
87
- export declare class SuperstructSerde implements ColumnSerde {
121
+ export declare class SuperstructSerde implements FieldSerde {
88
122
  private fieldName;
89
- private columnName;
123
+ columnName: string;
90
124
  private superstruct;
125
+ dbType: string;
126
+ isArray: boolean;
127
+ columns: this[];
91
128
  private assert;
92
129
  constructor(fieldName: string, columnName: string, superstruct: any);
93
130
  setOnEntity(data: any, row: any): void;
94
- setOnRow(data: any, row: any): void;
95
- getFromEntity(data: any): any;
131
+ dbValue(data: any): any;
96
132
  mapToDb(value: any): any;
97
133
  }
@@ -1,26 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SuperstructSerde = exports.EnumArrayFieldSerde = exports.EnumFieldSerde = exports.PolymorphicKeySerde = exports.ForeignKeySerde = exports.PrimaryKeySerde = exports.DecimalToNumberSerde = exports.SimpleSerde = void 0;
3
+ exports.SuperstructSerde = exports.EnumArrayFieldSerde = exports.EnumFieldSerde = exports.PolymorphicKeySerde = exports.ForeignKeySerde = exports.PrimaryKeySerde = exports.DecimalToNumberSerde = exports.PrimitiveSerde = exports.hasSerde = void 0;
4
4
  const index_1 = require("./index");
5
- class SimpleSerde {
6
- constructor(fieldName, columnName) {
5
+ function hasSerde(field) {
6
+ return !!field.serde;
7
+ }
8
+ exports.hasSerde = hasSerde;
9
+ class PrimitiveSerde {
10
+ constructor(fieldName, columnName, dbType) {
7
11
  this.fieldName = fieldName;
8
12
  this.columnName = columnName;
13
+ this.dbType = dbType;
14
+ this.isArray = false;
15
+ this.columns = [this];
9
16
  }
10
17
  setOnEntity(data, row) {
11
18
  data[this.fieldName] = maybeNullToUndefined(row[this.columnName]);
12
19
  }
13
- setOnRow(data, row) {
14
- row[this.columnName] = data[this.fieldName];
15
- }
16
- getFromEntity(data) {
20
+ dbValue(data) {
17
21
  return data[this.fieldName];
18
22
  }
19
23
  mapToDb(value) {
20
24
  return value;
21
25
  }
22
26
  }
23
- exports.SimpleSerde = SimpleSerde;
27
+ exports.PrimitiveSerde = PrimitiveSerde;
24
28
  /**
25
29
  * Maps `decimal(...)` database types to the JS `number`.
26
30
  *
@@ -34,15 +38,15 @@ class DecimalToNumberSerde {
34
38
  constructor(fieldName, columnName) {
35
39
  this.fieldName = fieldName;
36
40
  this.columnName = columnName;
41
+ this.dbType = "decimal";
42
+ this.isArray = false;
43
+ this.columns = [this];
37
44
  }
38
45
  setOnEntity(data, row) {
39
46
  const value = maybeNullToUndefined(row[this.columnName]);
40
47
  data[this.fieldName] = value !== undefined ? Number(value) : value;
41
48
  }
42
- setOnRow(data, row) {
43
- row[this.columnName] = data[this.fieldName];
44
- }
45
- getFromEntity(data) {
49
+ dbValue(data) {
46
50
  return data[this.fieldName];
47
51
  }
48
52
  mapToDb(value) {
@@ -56,14 +60,14 @@ class PrimaryKeySerde {
56
60
  this.meta = meta;
57
61
  this.fieldName = fieldName;
58
62
  this.columnName = columnName;
63
+ this.dbType = "int";
64
+ this.isArray = false;
65
+ this.columns = [this];
59
66
  }
60
67
  setOnEntity(data, row) {
61
68
  data[this.fieldName] = (0, index_1.keyToString)(this.meta(), row[this.columnName]);
62
69
  }
63
- setOnRow(data, row) {
64
- row[this.columnName] = (0, index_1.keyToNumber)(this.meta(), data[this.fieldName]);
65
- }
66
- getFromEntity(data) {
70
+ dbValue(data) {
67
71
  return (0, index_1.keyToNumber)(this.meta(), data[this.fieldName]);
68
72
  }
69
73
  mapToDb(value) {
@@ -77,14 +81,14 @@ class ForeignKeySerde {
77
81
  this.fieldName = fieldName;
78
82
  this.columnName = columnName;
79
83
  this.otherMeta = otherMeta;
84
+ this.dbType = "int";
85
+ this.isArray = false;
86
+ this.columns = [this];
80
87
  }
81
88
  setOnEntity(data, row) {
82
89
  data[this.fieldName] = (0, index_1.keyToString)(this.otherMeta(), row[this.columnName]);
83
90
  }
84
- setOnRow(data, row) {
85
- row[this.columnName] = (0, index_1.keyToNumber)(this.otherMeta(), (0, index_1.maybeResolveReferenceToId)(data[this.fieldName]));
86
- }
87
- getFromEntity(data) {
91
+ dbValue(data) {
88
92
  return (0, index_1.keyToNumber)(this.otherMeta(), (0, index_1.maybeResolveReferenceToId)(data[this.fieldName]));
89
93
  }
90
94
  mapToDb(value) {
@@ -93,30 +97,42 @@ class ForeignKeySerde {
93
97
  }
94
98
  exports.ForeignKeySerde = ForeignKeySerde;
95
99
  class PolymorphicKeySerde {
96
- // TODO EntityMetadata being in here is weird. Don't think it is avoidable though.
97
- constructor(fieldName, columnName, otherMeta) {
100
+ constructor(meta, fieldName) {
101
+ this.meta = meta;
98
102
  this.fieldName = fieldName;
99
- this.columnName = columnName;
100
- this.otherMeta = otherMeta;
101
103
  }
102
104
  setOnEntity(data, row) {
103
- var _a;
104
- data[_a = this.fieldName] ?? (data[_a] = (0, index_1.keyToString)(this.otherMeta(), row[this.columnName]));
105
- }
106
- setOnRow(data, row) {
107
- const id = (0, index_1.maybeResolveReferenceToId)(data[this.fieldName]);
108
- const cstr = (0, index_1.maybeGetConstructorFromReference)(id);
109
- row[this.columnName] = cstr === this.otherMeta().cstr ? (0, index_1.keyToNumber)(this.otherMeta(), id) : undefined;
110
- }
111
- getFromEntity(data) {
112
- const id = (0, index_1.maybeResolveReferenceToId)(data[this.fieldName]);
113
- const cstr = id ? (0, index_1.getConstructorFromTaggedId)(id) : undefined;
114
- return cstr === this.otherMeta().cstr ? (0, index_1.keyToNumber)(this.otherMeta(), id) : undefined;
115
- }
116
- mapToDb(value) {
117
- const id = (0, index_1.maybeResolveReferenceToId)(value);
118
- const cstr = (0, index_1.maybeGetConstructorFromReference)(value);
119
- return cstr === this.otherMeta().cstr ? (0, index_1.keyToNumber)(this.otherMeta(), id) : undefined;
105
+ this.columns
106
+ .filter((column) => !!row[column.columnName])
107
+ .forEach((column) => {
108
+ var _a;
109
+ data[_a = this.fieldName] ?? (data[_a] = (0, index_1.keyToString)(column.otherMetadata(), row[column.columnName]));
110
+ });
111
+ }
112
+ // Lazy b/c we use PolymorphicField which we can't access in our cstr
113
+ get columns() {
114
+ const { fieldName } = this;
115
+ return this.field.components.map((comp) => ({
116
+ columnName: comp.columnName,
117
+ dbType: "int",
118
+ isArray: false,
119
+ otherMetadata: comp.otherMetadata,
120
+ dbValue(data) {
121
+ const id = (0, index_1.maybeResolveReferenceToId)(data[fieldName]);
122
+ const cstr = id ? (0, index_1.getConstructorFromTaggedId)(id) : undefined;
123
+ return cstr === comp.otherMetadata().cstr ? (0, index_1.keyToNumber)(comp.otherMetadata(), id) : undefined;
124
+ },
125
+ mapToDb(value) {
126
+ return (0, index_1.keyToNumber)(comp.otherMetadata(), (0, index_1.maybeResolveReferenceToId)(value));
127
+ },
128
+ }));
129
+ }
130
+ get columnName() {
131
+ throw new Error("Unsupported");
132
+ }
133
+ // Lazy b/c we use PolymorphicField which we can't access in our cstr
134
+ get field() {
135
+ return this.meta().fields[this.fieldName];
120
136
  }
121
137
  }
122
138
  exports.PolymorphicKeySerde = PolymorphicKeySerde;
@@ -125,14 +141,14 @@ class EnumFieldSerde {
125
141
  this.fieldName = fieldName;
126
142
  this.columnName = columnName;
127
143
  this.enumObject = enumObject;
144
+ this.dbType = "int";
145
+ this.isArray = false;
146
+ this.columns = [this];
128
147
  }
129
148
  setOnEntity(data, row) {
130
149
  data[this.fieldName] = this.enumObject.findById(row[this.columnName])?.code;
131
150
  }
132
- setOnRow(data, row) {
133
- row[this.columnName] = this.enumObject.findByCode(data[this.fieldName])?.id;
134
- }
135
- getFromEntity(data) {
151
+ dbValue(data) {
136
152
  return this.enumObject.findByCode(data[this.fieldName])?.id;
137
153
  }
138
154
  mapToDb(value) {
@@ -145,14 +161,14 @@ class EnumArrayFieldSerde {
145
161
  this.fieldName = fieldName;
146
162
  this.columnName = columnName;
147
163
  this.enumObject = enumObject;
164
+ this.dbType = "int[]";
165
+ this.isArray = true;
166
+ this.columns = [this];
148
167
  }
149
168
  setOnEntity(data, row) {
150
169
  data[this.fieldName] = row[this.columnName]?.map((id) => this.enumObject.findById(id).code) || [];
151
170
  }
152
- setOnRow(data, row) {
153
- row[this.columnName] = data[this.fieldName]?.map((code) => this.enumObject.getByCode(code).id) || [];
154
- }
155
- getFromEntity(data) {
171
+ dbValue(data) {
156
172
  return data[this.fieldName]?.map((code) => this.enumObject.getByCode(code).id) || [];
157
173
  }
158
174
  mapToDb(value) {
@@ -169,6 +185,9 @@ class SuperstructSerde {
169
185
  this.fieldName = fieldName;
170
186
  this.columnName = columnName;
171
187
  this.superstruct = superstruct;
188
+ this.dbType = "jsonb";
189
+ this.isArray = false;
190
+ this.columns = [this];
172
191
  // Use a dynamic require so that downstream projects don't have to depend on superstruct
173
192
  // until they want to, i.e. we don't have superstruct in the joist-orm package.json.
174
193
  this.assert = require("superstruct").assert;
@@ -180,12 +199,8 @@ class SuperstructSerde {
180
199
  }
181
200
  data[this.fieldName] = value;
182
201
  }
183
- setOnRow(data, row) {
184
- // assume the data is already valid b/c it came from the eneity
185
- row[this.columnName] = data[this.fieldName];
186
- }
187
- getFromEntity(data) {
188
- // assume the data is already valid b/c it came from the eneity
202
+ dbValue(data) {
203
+ // assume the data is already valid b/c it came from the entity
189
204
  return data[this.fieldName];
190
205
  }
191
206
  mapToDb(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"serde.js","sourceRoot":"","sources":["../../src/serde.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serde.js","sourceRoot":"","sources":["../../src/serde.ts"],"names":[],"mappings":"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"}