ts-japi 1.8.0 → 1.9.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.
@@ -1,3 +1,3 @@
1
1
  {
2
- ".": "1.8.0"
2
+ ".": "1.9.0"
3
3
  }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.9.0](https://github.com/mathematic-inc/ts-japi/compare/v1.8.1...v1.9.0) (2023-09-04)
4
+
5
+
6
+ ### Features
7
+
8
+ * add polymprphic serializer ([#66](https://github.com/mathematic-inc/ts-japi/issues/66)) ([d440f87](https://github.com/mathematic-inc/ts-japi/commit/d440f87d7241cc2b52db1440b66f87112e0a3807))
9
+
10
+ ## [1.8.1](https://github.com/mathematic-inc/ts-japi/compare/v1.8.0...v1.8.1) (2023-08-10)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * allow relator serializer to be a getter ([#63](https://github.com/mathematic-inc/ts-japi/issues/63)) ([a55b4e9](https://github.com/mathematic-inc/ts-japi/commit/a55b4e9b7c36b28087397973eee6025db7d6299b))
16
+
3
17
  ## [1.8.0](https://github.com/mathematic-inc/ts-japi/compare/v1.7.0...v1.8.0) (2022-09-30)
4
18
 
5
19
 
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # ts:japi
2
2
 
3
3
  <br/>
4
- <img src="https://raw.githubusercontent.com/mathematic-inc/ts-japi/master/docs/assets/images/logo.svg" alt="{ts:japi}" width="350"/>
4
+ <img src="https://raw.githubusercontent.com/mathematic-inc/ts-japi/main/src/docs/assets/images/logo.svg" alt="{ts:japi}" width="350"/>
5
5
  <br/>
6
6
 
7
7
  ![node-current](https://img.shields.io/node/v/ts-japi)
@@ -0,0 +1,19 @@
1
+ import { DataDocument } from '../interfaces/json-api.interface';
2
+ import { SerializerOptions } from '../interfaces/serializer.interface';
3
+ import ResourceIdentifier from '../models/resource-identifier.model';
4
+ import Resource from '../models/resource.model';
5
+ import { Dictionary, nullish, SingleOrArray } from '../types/global.types';
6
+ import { Helpers } from '../utils/serializer.utils';
7
+ import Relator from './relator';
8
+ import Serializer from './serializer';
9
+ export default class PolymorphicSerializer<PrimaryType extends Dictionary<any>> extends Serializer<PrimaryType> {
10
+ private serialisers;
11
+ private key;
12
+ constructor(commonName: string, key: keyof PrimaryType, serializers: Record<string, Serializer>);
13
+ serialize(data: SingleOrArray<PrimaryType> | nullish, options?: Partial<SerializerOptions<PrimaryType>>): Promise<Partial<DataDocument<PrimaryType>>>;
14
+ createIdentifier(data: PrimaryType, options?: SerializerOptions<PrimaryType>): ResourceIdentifier;
15
+ createResource(data: PrimaryType, options?: Partial<SerializerOptions<PrimaryType>>, helpers?: Helpers<PrimaryType>, relatorDataCache?: Map<Relator<any>, Dictionary<any>[]>): Promise<Resource<PrimaryType>>;
16
+ private serializeSingle;
17
+ private getSerializerForData;
18
+ }
19
+ //# sourceMappingURL=polymorphic-serialiser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polymorphic-serialiser.d.ts","sourceRoot":"","sources":["../../src/classes/polymorphic-serialiser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,kBAAkB,MAAM,qCAAqC,CAAC;AACrE,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,qBAAqB,CACxC,WAAW,SAAS,UAAU,CAAC,GAAG,CAAC,CACnC,SAAQ,UAAU,CAAC,WAAW,CAAC;IAC/B,OAAO,CAAC,WAAW,CAA6B;IAEhD,OAAO,CAAC,GAAG,CAAoB;gBAG7B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,WAAW,EACtB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;IAO5B,SAAS,CACpB,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,OAAO,EAC1C,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,GAChD,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;IAYvC,gBAAgB,CACrB,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,GACvC,kBAAkB;IAQR,cAAc,CACzB,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,EACjD,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAC9B,gBAAgB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,GACtD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAQnB,eAAe;IAW7B,OAAO,CAAC,oBAAoB;CAO7B"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const serializer_1 = __importDefault(require("./serializer"));
7
+ class PolymorphicSerializer extends serializer_1.default {
8
+ serialisers;
9
+ key;
10
+ constructor(commonName, key, serializers) {
11
+ super(commonName);
12
+ this.serialisers = serializers;
13
+ this.key = key;
14
+ }
15
+ async serialize(data, options) {
16
+ if (Array.isArray(data)) {
17
+ data.map((d) => {
18
+ return this.serializeSingle(d, options);
19
+ });
20
+ }
21
+ else if (data) {
22
+ return this.serializeSingle(data, options);
23
+ }
24
+ return Object.values(this.serialisers)[0].serialize(data, options);
25
+ }
26
+ createIdentifier(data, options) {
27
+ const serializer = this.getSerializerForData(data);
28
+ if (serializer) {
29
+ return serializer.createIdentifier(data, options);
30
+ }
31
+ return super.createIdentifier(data, options);
32
+ }
33
+ async createResource(data, options, helpers, relatorDataCache) {
34
+ const serializer = this.getSerializerForData(data);
35
+ if (serializer) {
36
+ return serializer.createResource(data, options, helpers, relatorDataCache);
37
+ }
38
+ return super.createResource(data, options, helpers, relatorDataCache);
39
+ }
40
+ async serializeSingle(data, options) {
41
+ const serializer = this.getSerializerForData(data);
42
+ if (serializer) {
43
+ return serializer.serialize(data, options);
44
+ }
45
+ return super.serialize(data, options);
46
+ }
47
+ getSerializerForData(data) {
48
+ if (this.serialisers[data[this.key]]) {
49
+ return this.serialisers[data[this.key]];
50
+ }
51
+ return null;
52
+ }
53
+ }
54
+ exports.default = PolymorphicSerializer;
55
+ //# sourceMappingURL=polymorphic-serialiser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polymorphic-serialiser.js","sourceRoot":"","sources":["../../src/classes/polymorphic-serialiser.ts"],"names":[],"mappings":";;;;;AAOA,8DAAsC;AAEtC,MAAqB,qBAEnB,SAAQ,oBAAuB;IACvB,WAAW,CAA6B;IAExC,GAAG,CAAoB;IAE/B,YACE,UAAkB,EAClB,GAAsB,EACtB,WAAuC;QAEvC,KAAK,CAAC,UAAU,CAAC,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,SAAS,CACpB,IAA0C,EAC1C,OAAiD;QAEjD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACb,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,IAAI,EAAE;YACf,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC5C;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAEM,gBAAgB,CACrB,IAAiB,EACjB,OAAwC;QAExC,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,UAAU,EAAE;YACd,OAAO,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SACnD;QACD,OAAO,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,cAAc,CACzB,IAAiB,EACjB,OAAiD,EACjD,OAA8B,EAC9B,gBAAuD;QAEvD,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,UAAU,EAAE;YACd,OAAO,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;SAC5E;QACD,OAAO,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;IACxE,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,IAAiB,EACjB,OAAiD;QAEjD,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,UAAU,EAAE;YACd,OAAO,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC5C;QACD,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAEO,oBAAoB,CAAC,IAAiB;QAC5C,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YACpC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;SACzC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA1ED,wCA0EC"}
@@ -29,6 +29,8 @@ export default class Relator<PrimaryType, RelatedType extends Dictionary<any> =
29
29
  */
30
30
  private options;
31
31
  relatedName: string;
32
+ private internalSerializer;
33
+ private _serializer;
32
34
  /**
33
35
  * Creates a {@link Relator}.
34
36
  *
@@ -37,14 +39,24 @@ export default class Relator<PrimaryType, RelatedType extends Dictionary<any> =
37
39
  * @param options - Options for the relator.
38
40
  */
39
41
  constructor(fetch: (data: PrimaryType) => Promise<RelatedType | RelatedType[] | nullish>, serializer: Serializer<RelatedType>, options?: Partial<RelatorOptions<PrimaryType, RelatedType>>);
42
+ /**
43
+ * Creates a {@link Relator}.
44
+ *
45
+ * @param fetch - Fetches related data from primary data.
46
+ * @param serializer - A getter for the `Serializer` to use for related data.
47
+ * @param options - Options for the relator, a `relatedName` is required
48
+ * as it cannot always be loaded from the serializer.
49
+ */
50
+ constructor(fetch: (data: PrimaryType) => Promise<RelatedType | RelatedType[] | nullish>, serializer: () => Serializer<RelatedType>, options: Partial<RelatorOptions<PrimaryType, RelatedType>> & Required<Pick<RelatorOptions<PrimaryType, RelatedType>, 'relatedName'>>);
51
+ private get serializer();
40
52
  /** @internal Gets related data from primary data. */
41
53
  getRelatedData: (data: PrimaryType) => Promise<RelatedType | RelatedType[] | nullish>;
42
54
  /** @internal Gets related relators */
43
- getRelatedRelators: () => Record<string, Relator<RelatedType, any>> | undefined;
55
+ getRelatedRelators(): Record<string, Relator<RelatedType, any>> | undefined;
44
56
  /** @internal Creates related identifiers */
45
- getRelatedIdentifier: (data: RelatedType, options?: SerializerOptions<RelatedType> | undefined) => ResourceIdentifier;
57
+ getRelatedIdentifier(data: RelatedType, options?: SerializerOptions<RelatedType> | undefined): ResourceIdentifier;
46
58
  /** @internal Creates related resources */
47
- getRelatedResource: (data: RelatedType, options?: Partial<SerializerOptions<RelatedType>>, helpers?: Helpers<RelatedType>, relatorDataCache?: Map<Relator<any>, Dictionary<any>[]>) => Promise<Resource<RelatedType>>;
59
+ getRelatedResource(data: RelatedType, options?: Partial<SerializerOptions<RelatedType>>, helpers?: Helpers<RelatedType>, relatorDataCache?: Map<Relator<any>, Dictionary<any>[]>): Promise<Resource<RelatedType>>;
48
60
  /** @internal Gets related links from primary data and related data */
49
61
  getRelatedLinks(data: PrimaryType, relatedData: RelatedType | RelatedType[] | nullish): Dictionary<nullish | Link> | undefined;
50
62
  /** @internal Gets related meta from primary data and related data */
@@ -1 +1 @@
1
- {"version":3,"file":"relator.d.ts","sourceRoot":"","sources":["../../src/classes/relator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,IAAI,MAAM,sBAAsB,CAAC;AACxC,OAAO,IAAI,MAAM,sBAAsB,CAAC;AACxC,OAAO,YAAqC,MAAM,8BAA8B,CAAC;AACjF,OAAO,kBAAkB,MAAM,qCAAqC,CAAC;AACrE,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO,CAAC,WAAW,EAAE,WAAW,SAAS,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG;IACjF;;OAEG;IACH,OAAc,cAAc;;MAE1B;IAEF;;OAEG;IACH,OAAO,CAAC,OAAO,CAA2C;IAEnD,WAAW,EAAE,MAAM,CAAC;IAC3B;;;;;;OAMG;gBAED,KAAK,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC,EAC5E,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,EACnC,OAAO,GAAE,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAM;IAWjE,qDAAqD;IAC9C,cAAc,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC,CAAC;IAE7F,sCAAsC;IAC/B,kBAAkB,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IAEvF,4CAA4C;IACrC,oBAAoB,EAAE,CAC3B,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,GAAG,SAAS,KACjD,kBAAkB,CAAC;IAExB,0CAA0C;IACnC,kBAAkB,EAAE,CACzB,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,EACjD,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAC9B,gBAAgB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,KACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IAEpC,sEAAsE;IAC/D,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW,EAAE,GAAG,OAAO;IAW5F,qEAAqE;IAC9D,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW,EAAE,GAAG,OAAO;IAQ3F,gDAAgD;IACnC,eAAe,CAC1B,IAAI,EAAE,WAAW,EACjB,gBAAgB,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,GACnC,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAmCrC"}
1
+ {"version":3,"file":"relator.d.ts","sourceRoot":"","sources":["../../src/classes/relator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,IAAI,MAAM,sBAAsB,CAAC;AACxC,OAAO,IAAI,MAAM,sBAAsB,CAAC;AACxC,OAAO,YAAqC,MAAM,8BAA8B,CAAC;AACjF,OAAO,kBAAkB,MAAM,qCAAqC,CAAC;AACrE,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO,CAAC,WAAW,EAAE,WAAW,SAAS,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG;IACjF;;OAEG;IACH,OAAc,cAAc;;MAE1B;IAEF;;OAEG;IACH,OAAO,CAAC,OAAO,CAA2C;IAEnD,WAAW,EAAE,MAAM,CAAC;IAE3B,OAAO,CAAC,kBAAkB,CAA4D;IAEtF,OAAO,CAAC,WAAW,CAAsC;IAEzD;;;;;;OAMG;gBAED,KAAK,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC,EAC5E,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,EACnC,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAG7D;;;;;;;OAOG;gBAED,KAAK,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC,EAC5E,UAAU,EAAE,MAAM,UAAU,CAAC,WAAW,CAAC,EACzC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,GACxD,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,aAAa,CAAC,CAAC;IAgB3E,OAAO,KAAK,UAAU,GASrB;IAED,qDAAqD;IAC9C,cAAc,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC,CAAC;IAE7F,sCAAsC;IAC/B,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS;IAIlF,4CAA4C;IACrC,oBAAoB,CACzB,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,GAAG,SAAS,GACnD,kBAAkB;IAIrB,0CAA0C;IAC7B,kBAAkB,CAC7B,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,EACjD,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAC9B,gBAAgB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,GACtD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAIjC,sEAAsE;IAC/D,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW,EAAE,GAAG,OAAO;IAW5F,qEAAqE;IAC9D,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW,EAAE,GAAG,OAAO;IAQ3F,gDAAgD;IACnC,eAAe,CAC1B,IAAI,EAAE,WAAW,EACjB,gBAAgB,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,GACnC,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAmCrC"}
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const relationship_model_1 = __importDefault(require("../models/relationship.model"));
7
7
  const merge_1 = __importDefault(require("../utils/merge"));
8
+ const serializer_1 = __importDefault(require("./serializer"));
8
9
  /**
9
10
  * The {@link Relator} class is used to generate top-level [included data](https://jsonapi.org/format/#document-top-level)
10
11
  * as well as resource-level [relationships](https://jsonapi.org/format/#document-resource-object-relationships).
@@ -26,30 +27,41 @@ class Relator {
26
27
  */
27
28
  options;
28
29
  relatedName;
29
- /**
30
- * Creates a {@link Relator}.
31
- *
32
- * @param fetch - Fetches related data from primary data.
33
- * @param serializer - The `Serializer` to use for related data.
34
- * @param options - Options for the relator.
35
- */
36
- constructor(fetch, serializer, options = {}) {
30
+ internalSerializer;
31
+ _serializer;
32
+ constructor(fetch, serializer, options) {
37
33
  // Setting default options
38
- this.relatedName = options.relatedName || serializer.collectionName;
39
- this.options = (0, merge_1.default)({}, Relator.defaultOptions, options);
34
+ this.relatedName =
35
+ options?.relatedName ||
36
+ (serializer instanceof serializer_1.default ? serializer : serializer()).collectionName;
37
+ this.internalSerializer = serializer;
38
+ this.options = (0, merge_1.default)({}, Relator.defaultOptions, options ?? {});
40
39
  this.getRelatedData = fetch;
41
- this.getRelatedResource = serializer.createResource.bind(serializer);
42
- this.getRelatedIdentifier = serializer.createIdentifier.bind(serializer);
43
- this.getRelatedRelators = serializer.getRelators.bind(serializer);
40
+ }
41
+ get serializer() {
42
+ // Instantiate _serializer if not already instantiated
43
+ if (!this._serializer) {
44
+ this._serializer =
45
+ this.internalSerializer instanceof serializer_1.default
46
+ ? this.internalSerializer
47
+ : this.internalSerializer();
48
+ }
49
+ return this._serializer;
44
50
  }
45
51
  /** @internal Gets related data from primary data. */
46
52
  getRelatedData;
47
53
  /** @internal Gets related relators */
48
- getRelatedRelators;
54
+ getRelatedRelators() {
55
+ return this.serializer.getRelators();
56
+ }
49
57
  /** @internal Creates related identifiers */
50
- getRelatedIdentifier;
58
+ getRelatedIdentifier(data, options) {
59
+ return this.serializer.createIdentifier(data, options);
60
+ }
51
61
  /** @internal Creates related resources */
52
- getRelatedResource;
62
+ async getRelatedResource(data, options, helpers, relatorDataCache) {
63
+ return this.serializer.createResource(data, options, helpers, relatorDataCache);
64
+ }
53
65
  /** @internal Gets related links from primary data and related data */
54
66
  getRelatedLinks(data, relatedData) {
55
67
  let links;
@@ -1 +1 @@
1
- {"version":3,"file":"relator.js","sourceRoot":"","sources":["../../src/classes/relator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relator.js","sourceRoot":"","sources":["../../src/classes/relator.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export { default as Relator } from './classes/relator';
6
6
  export { default as JapiError } from './models/error.model';
7
7
  export { default as ErrorSerializer } from './classes/error-serializer';
8
8
  export { default as Serializer } from './classes/serializer';
9
+ export { default as PolymorphicSerializer } from './classes/polymorphic-serialiser';
9
10
  export * from './interfaces/cache.interface';
10
11
  export * from './interfaces/error-serializer.interface';
11
12
  export * from './interfaces/error.interface';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC7D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACpF,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC"}
package/lib/index.js CHANGED
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.Serializer = exports.ErrorSerializer = exports.JapiError = exports.Relator = exports.Paginator = exports.Metaizer = exports.Linker = exports.Cache = void 0;
20
+ exports.PolymorphicSerializer = exports.Serializer = exports.ErrorSerializer = exports.JapiError = exports.Relator = exports.Paginator = exports.Metaizer = exports.Linker = exports.Cache = void 0;
21
21
  var cache_1 = require("./classes/cache");
22
22
  Object.defineProperty(exports, "Cache", { enumerable: true, get: function () { return __importDefault(cache_1).default; } });
23
23
  var linker_1 = require("./classes/linker");
@@ -34,6 +34,8 @@ var error_serializer_1 = require("./classes/error-serializer");
34
34
  Object.defineProperty(exports, "ErrorSerializer", { enumerable: true, get: function () { return __importDefault(error_serializer_1).default; } });
35
35
  var serializer_1 = require("./classes/serializer");
36
36
  Object.defineProperty(exports, "Serializer", { enumerable: true, get: function () { return __importDefault(serializer_1).default; } });
37
+ var polymorphic_serialiser_1 = require("./classes/polymorphic-serialiser");
38
+ Object.defineProperty(exports, "PolymorphicSerializer", { enumerable: true, get: function () { return __importDefault(polymorphic_serialiser_1).default; } });
37
39
  __exportStar(require("./interfaces/cache.interface"), exports);
38
40
  __exportStar(require("./interfaces/error-serializer.interface"), exports);
39
41
  __exportStar(require("./interfaces/error.interface"), exports);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,yCAAmD;AAA1C,+GAAA,OAAO,OAAS;AACzB,2CAAqD;AAA5C,iHAAA,OAAO,OAAU;AAC1B,+CAAyD;AAAhD,qHAAA,OAAO,OAAY;AAC5B,iDAA2D;AAAlD,uHAAA,OAAO,OAAa;AAC7B,6CAAuD;AAA9C,mHAAA,OAAO,OAAW;AAC3B,oDAA4D;AAAnD,yHAAA,OAAO,OAAa;AAC7B,+DAAwE;AAA/D,oIAAA,OAAO,OAAmB;AACnC,mDAA6D;AAApD,yHAAA,OAAO,OAAc;AAC9B,+DAA6C;AAC7C,0EAAwD;AACxD,+DAA6C;AAC7C,kEAAgD;AAChD,gEAA8C;AAC9C,mEAAiD;AACjD,iEAA+C;AAC/C,oEAAkD;AAClD,uDAAqC;AACrC,4DAA0C;AAC1C,0DAAwC;AACxC,oDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,yCAAmD;AAA1C,+GAAA,OAAO,OAAS;AACzB,2CAAqD;AAA5C,iHAAA,OAAO,OAAU;AAC1B,+CAAyD;AAAhD,qHAAA,OAAO,OAAY;AAC5B,iDAA2D;AAAlD,uHAAA,OAAO,OAAa;AAC7B,6CAAuD;AAA9C,mHAAA,OAAO,OAAW;AAC3B,oDAA4D;AAAnD,yHAAA,OAAO,OAAa;AAC7B,+DAAwE;AAA/D,oIAAA,OAAO,OAAmB;AACnC,mDAA6D;AAApD,yHAAA,OAAO,OAAc;AAC9B,2EAAoF;AAA3E,gJAAA,OAAO,OAAyB;AACzC,+DAA6C;AAC7C,0EAAwD;AACxD,+DAA6C;AAC7C,kEAAgD;AAChD,gEAA8C;AAC9C,mEAAiD;AACjD,iEAA+C;AAC/C,oEAAkD;AAClD,uDAAqC;AACrC,4DAA0C;AAC1C,0DAAwC;AACxC,oDAAkC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-japi",
3
- "version": "1.8.0",
3
+ "version": "1.9.0",
4
4
  "description": "A highly-modular (typescript-friendly)-framework agnostic library for serializing data to the JSON:API specification",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -19,7 +19,8 @@
19
19
  "lint:eslint": "eslint .",
20
20
  "playground": "ts-node ./benchmarks/playground.benchmark",
21
21
  "prepare": "husky install",
22
- "test": "jest --runInBand --verbose --coverage"
22
+ "test": "jest --runInBand --verbose --coverage",
23
+ "test:watch": "jest --runInBand --verbose --watch"
23
24
  },
24
25
  "publishConfig": {
25
26
  "access": "public",