@ddd-ts/shape 0.0.0-feat.shape.ee0e705 → 0.0.0-fix-tb-better-either-serialization.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.
Files changed (105) hide show
  1. package/dist/_.d.ts +39 -0
  2. package/dist/_.d.ts.map +1 -0
  3. package/dist/_.js +55 -0
  4. package/dist/_.js.map +1 -0
  5. package/dist/choice.d.ts +43 -0
  6. package/dist/choice.d.ts.map +1 -0
  7. package/dist/choice.js +48 -0
  8. package/dist/choice.js.map +1 -0
  9. package/dist/choice.spec.d.ts +2 -0
  10. package/dist/choice.spec.d.ts.map +1 -0
  11. package/dist/choice.spec.js +147 -0
  12. package/dist/choice.spec.js.map +1 -0
  13. package/dist/class.d.ts +22 -0
  14. package/dist/class.d.ts.map +1 -0
  15. package/dist/class.js +31 -0
  16. package/dist/class.js.map +1 -0
  17. package/dist/class.spec.d.ts +2 -0
  18. package/dist/class.spec.d.ts.map +1 -0
  19. package/dist/class.spec.js +39 -0
  20. package/dist/class.spec.js.map +1 -0
  21. package/dist/dict.d.ts +31 -0
  22. package/dist/dict.d.ts.map +1 -0
  23. package/dist/dict.js +45 -0
  24. package/dist/dict.js.map +1 -0
  25. package/dist/dict.spec.d.ts +2 -0
  26. package/dist/dict.spec.d.ts.map +1 -0
  27. package/dist/dict.spec.js +180 -0
  28. package/dist/dict.spec.js.map +1 -0
  29. package/dist/discriminated-union.d.ts +75 -0
  30. package/dist/discriminated-union.d.ts.map +1 -0
  31. package/dist/discriminated-union.js +99 -0
  32. package/dist/discriminated-union.js.map +1 -0
  33. package/dist/discriminated-union.spec.d.ts +2 -0
  34. package/dist/discriminated-union.spec.d.ts.map +1 -0
  35. package/dist/discriminated-union.spec.js +262 -0
  36. package/dist/discriminated-union.spec.js.map +1 -0
  37. package/dist/either.d.ts +51 -0
  38. package/dist/either.d.ts.map +1 -0
  39. package/dist/either.js +62 -0
  40. package/dist/either.js.map +1 -0
  41. package/dist/either.spec.d.ts +2 -0
  42. package/dist/either.spec.d.ts.map +1 -0
  43. package/dist/either.spec.js +232 -0
  44. package/dist/either.spec.js.map +1 -0
  45. package/dist/index.d.ts +12 -88
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +26 -124
  48. package/dist/index.js.map +1 -1
  49. package/dist/literal.d.ts +17 -0
  50. package/dist/literal.d.ts.map +1 -0
  51. package/dist/literal.js +27 -0
  52. package/dist/literal.js.map +1 -0
  53. package/dist/literal.spec.d.ts +2 -0
  54. package/dist/literal.spec.d.ts.map +1 -0
  55. package/dist/literal.spec.js +162 -0
  56. package/dist/literal.spec.js.map +1 -0
  57. package/dist/mapping.d.ts +39 -0
  58. package/dist/mapping.d.ts.map +1 -0
  59. package/dist/mapping.js +50 -0
  60. package/dist/mapping.js.map +1 -0
  61. package/dist/mapping.spec.d.ts +2 -0
  62. package/dist/mapping.spec.d.ts.map +1 -0
  63. package/dist/mapping.spec.js +207 -0
  64. package/dist/mapping.spec.js.map +1 -0
  65. package/dist/multiple.d.ts +110 -0
  66. package/dist/multiple.d.ts.map +1 -0
  67. package/dist/multiple.js +106 -0
  68. package/dist/multiple.js.map +1 -0
  69. package/dist/multiple.spec.d.ts +2 -0
  70. package/dist/multiple.spec.d.ts.map +1 -0
  71. package/dist/multiple.spec.js +207 -0
  72. package/dist/multiple.spec.js.map +1 -0
  73. package/dist/nothing.d.ts +14 -0
  74. package/dist/nothing.d.ts.map +1 -0
  75. package/dist/nothing.js +19 -0
  76. package/dist/nothing.js.map +1 -0
  77. package/dist/nothing.spec.d.ts +2 -0
  78. package/dist/nothing.spec.d.ts.map +1 -0
  79. package/dist/nothing.spec.js +172 -0
  80. package/dist/nothing.spec.js.map +1 -0
  81. package/dist/optional.d.ts +28 -0
  82. package/dist/optional.d.ts.map +1 -0
  83. package/dist/optional.js +41 -0
  84. package/dist/optional.js.map +1 -0
  85. package/dist/optional.spec.d.ts +2 -0
  86. package/dist/optional.spec.d.ts.map +1 -0
  87. package/dist/optional.spec.js +172 -0
  88. package/dist/optional.spec.js.map +1 -0
  89. package/dist/primitive.d.ts +40 -0
  90. package/dist/primitive.d.ts.map +1 -0
  91. package/dist/primitive.js +30 -0
  92. package/dist/primitive.js.map +1 -0
  93. package/dist/primitive.spec.d.ts +2 -0
  94. package/dist/primitive.spec.d.ts.map +1 -0
  95. package/dist/primitive.spec.js +162 -0
  96. package/dist/primitive.spec.js.map +1 -0
  97. package/dist/test.d.ts +36 -0
  98. package/dist/test.d.ts.map +1 -0
  99. package/dist/test.js +45 -0
  100. package/dist/test.js.map +1 -0
  101. package/package.json +8 -7
  102. package/dist/index.spec.d.ts +0 -2
  103. package/dist/index.spec.d.ts.map +0 -1
  104. package/dist/index.spec.js +0 -354
  105. package/dist/index.spec.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"either.spec.js","sourceRoot":"","sources":["../src/either.spec.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,89 +1,13 @@
1
- import { Trait } from "@ddd-ts/traits";
2
- type Constructor = new (...args: any[]) => any;
3
- type PrimitiveShape = NumberConstructor | StringConstructor | BooleanConstructor | DateConstructor | BigIntConstructor;
4
- type PrimitiveShapeToPrimitive<T extends PrimitiveShape> = T extends NumberConstructor ? number : T extends StringConstructor ? string : T extends BooleanConstructor ? boolean : T extends DateConstructor ? Date : never;
5
- type SerializedShape<S> = S extends PrimitiveShape ? PrimitiveShapeToPrimitive<S> : S extends {
6
- optional: infer U;
7
- } ? SerializedShape<U> | undefined : S extends Constructor & {
8
- deserialize(serialized: infer U): any;
9
- } ? U : S extends Array<infer U> ? Array<SerializedShape<U>> : S extends readonly [...any[]] ? {
10
- [K in keyof S]: SerializedShape<S[K]>;
11
- } : S extends Record<string, any> ? {
12
- [K in keyof S]: SerializedShape<S[K]>;
13
- } : any;
14
- type RuntimeShape<S> = S extends PrimitiveShape ? PrimitiveShapeToPrimitive<S> : S extends {
15
- optional: infer U;
16
- } ? RuntimeShape<U> : S extends Constructor ? InstanceType<S> : S extends Array<infer U> ? Array<RuntimeShape<U>> : S extends readonly [...any[]] ? {
17
- [K in keyof S]: RuntimeShape<S[K]>;
18
- } : S extends Record<string, any> ? {
19
- [K in keyof S]: RuntimeShape<S[K]>;
20
- } : never;
21
- export declare const Shaped: <S>(shape: S) => {
22
- factory: (base: import("@ddd-ts/traits").Constructor<{}, {}>) => ((abstract new (props: RuntimeShape<S>) => {
23
- serialize(): SerializedShape<S>;
24
- }) & {
25
- shape: S;
26
- deserialize<T extends Constructor>(this: T, serialized: SerializedShape<S>): InstanceType<T>;
27
- }) & (new (props: RuntimeShape<S>) => {
28
- serialize(): SerializedShape<S>;
29
- } & MergedProps<S>);
30
- superTraits: Trait<any>[];
31
- };
32
- type MergedProps<S> = S extends Constructor & {
33
- shape: any;
34
- } ? {
35
- value: InstanceType<S>;
36
- } : S extends {
37
- optional: infer U extends Constructor & {
38
- shape: any;
39
- };
40
- } ? {
41
- value: InstanceType<U> | undefined;
42
- } : S extends PrimitiveShape ? {
43
- value: RuntimeShape<S>;
44
- } : S extends {
45
- optional: infer U extends PrimitiveShape;
46
- } ? {
47
- value: RuntimeShape<U> | undefined;
48
- } : S extends Array<any> ? {
49
- value: RuntimeShape<S>;
50
- } : S extends {
51
- optional: infer U extends Array<any>;
52
- } ? {
53
- value: RuntimeShape<U> | undefined;
54
- } : S extends readonly [...any[]] ? {
55
- value: RuntimeShape<S>;
56
- } : S extends {
57
- optional: infer U extends readonly [...any[]];
58
- } ? {
59
- value: RuntimeShape<U> | undefined;
60
- } : S extends {
61
- optional: infer U;
62
- } ? {
63
- value: RuntimeShape<U> | undefined;
64
- } : RuntimeShape<S>;
65
- export declare const Shape: <S>(shape: S) => (new (param: import("@ddd-ts/traits").UnionToIntersection<RuntimeShape<S>>) => import("@ddd-ts/traits").UnionToIntersection<{
66
- serialize(): SerializedShape<S>;
67
- } & MergedProps<S>>) & {
68
- prototype: any;
69
- shape: S;
70
- deserialize: <T extends Constructor>(this: T, serialized: SerializedShape<S>) => InstanceType<T>;
71
- } & {
72
- __traits__: [{
73
- factory: (base: import("@ddd-ts/traits").Constructor<{}, {}>) => ((abstract new (props: RuntimeShape<S>) => {
74
- serialize(): SerializedShape<S>;
75
- }) & {
76
- shape: S;
77
- deserialize<T extends Constructor>(this: T, serialized: SerializedShape<S>): InstanceType<T>;
78
- }) & (new (props: RuntimeShape<S>) => {
79
- serialize(): SerializedShape<S>;
80
- } & MergedProps<S>);
81
- superTraits: Trait<any>[];
82
- }];
83
- __traits_props__: import("@ddd-ts/traits").UnionToIntersection<RuntimeShape<S>>;
84
- };
85
- export declare const Optional: <S>(shape: S) => {
86
- optional: S;
87
- };
88
- export {};
1
+ export * from "./_";
2
+ export * from "./choice";
3
+ export * from "./class";
4
+ export * from "./dict";
5
+ export * from "./either";
6
+ export * from "./primitive";
7
+ export * from "./literal";
8
+ export * from "./discriminated-union";
9
+ export * from "./mapping";
10
+ export * from "./multiple";
11
+ export * from "./nothing";
12
+ export * from "./optional";
89
13
  //# sourceMappingURL=index.d.ts.map
@@ -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":"AAAA,cAAc,KAAK,CAAC;AACpB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,127 +1,29 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Optional = exports.Shape = exports.Shaped = void 0;
4
- const traits_1 = require("@ddd-ts/traits");
5
- function serialize(shape, runtime) {
6
- if (shape === Number) {
7
- shape;
8
- return runtime;
9
- }
10
- if (shape === Boolean) {
11
- return runtime;
12
- }
13
- if (shape === String) {
14
- return runtime;
15
- }
16
- if (shape === BigInt) {
17
- return runtime;
18
- }
19
- if (shape === Date) {
20
- return runtime;
21
- }
22
- if ("optional" in shape) {
23
- if (runtime === undefined) {
24
- return undefined;
25
- }
26
- return serialize(shape.optional, runtime);
27
- }
28
- if ("serialize" in runtime) {
29
- return runtime.serialize();
30
- }
31
- if (Array.isArray(shape)) {
32
- if (shape.length === 1) {
33
- return runtime.map((element) => serialize(shape[0], element));
34
- }
35
- throw new Error("handle tuples");
36
- }
37
- const serialized = {};
38
- for (const key in shape) {
39
- const subshape = shape[key];
40
- serialized[key] = serialize(subshape, runtime[key]);
41
- }
42
- return serialized;
43
- }
44
- function deserialize(shape, serialized) {
45
- if (shape === Number) {
46
- return serialized;
47
- }
48
- if (shape === Boolean) {
49
- return serialized;
50
- }
51
- if (shape === String) {
52
- return serialized;
53
- }
54
- if (shape === BigInt) {
55
- return serialized;
56
- }
57
- if (shape === Date) {
58
- return new Date(serialized);
59
- }
60
- if ("optional" in shape) {
61
- if (serialized === undefined) {
62
- return undefined;
63
- }
64
- return deserialize(shape.optional, serialized);
65
- }
66
- if ("deserialize" in shape) {
67
- return shape.deserialize(serialized);
68
- }
69
- if (Array.isArray(shape)) {
70
- if (shape.length === 1) {
71
- return serialized.map((element) => deserialize(shape[0], element));
72
- }
73
- throw new Error("handle tuples");
74
- }
75
- const deserialized = {};
76
- for (const key in shape) {
77
- const subshape = shape[key];
78
- deserialized[key] = deserialize(subshape, serialized[key]);
79
- }
80
- return deserialized;
81
- }
82
- function isNested(shape) {
83
- const isPrimitive = shape === Number ||
84
- shape === Boolean ||
85
- shape === String ||
86
- shape === Date ||
87
- shape === BigInt;
88
- if ("optional" in shape) {
89
- return true;
90
- }
91
- if (isPrimitive)
92
- return true;
93
- if (Array.isArray(shape)) {
94
- return true;
95
- }
96
- const isWrappingPrimitive = shape?.shape ? isNested(shape.shape) : false;
97
- return isWrappingPrimitive;
98
- }
99
- const Shaped = (shape) => (0, traits_1.Trait)((base) => {
100
- const nested = isNested(shape);
101
- class Intermediate extends base {
102
- static shape = shape;
103
- constructor(props) {
104
- super(props);
105
- if (nested) {
106
- this.value = props;
107
- }
108
- else {
109
- Object.assign(this, props);
110
- }
111
- }
112
- serialize() {
113
- const { serialize: _, ...props } = this;
114
- return serialize(shape, nested ? this.value : props);
115
- }
116
- static deserialize(serialized) {
117
- return new this(deserialize(shape, serialized));
118
- }
119
- }
120
- return Intermediate;
121
- });
122
- exports.Shaped = Shaped;
123
- const Shape = (shape) => (0, traits_1.Derive)((0, exports.Shaped)(shape));
124
- exports.Shape = Shape;
125
- const Optional = (shape) => ({ optional: shape });
126
- exports.Optional = Optional;
17
+ __exportStar(require("./_"), exports);
18
+ __exportStar(require("./choice"), exports);
19
+ __exportStar(require("./class"), exports);
20
+ __exportStar(require("./dict"), exports);
21
+ __exportStar(require("./either"), exports);
22
+ __exportStar(require("./primitive"), exports);
23
+ __exportStar(require("./literal"), exports);
24
+ __exportStar(require("./discriminated-union"), exports);
25
+ __exportStar(require("./mapping"), exports);
26
+ __exportStar(require("./multiple"), exports);
27
+ __exportStar(require("./nothing"), exports);
28
+ __exportStar(require("./optional"), exports);
127
29
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -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":";;;;;;;;;;;;;;;;AAAA,sCAAoB;AACpB,2CAAyB;AACzB,0CAAwB;AACxB,yCAAuB;AACvB,2CAAyB;AACzB,8CAA4B;AAC5B,4CAA0B;AAC1B,wDAAsC;AACtC,4CAA0B;AAC1B,6CAA2B;AAC3B,4CAA0B;AAC1B,6CAA2B"}
@@ -0,0 +1,17 @@
1
+ import { AbstractConstructor, Empty, Expand } from "./_";
2
+ export type LiteralShorthand = string | number;
3
+ export declare const Literal: <const S extends LiteralShorthand, B extends AbstractConstructor<{}> = typeof Empty>(of: S, base?: B) => Omit<B, "prototype"> & Omit<(abstract new (...args: any[]) => {
4
+ readonly value: S;
5
+ serialize(): S;
6
+ }) & {
7
+ value: S;
8
+ $shape: "literal";
9
+ deserialize<T extends any>(this: T, value: S): InstanceType<T>;
10
+ $serialize(value: S): S;
11
+ $deserialize(value: S): S;
12
+ $inline: S;
13
+ }, "prototype"> & (abstract new (value: Expand<S>) => InstanceType<B> & {
14
+ readonly value: S;
15
+ serialize(): S;
16
+ });
17
+ //# sourceMappingURL=literal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"literal.d.ts","sourceRoot":"","sources":["../src/literal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAe,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAEtE,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/C,eAAO,MAAM,OAAO,SAgBH,CAAC,2BAwBE,CAAC,qDAxBJ,CAAC,AAZX,SAoCa,CAAC,AAnCZ;;iBAWQ,CAAC;;;;gBAOE,CAAC,oBAAD,CAAC,AAFR,aAEN,YAAY,CAAC,CAAC,CAAC;;;;;;iBAPL,CAAC;EA+BjB,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Literal = void 0;
4
+ const _1 = require("./_");
5
+ const Literal = (of, base = _1.Empty) => {
6
+ class $Literal extends base {
7
+ value = of;
8
+ static value = of;
9
+ static $shape = "literal";
10
+ serialize() {
11
+ return of;
12
+ }
13
+ static deserialize(value) {
14
+ return new this();
15
+ }
16
+ static $serialize(value) {
17
+ return of;
18
+ }
19
+ static $deserialize(value) {
20
+ return of;
21
+ }
22
+ static $inline;
23
+ }
24
+ return $Literal;
25
+ };
26
+ exports.Literal = Literal;
27
+ //# sourceMappingURL=literal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"literal.js","sourceRoot":"","sources":["../src/literal.ts"],"names":[],"mappings":";;;AAAA,0BAAsE;AAI/D,MAAM,OAAO,GAAG,CAIrB,EAAK,EACL,OAAU,QAAY,EACtB,EAAE;IAGF,MAAe,QAAS,SAAS,IAA+B;QAC9C,KAAK,GAAG,EAAE,CAAC;QAE3B,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;QAElB,MAAM,CAAC,MAAM,GAAG,SAAkB,CAAC;QAEnC,SAAS;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,CAAC,WAAW,CAEhB,KAAa;YAEb,OAAO,IAAK,IAAY,EAAqB,CAAC;QAChD,CAAC;QAED,MAAM,CAAC,UAAU,CAAC,KAAa;YAC7B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,CAAC,YAAY,CAAC,KAAa;YAC/B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,CAAC,OAAO,CAAS;;IAWzB,OAAO,QAAmB,CAAC;AAC7B,CAAC,CAAC;AA/CW,QAAA,OAAO,WA+ClB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=literal.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"literal.spec.d.ts","sourceRoot":"","sources":["../src/literal.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const dict_1 = require("./dict");
4
+ const test_1 = require("./test");
5
+ const literal_1 = require("./literal");
6
+ describe("Literal", () => {
7
+ it("class definition", () => {
8
+ class Test extends (0, literal_1.Literal)("a") {
9
+ test = true;
10
+ }
11
+ // Constructor parameters
12
+ (0, test_1.ex)(Test).toHaveFirstParam().ok;
13
+ // Deserialization
14
+ (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
15
+ const a = Test.deserialize("a");
16
+ (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
17
+ // Additional prototype on deserialization
18
+ (0, test_1.ex)(a.test).toBe(true).ok;
19
+ // Inherited prototype on deserialization
20
+ (0, test_1.ex)(a.value).toBe("a").ok;
21
+ // Serialization
22
+ (0, test_1.ex)(a.serialize()).toBe("a").ok;
23
+ // Instantiation
24
+ const b = new Test("a");
25
+ (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
26
+ // Additional prototype on instantiation
27
+ (0, test_1.ex)(b.test).toBe(true).ok;
28
+ // Inherited prototype on instantiation
29
+ (0, test_1.ex)(b.value).toBe("a").ok;
30
+ });
31
+ it("inline definition", () => {
32
+ class Test extends (0, dict_1.Dict)({ a: (0, literal_1.Literal)("a") }) {
33
+ test = true;
34
+ }
35
+ // Constructor parameters
36
+ (0, test_1.ex)(Test).toHaveFirstParam().ok;
37
+ // Deserialization
38
+ (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
39
+ const a = Test.deserialize({ a: "a" });
40
+ (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
41
+ // Additional prototype on deserialization
42
+ (0, test_1.ex)(a.test).toBe(true).ok;
43
+ // Inherited prototype on deserialization
44
+ (0, test_1.ex)(a.a).toBe("a").ok;
45
+ // Serialization
46
+ (0, test_1.ex)(a.serialize()).toStrictEqual({ a: "a" }).ok;
47
+ // Instantiation
48
+ const b = new Test({ a: "a" });
49
+ (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
50
+ // Additional prototype on instantiation
51
+ (0, test_1.ex)(b.test).toBe(true).ok;
52
+ // Inherited prototype on instantiation
53
+ (0, test_1.ex)(b.a).toBe("a").ok;
54
+ });
55
+ it("referenced definition", () => {
56
+ class A extends (0, literal_1.Literal)("a") {
57
+ }
58
+ class Test extends (0, dict_1.Dict)({ a: A }) {
59
+ test = true;
60
+ }
61
+ // Constructor parameters
62
+ (0, test_1.ex)(Test).toHaveFirstParam().ok;
63
+ // Deserialization
64
+ (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
65
+ const a = Test.deserialize({ a: "a" });
66
+ (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
67
+ // Preserve reference
68
+ (0, test_1.ex)(a.a).toBeInstanceOf(A);
69
+ (0, test_1.ex)(a.a.value).toBe("a").ok;
70
+ // Serialization
71
+ (0, test_1.ex)(a.serialize()).toStrictEqual({ a: "a" }).ok;
72
+ // Instantiation
73
+ const b = new Test({ a: new A("a") });
74
+ (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
75
+ // Inherited prototype on instantiation
76
+ (0, test_1.ex)(b.a).toBeInstanceOf(A);
77
+ (0, test_1.ex)(b.a.value).toBe("a").ok;
78
+ });
79
+ it("mixin extension", () => {
80
+ const Testable = (shape) => {
81
+ class I extends (0, literal_1.Literal)(shape) {
82
+ deep = true;
83
+ static deep = true;
84
+ }
85
+ return I;
86
+ };
87
+ class Test extends Testable(1) {
88
+ test = true;
89
+ // @ts-expect-error is not assignable to parameter of type 'true'
90
+ abstract = false;
91
+ }
92
+ // Constructor parameters
93
+ (0, test_1.ex)(Test).toHaveFirstParam().ok;
94
+ // Additional static prototype
95
+ (0, test_1.ex)(Test.deep).toBe(true).ok;
96
+ // Deserialization
97
+ (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
98
+ const a = Test.deserialize(1);
99
+ (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
100
+ // Additional prototype on deserialization
101
+ (0, test_1.ex)(a.test).toBe(true).ok;
102
+ (0, test_1.ex)(a.abstract).toBe(false).ok;
103
+ // Extended prototype on deserialization
104
+ (0, test_1.ex)(a.deep).toBe(true).ok;
105
+ // Inherited prototype on deserialization
106
+ (0, test_1.ex)(a.value).toStrictEqual(1).ok;
107
+ // Serialization
108
+ (0, test_1.ex)(a.serialize()).toStrictEqual(1).ok;
109
+ // Instantiation
110
+ const b = new Test(1);
111
+ (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
112
+ // Additional prototype on instantiation
113
+ (0, test_1.ex)(b.test).toBe(true).ok;
114
+ (0, test_1.ex)(b.abstract).toBe(false).ok;
115
+ // Extended prototype on instantiation
116
+ (0, test_1.ex)(b.deep).toBe(true).ok;
117
+ // Inherited prototype on instantiation
118
+ (0, test_1.ex)(b.value).toStrictEqual(1).ok;
119
+ });
120
+ it("mixin supersede", () => {
121
+ const Testable = (shape) => {
122
+ class I {
123
+ deep = true;
124
+ static deep = true;
125
+ }
126
+ return (0, literal_1.Literal)(shape, I);
127
+ };
128
+ class Test extends Testable(1) {
129
+ test = true;
130
+ // @ts-expect-error is not assignable to parameter of type 'true'
131
+ abstract = false;
132
+ }
133
+ // Constructor parameters
134
+ (0, test_1.ex)(Test).toHaveFirstParam().ok;
135
+ // Additional static prototype
136
+ (0, test_1.ex)(Test.deep).toBe(true).ok;
137
+ // Deserialization
138
+ (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
139
+ const a = Test.deserialize(1);
140
+ (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
141
+ // Additional prototype on deserialization
142
+ (0, test_1.ex)(a.test).toBe(true).ok;
143
+ (0, test_1.ex)(a.abstract).toBe(false).ok;
144
+ // Superseded prototype on deserialization
145
+ (0, test_1.ex)(a.deep).toBe(true).ok;
146
+ // Inherited prototype on deserialization
147
+ (0, test_1.ex)(a.value).toBe(1).ok;
148
+ // Serialization
149
+ (0, test_1.ex)(a.serialize()).toStrictEqual(1).ok;
150
+ // Instantiation
151
+ const b = new Test(1);
152
+ (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
153
+ // Additional prototype on instantiation
154
+ (0, test_1.ex)(b.test).toBe(true).ok;
155
+ (0, test_1.ex)(b.abstract).toBe(false).ok;
156
+ // Superseded prototype on instantiation
157
+ (0, test_1.ex)(b.deep).toBe(true).ok;
158
+ // Inherited prototype on instantiation
159
+ (0, test_1.ex)(b.value).toBe(1).ok;
160
+ });
161
+ });
162
+ //# sourceMappingURL=literal.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"literal.spec.js","sourceRoot":"","sources":["../src/literal.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { Definition, Expand, Shorthand, DefinitionOf, AbstractConstructor, Empty } from "./_";
2
+ type MappingLiteralKey = [
3
+ [
4
+ StringConstructor,
5
+ string
6
+ ],
7
+ [
8
+ NumberConstructor,
9
+ number
10
+ ]
11
+ ];
12
+ type MappingKeyConstructor = MappingLiteralKey[number][0];
13
+ type MappingKeyRuntimeFromConstructor<S extends MappingKeyConstructor> = S extends StringConstructor ? string : number;
14
+ export type MappingConfiguration = [MappingKeyConstructor, Definition | Shorthand] | [Definition | Shorthand];
15
+ type MappingOf<C extends MappingConfiguration> = C extends [
16
+ infer K extends MappingKeyConstructor,
17
+ infer V extends Definition | Shorthand
18
+ ] ? {
19
+ key: K;
20
+ value: DefinitionOf<V>;
21
+ } : C extends [infer V extends Definition | Shorthand] ? {
22
+ key: StringConstructor;
23
+ value: DefinitionOf<V>;
24
+ } : never;
25
+ export declare const Mapping: <C extends MappingConfiguration, B extends AbstractConstructor<{}> = typeof Empty>(config: C, base?: B) => Omit<B, "prototype"> & Omit<(abstract new (value: Record<MappingKeyRuntimeFromConstructor<MappingOf<C>["key"]>, MappingOf<C>["value"]["$inline"]>) => {
26
+ value: Record<MappingKeyRuntimeFromConstructor<MappingOf<C>["key"]>, MappingOf<C>["value"]["$inline"]>;
27
+ serialize(): Expand<Record<MappingKeyRuntimeFromConstructor<MappingOf<C>["key"]>, ReturnType<MappingOf<C>["value"]["$serialize"]>>>;
28
+ }) & {
29
+ $shape: "mapping";
30
+ deserialize<T extends any>(this: T, value: Expand<Record<MappingKeyRuntimeFromConstructor<MappingOf<C>["key"]>, ReturnType<MappingOf<C>["value"]["$serialize"]>>>): InstanceType<T>;
31
+ $deserialize<T_1 extends any>(this: T_1, value: Record<MappingKeyRuntimeFromConstructor<MappingOf<C>["key"]>, ReturnType<MappingOf<C>["value"]["$serialize"]>>): Record<MappingKeyRuntimeFromConstructor<MappingOf<C>["key"]>, MappingOf<C>["value"]["$inline"]>;
32
+ $serialize<T_2 extends any>(this: T_2, value: Record<MappingKeyRuntimeFromConstructor<MappingOf<C>["key"]>, MappingOf<C>["value"]["$inline"]>): Record<MappingKeyRuntimeFromConstructor<MappingOf<C>["key"]>, ReturnType<MappingOf<C>["value"]["$serialize"]>>;
33
+ $inline: Record<MappingKeyRuntimeFromConstructor<MappingOf<C>["key"]>, MappingOf<C>["value"]["$inline"]>;
34
+ }, "prototype"> & (abstract new (value: Expand<Record<MappingKeyRuntimeFromConstructor<MappingOf<C>["key"]>, MappingOf<C>["value"]["$inline"]>>) => InstanceType<B> & {
35
+ value: Record<MappingKeyRuntimeFromConstructor<MappingOf<C>["key"]>, MappingOf<C>["value"]["$inline"]>;
36
+ serialize(): Expand<Record<MappingKeyRuntimeFromConstructor<MappingOf<C>["key"]>, ReturnType<MappingOf<C>["value"]["$serialize"]>>>;
37
+ });
38
+ export {};
39
+ //# sourceMappingURL=mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,MAAM,EACN,SAAS,EACT,YAAY,EAEZ,mBAAmB,EACnB,KAAK,EAEN,MAAM,KAAK,CAAC;AAGb,KAAK,iBAAiB,GAAG;IACvB;QAAC,iBAAiB;QAAE,MAAM;KAAC;IAC3B;QAAC,iBAAiB;QAAE,MAAM;KAAC;CAC5B,CAAC;AACF,KAAK,qBAAqB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,KAAK,gCAAgC,CAAC,CAAC,SAAS,qBAAqB,IACnE,CAAC,SAAS,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhD,MAAM,MAAM,oBAAoB,GAC5B,CAAC,qBAAqB,EAAE,UAAU,GAAG,SAAS,CAAC,GAC/C,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;AAE7B,KAAK,SAAS,CAAC,CAAC,SAAS,oBAAoB,IAAI,CAAC,SAAS;IACzD,MAAM,CAAC,SAAS,qBAAqB;IACrC,MAAM,CAAC,SAAS,UAAU,GAAG,SAAS;CACvC,GACG;IAAE,GAAG,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;CAAE,GAClC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,UAAU,GAAG,SAAS,CAAC,GAChD;IAAE,GAAG,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;CAAE,GAClD,KAAK,CAAC;AAEZ,eAAO,MAAM,OAAO,GAIV,CAAC,+BAmES,CAAC,yDAnEX,CAAC,SAmES,CAAC,AAlEZ;;;;;gBA8BW,CAAC,oBAAD,CAAC,AAFR,kIAEN,YAAY,CAAC,CAAC,CAAC;iBAKV,GAAC,oBAAD,GAAC;eAaD,GAAC,oBAAD,GAAC;;;;;EAyBZ,CAAC"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Mapping = void 0;
4
+ const _1 = require("./_");
5
+ const primitive_1 = require("./primitive");
6
+ const Mapping = (config, base = _1.Empty) => {
7
+ let [_key, _value] = config;
8
+ if (config.length === 1) {
9
+ _key = (0, primitive_1.Primitive)(String);
10
+ _value = config[0];
11
+ }
12
+ const { $key, $value } = { $key: _key, $value: _value };
13
+ class $Mapping extends base {
14
+ value;
15
+ constructor(value) {
16
+ super();
17
+ this.value = value;
18
+ }
19
+ static $shape = "mapping";
20
+ serialize() {
21
+ return $Mapping.$serialize(this.value);
22
+ }
23
+ static deserialize(value) {
24
+ return new this($Mapping.$deserialize(value));
25
+ }
26
+ static $deserialize(value) {
27
+ const split = Object.entries(value);
28
+ const transform = split.map(([key, child]) => {
29
+ const longhand = (0, _1.Shape)(_value);
30
+ const deserialized = longhand.$deserialize(child);
31
+ return [key, deserialized];
32
+ });
33
+ return Object.fromEntries(transform);
34
+ }
35
+ static $serialize(value) {
36
+ const split = Object.entries(value);
37
+ const transform = split.map(([key, child]) => {
38
+ const longhand = (0, _1.Shape)($value);
39
+ const serialized = longhand.$serialize(child);
40
+ return [key, serialized];
41
+ });
42
+ const merge = Object.fromEntries(transform);
43
+ return merge;
44
+ }
45
+ static $inline;
46
+ }
47
+ return $Mapping;
48
+ };
49
+ exports.Mapping = Mapping;
50
+ //# sourceMappingURL=mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":";;;AAAA,0BASa;AACb,2CAAwC;AAuBjC,MAAM,OAAO,GAAG,CAIrB,MAAS,EACT,OAAU,QAAY,EACtB,EAAE;IACF,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,IAAI,GAAG,IAAA,qBAAS,EAAC,MAAM,CAAC,CAAC;QACzB,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAQxD,MAAe,QAAS,SAAS,IAA+B;QAC3C;QAAnB,YAAmB,KAAa;YAC9B,KAAK,EAAE,CAAC;YADS,UAAK,GAAL,KAAK,CAAQ;QAEhC,CAAC;QAED,MAAM,CAAC,MAAM,GAAG,SAAkB,CAAC;QAEnC,SAAS;YACP,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAQ,CAAC;QAChD,CAAC;QAED,MAAM,CAAC,WAAW,CAEhB,KAAyB;YAEzB,OAAO,IAAK,IAAY,CAAE,QAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAQ,CAAC;QACzE,CAAC;QAED,MAAM,CAAC,YAAY,CAEjB,KAAiB;YAEjB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC3C,MAAM,QAAQ,GAAG,IAAA,QAAK,EAAC,MAAM,CAAQ,CAAC;gBACtC,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAY,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,EAAE,YAAY,CAAU,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,WAAW,CAAC,SAAS,CAAQ,CAAC;QAC9C,CAAC;QAED,MAAM,CAAC,UAAU,CAEf,KAAa;YAEb,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC3C,MAAM,QAAQ,GAAG,IAAA,QAAK,EAAC,MAAM,CAAQ,CAAC;gBACtC,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAY,CAAC,CAAC;gBACrD,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,CAAC,OAAO,CAAS;;IAWzB,OAAO,QAA0B,CAAC;AACpC,CAAC,CAAC;AA9EW,QAAA,OAAO,WA8ElB"}