@ddd-ts/shape 0.0.3-54 → 0.0.3-56

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 (99) hide show
  1. package/dist/_.d.ts +39 -0
  2. package/dist/_.d.ts.map +1 -0
  3. package/dist/_.js +51 -0
  4. package/dist/_.js.map +1 -0
  5. package/dist/allcases.d.ts +2 -0
  6. package/dist/allcases.d.ts.map +1 -0
  7. package/dist/allcases.js +4 -0
  8. package/dist/allcases.js.map +1 -0
  9. package/dist/choice.d.ts +41 -0
  10. package/dist/choice.d.ts.map +1 -0
  11. package/dist/choice.js +46 -0
  12. package/dist/choice.js.map +1 -0
  13. package/dist/choice.spec.d.ts +2 -0
  14. package/dist/choice.spec.d.ts.map +1 -0
  15. package/dist/choice.spec.js +147 -0
  16. package/dist/choice.spec.js.map +1 -0
  17. package/dist/choice.type.d.ts +2 -0
  18. package/dist/choice.type.d.ts.map +1 -0
  19. package/dist/choice.type.js +50 -0
  20. package/dist/choice.type.js.map +1 -0
  21. package/dist/class.d.ts +21 -0
  22. package/dist/class.d.ts.map +1 -0
  23. package/dist/class.js +30 -0
  24. package/dist/class.js.map +1 -0
  25. package/dist/class.spec.d.ts +2 -0
  26. package/dist/class.spec.d.ts.map +1 -0
  27. package/dist/class.spec.js +39 -0
  28. package/dist/class.spec.js.map +1 -0
  29. package/dist/dict.d.ts +20 -0
  30. package/dist/dict.d.ts.map +1 -0
  31. package/dist/dict.js +46 -0
  32. package/dist/dict.js.map +1 -0
  33. package/dist/dict.spec.d.ts +2 -0
  34. package/dist/dict.spec.d.ts.map +1 -0
  35. package/dist/dict.spec.js +180 -0
  36. package/dist/dict.spec.js.map +1 -0
  37. package/dist/either.d.ts +21 -0
  38. package/dist/either.d.ts.map +1 -0
  39. package/dist/either.js +42 -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 +199 -0
  44. package/dist/either.spec.js.map +1 -0
  45. package/dist/enum.d.ts +19 -23
  46. package/dist/enum.d.ts.map +1 -1
  47. package/dist/enum.js +26 -20
  48. package/dist/enum.js.map +1 -1
  49. package/dist/enum.spec.js +212 -61
  50. package/dist/enum.spec.js.map +1 -1
  51. package/dist/index.d.ts +10 -15
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +10 -15
  54. package/dist/index.js.map +1 -1
  55. package/dist/literal.d.ts +43 -0
  56. package/dist/literal.d.ts.map +1 -0
  57. package/dist/literal.js +30 -0
  58. package/dist/literal.js.map +1 -0
  59. package/dist/literal.spec.d.ts +2 -0
  60. package/dist/literal.spec.d.ts.map +1 -0
  61. package/dist/literal.spec.js +162 -0
  62. package/dist/literal.spec.js.map +1 -0
  63. package/dist/mapping.d.ts +39 -0
  64. package/dist/mapping.d.ts.map +1 -0
  65. package/dist/mapping.js +50 -0
  66. package/dist/mapping.js.map +1 -0
  67. package/dist/mapping.spec.d.ts +2 -0
  68. package/dist/mapping.spec.d.ts.map +1 -0
  69. package/dist/mapping.spec.js +207 -0
  70. package/dist/mapping.spec.js.map +1 -0
  71. package/dist/multiple.d.ts +159 -0
  72. package/dist/multiple.d.ts.map +1 -0
  73. package/dist/multiple.js +60 -0
  74. package/dist/multiple.js.map +1 -0
  75. package/dist/multiple.spec.d.ts +2 -0
  76. package/dist/multiple.spec.d.ts.map +1 -0
  77. package/dist/multiple.spec.js +208 -0
  78. package/dist/multiple.spec.js.map +1 -0
  79. package/dist/nothing.d.ts +14 -0
  80. package/dist/nothing.d.ts.map +1 -0
  81. package/dist/nothing.js +19 -0
  82. package/dist/nothing.js.map +1 -0
  83. package/dist/nothing.spec.d.ts +2 -0
  84. package/dist/nothing.spec.d.ts.map +1 -0
  85. package/dist/nothing.spec.js +172 -0
  86. package/dist/nothing.spec.js.map +1 -0
  87. package/dist/optional.d.ts +24 -0
  88. package/dist/optional.d.ts.map +1 -0
  89. package/dist/optional.js +40 -0
  90. package/dist/optional.js.map +1 -0
  91. package/dist/optional.spec.d.ts +2 -0
  92. package/dist/optional.spec.d.ts.map +1 -0
  93. package/dist/optional.spec.js +172 -0
  94. package/dist/optional.spec.js.map +1 -0
  95. package/dist/test.d.ts +36 -0
  96. package/dist/test.d.ts.map +1 -0
  97. package/dist/test.js +46 -0
  98. package/dist/test.js.map +1 -0
  99. package/package.json +1 -1
package/dist/enum.spec.js CHANGED
@@ -1,71 +1,222 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const either_1 = require("./either");
4
+ const dict_1 = require("./dict");
5
+ const test_1 = require("./test");
3
6
  const enum_1 = require("./enum");
4
- describe('Enum', () => {
5
- class Bool extends (0, enum_1.Enum)(['yes', 'no']) {
6
- }
7
- it('should instanciate', () => {
8
- new Bool('yes');
9
- new Bool('no');
10
- // @ts-expect-error it should not be possible to instanciate with invalid value
11
- new Bool('maybe');
7
+ const _1 = require(".");
8
+ class Square extends (0, _1.Shape)({
9
+ side: Number,
10
+ }) {
11
+ }
12
+ class Circle extends (0, _1.Shape)({
13
+ radius: Number,
14
+ }) {
15
+ }
16
+ class Thing extends (0, enum_1.Enum)({ Circle, Square }) {
17
+ }
18
+ const thing = new Thing(new Circle({ radius: 10 }));
19
+ const result = thing.match({
20
+ _: (other) => other,
21
+ });
22
+ describe("Enum", () => {
23
+ it("class definition", () => {
24
+ class Test extends (0, enum_1.Enum)({
25
+ String,
26
+ Number,
27
+ }) {
28
+ test = true;
29
+ }
30
+ // Constructor parameters
31
+ (0, test_1.ex)(Test).toHaveFirstParam().ok;
32
+ // Deserialization
33
+ (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
34
+ const a = Test.deserialize(["String", "test"]);
35
+ (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
36
+ // Additional prototype
37
+ (0, test_1.ex)(a.test).toBe(true).ok;
38
+ // Inherited prototype on deserialization
39
+ (0, test_1.ex)(a.value).toBe("test").ok;
40
+ (0, test_1.ex)(a.match({
41
+ String: () => "string",
42
+ Number: () => "number",
43
+ })).toBe("string").ok;
44
+ // Serialization
45
+ (0, test_1.ex)(a.serialize()).toStrictEqual([0, "test"]).ok;
46
+ // Instantiation
47
+ const b = new Test("test");
48
+ (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
49
+ // Inherited prototype on instantiation
50
+ (0, test_1.ex)(b.value).toBe("test").ok;
12
51
  });
13
- it('should serialize and deserialize', () => {
14
- const test = Bool.deserialize('yes').serialize();
15
- expect(test).toBe('yes');
52
+ it("class definition with constructors", () => {
53
+ class A extends (0, dict_1.Dict)({ a: String }) {
54
+ }
55
+ class B {
56
+ a;
57
+ constructor({ a }) {
58
+ Object.assign(this, { a });
59
+ }
60
+ static deserialize({ a }) {
61
+ return new B({ a });
62
+ }
63
+ serialize() {
64
+ return { a: this.a };
65
+ }
66
+ }
67
+ class Test extends (0, either_1.Either)([A, B]) {
68
+ test = true;
69
+ }
70
+ // Constructor parameters
71
+ (0, test_1.ex)(Test).toHaveFirstParam().ok;
72
+ // Deserialization
73
+ (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
74
+ const a = Test.deserialize([0, { a: "test" }]);
75
+ (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
76
+ const b = Test.deserialize([1, { a: "test" }]);
77
+ (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
78
+ // Additional prototype
79
+ (0, test_1.ex)(a.test).toBe(true).ok;
80
+ // Inherited prototype on deserialization
81
+ (0, test_1.ex)(a.value).toBeInstanceOf(A).ok;
82
+ (0, test_1.ex)(b.value).toBeInstanceOf(B).ok;
83
+ // Serialization
84
+ (0, test_1.ex)(a.serialize()).toStrictEqual([0, { a: "test" }]).ok;
85
+ (0, test_1.ex)(b.serialize()).toStrictEqual([1, { a: "test" }]).ok;
86
+ // Instantiation
87
+ const c = new Test(new A({ a: "test" }));
88
+ (0, test_1.ex)(c).toBeInstanceOf(Test).ok;
89
+ const d = new Test(new B({ a: "test" }));
90
+ (0, test_1.ex)(d).toBeInstanceOf(Test).ok;
91
+ // Inherited prototype
92
+ (0, test_1.ex)(c.value).toBeInstanceOf(A).ok;
93
+ (0, test_1.ex)(c.value.a).toBe("test").ok;
94
+ (0, test_1.ex)(d.value).toBeInstanceOf(B).ok;
95
+ (0, test_1.ex)(d.value.a).toBe("test").ok;
16
96
  });
17
- it('should pattern match', async () => {
18
- const test = await Bool.deserialize('yes').match({
19
- yes: async () => 'yeap',
20
- no: async () => 'nope'
21
- });
22
- expect(test).toBe('yeap');
23
- // @ts-expect-error it should not be possible to pattern match with incomplete cases
24
- Bool.deserialize('yes').match({
25
- yes: () => 'yeap',
26
- });
27
- // it should allow catch all instead of other cases
28
- Bool.deserialize('yes').match({
29
- yes: () => 'yeap',
30
- _: () => 'nope'
31
- });
97
+ it("inline definition", () => {
98
+ class Test extends (0, dict_1.Dict)({ nested: (0, either_1.Either)([String, Number]) }) {
99
+ }
100
+ // Constructor parameters
101
+ (0, test_1.ex)(Test).toHaveFirstParam().ok;
102
+ // Deserialization
103
+ (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
104
+ const a = Test.deserialize({ nested: [0, "test"] });
105
+ (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
106
+ // Inherited prototype on deserialization
107
+ (0, test_1.ex)(a.nested).toBe("test").ok;
108
+ // Serialization
109
+ (0, test_1.ex)(a.serialize()).toStrictEqual({ nested: [0, "test"] }).ok;
110
+ // Instantiation
111
+ const b = new Test({ nested: "test" });
112
+ (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
113
+ // Inherited prototype on instantiation
114
+ (0, test_1.ex)(b.nested).toBe("test").ok;
115
+ });
116
+ it("referenced definition", () => {
117
+ class A extends (0, either_1.Either)([String, Number]) {
118
+ }
119
+ class Test extends (0, dict_1.Dict)({ nested: A }) {
120
+ }
121
+ // Constructor parameters
122
+ (0, test_1.ex)(Test).toHaveFirstParam().ok;
123
+ // Deserialization
124
+ (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
125
+ const a = Test.deserialize({ nested: [0, "test"] });
126
+ (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
127
+ // Inherited prototype on deserialization
128
+ (0, test_1.ex)(a.nested).toBeInstanceOf(A).ok;
129
+ (0, test_1.ex)(a.nested.value).toBe("test").ok;
130
+ // Serialization
131
+ (0, test_1.ex)(a.serialize()).toStrictEqual({ nested: [0, "test"] }).ok;
132
+ // Instantiation
133
+ const b = new Test({ nested: new A("test") });
134
+ (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
135
+ // Inherited prototype on instantiation
136
+ (0, test_1.ex)(b.nested.value).toBe("test").ok;
137
+ });
138
+ it("mixin extension", () => {
139
+ const Mixin = (either) => {
140
+ class Mix extends (0, either_1.Either)(either) {
141
+ deep = true;
142
+ static deep = true;
143
+ }
144
+ return Mix;
145
+ };
146
+ class Test extends Mixin([String, Number]) {
147
+ test = true;
148
+ // @ts-expect-error is not assignable to parameter of type 'true'
149
+ abstract = false;
150
+ }
151
+ // Constructor parameters
152
+ (0, test_1.ex)(Test).toHaveFirstParam().ok;
153
+ // Additional static prototype
154
+ (0, test_1.ex)(Test.deep).toBe(true).ok;
155
+ // Deserialization
156
+ (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
157
+ const a = Test.deserialize([0, "test"]);
158
+ (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
159
+ // Additional prototype on deserialization
160
+ (0, test_1.ex)(a.test).toBe(true).ok;
161
+ (0, test_1.ex)(a.abstract).toBe(false).ok;
162
+ // Extended prototype on deserialization
163
+ (0, test_1.ex)(a.deep).toBe(true).ok;
164
+ // Inherited prototype on deserialization
165
+ (0, test_1.ex)(a.value).toBe("test").ok;
166
+ // Serialization
167
+ (0, test_1.ex)(a.serialize()).toStrictEqual([0, "test"]).ok;
168
+ // Instantiation
169
+ const b = new Test("test");
170
+ (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
171
+ // Additional prototype on instantiation
172
+ (0, test_1.ex)(b.test).toBe(true).ok;
173
+ (0, test_1.ex)(b.abstract).toBe(false).ok;
174
+ // Extended prototype on instantiation
175
+ (0, test_1.ex)(b.deep).toBe(true).ok;
176
+ // Inherited prototype on instantiation
177
+ (0, test_1.ex)(b.value).toBe("test").ok;
32
178
  });
33
- it('should become predictible after conditional', () => {
34
- const value = Bool.yes();
35
- if (value.is('yes')) {
36
- const test = value.serialize();
37
- expect(test).toBe('yes');
179
+ it("mixin supersede", () => {
180
+ const Testable = (config) => {
181
+ class I {
182
+ deep = true;
183
+ static deep = true;
184
+ }
185
+ return (0, either_1.Either)(config, I);
186
+ };
187
+ class Test extends Testable([String, Number]) {
188
+ test = true;
189
+ // @ts-expect-error is not assignable to parameter of type 'true'
190
+ abstract = false;
38
191
  }
192
+ // Constructor type
193
+ (0, test_1.ex)(Test).toHaveFirstParam().ok;
194
+ // Additional static prototype
195
+ (0, test_1.ex)(Test.deep).toBe(true).ok;
196
+ // Deserialization
197
+ (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
198
+ const a = Test.deserialize([0, "test"]);
199
+ (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
200
+ // Additional prototype on deserialization
201
+ (0, test_1.ex)(a.test).toBe(true).ok;
202
+ (0, test_1.ex)(a.abstract).toBe(false).ok;
203
+ // Superseded prototype on deserialization
204
+ (0, test_1.ex)(a.deep).toBe(true).ok;
205
+ // Inherited prototype on deserialization
206
+ (0, test_1.ex)(a.value).toBe("test").ok;
207
+ // Serialization
208
+ (0, test_1.ex)(a.serialize()).toStrictEqual([0, "test"]).ok;
209
+ // Instantiation
210
+ const b = new Test(2);
211
+ (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
212
+ // Additional prototype on instantiation
213
+ (0, test_1.ex)(b.test).toBe(true).ok;
214
+ (0, test_1.ex)(b.abstract).toBe(false).ok;
215
+ // Superseded prototype on instantiation
216
+ (0, test_1.ex)(b.deep).toBe(true).ok;
217
+ (0, test_1.ex)(b.abstract).toBe(false).ok;
218
+ // Inherited prototype on instantiation
219
+ (0, test_1.ex)(b.value).toBe(2).ok;
39
220
  });
40
- // For next time :p
41
- //
42
- // it.skip('should allow struct enums', () => {
43
- // class Triangle extends Shape(Number) { }
44
- // class Geometry extends Enum({
45
- // Point: null,
46
- // Circle: Number,
47
- // Rectangle: { side: Number }
48
- // Triangle,
49
- // }){}
50
- // const rect = Geometry.deserialize({
51
- // variant: 'Rectangle',
52
- // params: {
53
- // side: 2
54
- // }
55
- // }).serialize()
56
- // expect(rect).toEqual({
57
- // variant: 'Rectangle',
58
- // params: {
59
- // side: 2
60
- // }
61
- // })
62
- // const triangle = Geometry.deserialize({
63
- // variant: 'Triangle',
64
- // params: 3
65
- // })
66
- // if(triangle.is('Triangle')){
67
- // triangle.value === 3
68
- // }
69
- // })
70
221
  });
71
222
  //# sourceMappingURL=enum.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum.spec.js","sourceRoot":"","sources":["../src/enum.spec.ts"],"names":[],"mappings":";;AAAA,iCAA6B;AAE7B,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IAClB,MAAM,IAAK,SAAQ,IAAA,WAAI,EAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KAAI;IAC1C,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;QACf,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;QACd,+EAA+E;QAC/E,IAAI,IAAI,CAAC,OAAO,CAAC,CAAA;IACrB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QACxC,MAAM,IAAI,GAAiB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,CAAA;QAC9D,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,IAAI,GAAoB,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;YAC9D,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,MAAe;YAChC,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,MAAe;SAClC,CAAC,CAAA;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEzB,oFAAoF;QACpF,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;YAC1B,GAAG,EAAE,GAAG,EAAE,CAAC,MAAe;SAC7B,CAAC,CAAA;QAEF,mDAAmD;QACnD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;YAC1B,GAAG,EAAE,GAAG,EAAE,CAAC,MAAe;YAC1B,CAAC,EAAE,GAAG,EAAE,CAAC,MAAe;SAC3B,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,IAAI,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;YACjB,MAAM,IAAI,GAAU,KAAK,CAAC,SAAS,EAAE,CAAA;YACrC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;SAC3B;IACL,CAAC,CAAC,CAAA;IAGF,mBAAmB;IACnB,EAAE;IACF,+CAA+C;IAC/C,+CAA+C;IAE/C,oCAAoC;IACpC,uBAAuB;IACvB,0BAA0B;IAC1B,sCAAsC;IACtC,oBAAoB;IACpB,WAAW;IAEX,0CAA0C;IAC1C,gCAAgC;IAChC,oBAAoB;IACpB,sBAAsB;IACtB,YAAY;IACZ,qBAAqB;IAErB,6BAA6B;IAC7B,gCAAgC;IAChC,oBAAoB;IACpB,sBAAsB;IACtB,YAAY;IACZ,SAAS;IAET,8CAA8C;IAC9C,+BAA+B;IAC/B,oBAAoB;IACpB,SAAS;IAGT,mCAAmC;IACnC,+BAA+B;IAC/B,SAAS;IACT,KAAK;AACT,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"enum.spec.js","sourceRoot":"","sources":["../src/enum.spec.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,16 +1,11 @@
1
- export * from "./definitions/child";
2
- export * from "./definitions/definition";
3
- export * from "./definitions/dict";
4
- export * from "./definitions/literal";
5
- export * from "./definitions/multiple";
6
- export * from "./definitions/serializableClass";
7
- export * from "./definitions/shorthands";
8
- export * from "./definitions/stringEnum";
9
- export * from "./definitions/tuple";
10
- export * from "./definitions/optional";
11
- export * from "./definitions/either";
12
- export * from "./definitions/nothing";
13
- export * from "./mixins/shape";
14
- export * from "./shorthandToLonghand";
15
- export * from "./types";
1
+ export * from "./_";
2
+ export * from "./choice";
3
+ export * from "./class";
4
+ export * from "./dict";
5
+ export * from "./either";
6
+ export * from "./literal";
7
+ export * from "./mapping";
8
+ export * from "./multiple";
9
+ export * from "./nothing";
10
+ export * from "./optional";
16
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC"}
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,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -14,19 +14,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./definitions/child"), exports);
18
- __exportStar(require("./definitions/definition"), exports);
19
- __exportStar(require("./definitions/dict"), exports);
20
- __exportStar(require("./definitions/literal"), exports);
21
- __exportStar(require("./definitions/multiple"), exports);
22
- __exportStar(require("./definitions/serializableClass"), exports);
23
- __exportStar(require("./definitions/shorthands"), exports);
24
- __exportStar(require("./definitions/stringEnum"), exports);
25
- __exportStar(require("./definitions/tuple"), exports);
26
- __exportStar(require("./definitions/optional"), exports);
27
- __exportStar(require("./definitions/either"), exports);
28
- __exportStar(require("./definitions/nothing"), exports);
29
- __exportStar(require("./mixins/shape"), exports);
30
- __exportStar(require("./shorthandToLonghand"), exports);
31
- __exportStar(require("./types"), exports);
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("./literal"), exports);
23
+ __exportStar(require("./mapping"), exports);
24
+ __exportStar(require("./multiple"), exports);
25
+ __exportStar(require("./nothing"), exports);
26
+ __exportStar(require("./optional"), exports);
32
27
  //# 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":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,2DAAyC;AACzC,qDAAmC;AACnC,wDAAsC;AACtC,yDAAuC;AACvC,kEAAgD;AAChD,2DAAyC;AACzC,2DAAyC;AACzC,sDAAoC;AACpC,yDAAuC;AACvC,uDAAqC;AACrC,wDAAsC;AACtC,iDAA+B;AAC/B,wDAAsC;AACtC,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sCAAoB;AACpB,2CAAyB;AACzB,0CAAwB;AACxB,yCAAuB;AACvB,2CAAyB;AACzB,4CAA0B;AAC1B,4CAA0B;AAC1B,6CAA2B;AAC3B,4CAA0B;AAC1B,6CAA2B"}
@@ -0,0 +1,43 @@
1
+ import { AbstractConstructor, Empty, Expand } from "./_";
2
+ type LiteralMap = [
3
+ [
4
+ StringConstructor,
5
+ string
6
+ ],
7
+ [
8
+ NumberConstructor,
9
+ number
10
+ ],
11
+ [
12
+ DateConstructor,
13
+ Date
14
+ ],
15
+ [
16
+ BooleanConstructor,
17
+ boolean
18
+ ]
19
+ ];
20
+ type LiteralConstructor = LiteralMap[number][0];
21
+ export type LiteralFromConstructor<S> = Extract<LiteralMap[number], [
22
+ S,
23
+ any
24
+ ]>[1];
25
+ export type LiteralShorthand = LiteralConstructor;
26
+ export declare const Literal: <S extends StringConstructor | NumberConstructor | DateConstructor | BooleanConstructor, B extends AbstractConstructor<{}> = typeof Empty>(of: S, base?: B) => Omit<B, "prototype"> & Omit<(abstract new (value: Expand<LiteralFromConstructor<S>>) => {
27
+ readonly value: Expand<LiteralFromConstructor<S>>;
28
+ serialize(): LiteralFromConstructor<S>;
29
+ }) & {
30
+ $name: "literal";
31
+ deserialize<T extends Omit<any, ""> & (new (value: Expand<LiteralFromConstructor<S>>) => {
32
+ readonly value: Expand<LiteralFromConstructor<S>>;
33
+ serialize(): LiteralFromConstructor<S>;
34
+ })>(this: T, value: LiteralFromConstructor<S>): InstanceType<T>;
35
+ $serialize(value: LiteralFromConstructor<S>): LiteralFromConstructor<S>;
36
+ $deserialize(value: LiteralFromConstructor<S>): LiteralFromConstructor<S>;
37
+ $inline: Expand<LiteralFromConstructor<S>>;
38
+ }, "prototype"> & (abstract new (value: Expand<LiteralFromConstructor<S>>) => InstanceType<B> & {
39
+ readonly value: Expand<LiteralFromConstructor<S>>;
40
+ serialize(): LiteralFromConstructor<S>;
41
+ });
42
+ export {};
43
+ //# 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,EAAyB,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAEhF,KAAK,UAAU,GAAG;IAChB;QAAC,iBAAiB;QAAE,MAAM;KAAC;IAC3B;QAAC,iBAAiB;QAAE,MAAM;KAAC;IAC3B;QAAC,eAAe;QAAE,IAAI;KAAC;IACvB;QAAC,kBAAkB;QAAE,OAAO;KAAC;CAC9B,CAAC;AAEF,KAAK,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI,OAAO,CAC7C,UAAU,CAAC,MAAM,CAAC,EAClB;IAAC,CAAC;IAAE,GAAG;CAAC,CACT,CAAC,CAAC,CAAC,CAAC;AAEL,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAElD,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;EA+CnB,CAAC"}
@@ -0,0 +1,30 @@
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;
8
+ constructor(value) {
9
+ super();
10
+ this.value = value;
11
+ }
12
+ static $name = "literal";
13
+ serialize() {
14
+ return this.value;
15
+ }
16
+ static deserialize(value) {
17
+ return new this(this.$deserialize(value));
18
+ }
19
+ static $serialize(value) {
20
+ return value;
21
+ }
22
+ static $deserialize(value) {
23
+ return value;
24
+ }
25
+ static $inline;
26
+ }
27
+ return $Literal;
28
+ };
29
+ exports.Literal = Literal;
30
+ //# sourceMappingURL=literal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"literal.js","sourceRoot":"","sources":["../src/literal.ts"],"names":[],"mappings":";;;AAAA,0BAAgF;AAiBzE,MAAM,OAAO,GAAG,CAIrB,EAAK,EACL,OAAU,QAAY,EACtB,EAAE;IAGF,MAAe,QAAS,SAAS,IAA+B;QAClC;QAA5B,YAA4B,KAAqB;YAC/C,KAAK,EAAE,CAAC;YADkB,UAAK,GAAL,KAAK,CAAgB;QAEjD,CAAC;QAED,MAAM,CAAC,KAAK,GAAG,SAAkB,CAAC;QAElC,SAAS;YACP,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;QAED,MAAM,CAAC,WAAW,CAEhB,KAAa;YAEb,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAoB,CAAC;QAC/D,CAAC;QAED,MAAM,CAAC,UAAU,CAAC,KAAa;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,CAAC,YAAY,CAAC,KAAa;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,CAAC,OAAO,CAAiB;;IAWjC,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 literal_1 = require("./literal");
4
+ const dict_1 = require("./dict");
5
+ const test_1 = require("./test");
6
+ describe("Literal", () => {
7
+ it("class definition", () => {
8
+ class Test extends (0, literal_1.Literal)(String) {
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)(String) }) {
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)(String) {
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(Number) {
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(2);
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(2).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(Number) {
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(2);
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(2).ok;
160
+ });
161
+ });
162
+ //# sourceMappingURL=literal.spec.js.map