@ddd-ts/shape 0.0.0-chore-lint-biome-dependency.1 → 0.0.0-compute-timeout-on-process.2

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 (101) hide show
  1. package/package.json +19 -7
  2. package/dist/_.d.ts +0 -39
  3. package/dist/_.d.ts.map +0 -1
  4. package/dist/_.js +0 -55
  5. package/dist/_.js.map +0 -1
  6. package/dist/choice.d.ts +0 -41
  7. package/dist/choice.d.ts.map +0 -1
  8. package/dist/choice.js +0 -47
  9. package/dist/choice.js.map +0 -1
  10. package/dist/choice.spec.d.ts +0 -2
  11. package/dist/choice.spec.d.ts.map +0 -1
  12. package/dist/choice.spec.js +0 -147
  13. package/dist/choice.spec.js.map +0 -1
  14. package/dist/class.d.ts +0 -22
  15. package/dist/class.d.ts.map +0 -1
  16. package/dist/class.js +0 -31
  17. package/dist/class.js.map +0 -1
  18. package/dist/class.spec.d.ts +0 -2
  19. package/dist/class.spec.d.ts.map +0 -1
  20. package/dist/class.spec.js +0 -39
  21. package/dist/class.spec.js.map +0 -1
  22. package/dist/dict.d.ts +0 -31
  23. package/dist/dict.d.ts.map +0 -1
  24. package/dist/dict.js +0 -45
  25. package/dist/dict.js.map +0 -1
  26. package/dist/dict.spec.d.ts +0 -2
  27. package/dist/dict.spec.d.ts.map +0 -1
  28. package/dist/dict.spec.js +0 -180
  29. package/dist/dict.spec.js.map +0 -1
  30. package/dist/discriminated-union.d.ts +0 -75
  31. package/dist/discriminated-union.d.ts.map +0 -1
  32. package/dist/discriminated-union.js +0 -99
  33. package/dist/discriminated-union.js.map +0 -1
  34. package/dist/discriminated-union.spec.d.ts +0 -2
  35. package/dist/discriminated-union.spec.d.ts.map +0 -1
  36. package/dist/discriminated-union.spec.js +0 -262
  37. package/dist/discriminated-union.spec.js.map +0 -1
  38. package/dist/either.d.ts +0 -40
  39. package/dist/either.d.ts.map +0 -1
  40. package/dist/either.js +0 -63
  41. package/dist/either.js.map +0 -1
  42. package/dist/either.spec.d.ts +0 -2
  43. package/dist/either.spec.d.ts.map +0 -1
  44. package/dist/either.spec.js +0 -211
  45. package/dist/either.spec.js.map +0 -1
  46. package/dist/index.d.ts +0 -13
  47. package/dist/index.d.ts.map +0 -1
  48. package/dist/index.js +0 -29
  49. package/dist/index.js.map +0 -1
  50. package/dist/literal.d.ts +0 -17
  51. package/dist/literal.d.ts.map +0 -1
  52. package/dist/literal.js +0 -27
  53. package/dist/literal.js.map +0 -1
  54. package/dist/literal.spec.d.ts +0 -2
  55. package/dist/literal.spec.d.ts.map +0 -1
  56. package/dist/literal.spec.js +0 -162
  57. package/dist/literal.spec.js.map +0 -1
  58. package/dist/mapping.d.ts +0 -39
  59. package/dist/mapping.d.ts.map +0 -1
  60. package/dist/mapping.js +0 -50
  61. package/dist/mapping.js.map +0 -1
  62. package/dist/mapping.spec.d.ts +0 -2
  63. package/dist/mapping.spec.d.ts.map +0 -1
  64. package/dist/mapping.spec.js +0 -207
  65. package/dist/mapping.spec.js.map +0 -1
  66. package/dist/multiple.d.ts +0 -110
  67. package/dist/multiple.d.ts.map +0 -1
  68. package/dist/multiple.js +0 -106
  69. package/dist/multiple.js.map +0 -1
  70. package/dist/multiple.spec.d.ts +0 -2
  71. package/dist/multiple.spec.d.ts.map +0 -1
  72. package/dist/multiple.spec.js +0 -207
  73. package/dist/multiple.spec.js.map +0 -1
  74. package/dist/nothing.d.ts +0 -14
  75. package/dist/nothing.d.ts.map +0 -1
  76. package/dist/nothing.js +0 -19
  77. package/dist/nothing.js.map +0 -1
  78. package/dist/nothing.spec.d.ts +0 -2
  79. package/dist/nothing.spec.d.ts.map +0 -1
  80. package/dist/nothing.spec.js +0 -172
  81. package/dist/nothing.spec.js.map +0 -1
  82. package/dist/optional.d.ts +0 -28
  83. package/dist/optional.d.ts.map +0 -1
  84. package/dist/optional.js +0 -41
  85. package/dist/optional.js.map +0 -1
  86. package/dist/optional.spec.d.ts +0 -2
  87. package/dist/optional.spec.d.ts.map +0 -1
  88. package/dist/optional.spec.js +0 -172
  89. package/dist/optional.spec.js.map +0 -1
  90. package/dist/primitive.d.ts +0 -40
  91. package/dist/primitive.d.ts.map +0 -1
  92. package/dist/primitive.js +0 -30
  93. package/dist/primitive.js.map +0 -1
  94. package/dist/primitive.spec.d.ts +0 -2
  95. package/dist/primitive.spec.d.ts.map +0 -1
  96. package/dist/primitive.spec.js +0 -162
  97. package/dist/primitive.spec.js.map +0 -1
  98. package/dist/test.d.ts +0 -36
  99. package/dist/test.d.ts.map +0 -1
  100. package/dist/test.js +0 -45
  101. package/dist/test.js.map +0 -1
@@ -1,262 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const dict_1 = require("./dict");
4
- const test_1 = require("./test");
5
- const discriminated_union_1 = require("./discriminated-union");
6
- describe("DiscriminatedUnion", () => {
7
- it("class definition with two arguments", () => {
8
- class A extends (0, dict_1.Dict)({ type: "A", a: String }) {
9
- }
10
- const B = (0, dict_1.Dict)({ type: "B", b: Number });
11
- const C = { type: "C", c: Boolean };
12
- class Test extends (0, discriminated_union_1.DiscriminatedUnion)([A, B, C]) {
13
- test = true;
14
- }
15
- // Constructor parameters
16
- (0, test_1.ex)(Test).toHaveFirstParam().ok;
17
- // Deserialization
18
- (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
19
- const a = Test.deserialize({ type: "A", a: "test" });
20
- (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
21
- // Additional prototype
22
- (0, test_1.ex)(a.test).toBe(true).ok;
23
- // Inherited prototype on deserialization
24
- (0, test_1.ex)(a.value).toStrictEqual(new A({ type: "A", a: "test" })).ok;
25
- // Serialization
26
- (0, test_1.ex)(a.serialize()).toStrictEqual({
27
- type: "A",
28
- a: "test",
29
- }).ok;
30
- // Instantiation
31
- const b = new Test(new A({ type: "A", a: "test" }));
32
- (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
33
- // Inherited prototype on instantiation
34
- (0, test_1.ex)(b.value).toStrictEqual(new A({ type: "A", a: "test" })).ok;
35
- const c = new Test({ type: "B", b: 2 });
36
- (0, test_1.ex)(c).toBeInstanceOf(Test).ok;
37
- (0, test_1.ex)(c.value).toStrictEqual({ type: "B", b: 2 }).ok;
38
- (0, test_1.ex)(c.serialize()).toStrictEqual({ type: "B", b: 2 }).ok;
39
- const c2 = Test.deserialize({ type: "B", b: 2 });
40
- (0, test_1.ex)(c2).toBeInstanceOf(Test).ok;
41
- (0, test_1.ex)(c2.value).toStrictEqual({ type: "B", b: 2 }).ok;
42
- (0, test_1.ex)(c2.serialize()).toStrictEqual({ type: "B", b: 2 }).ok;
43
- const d = new Test({ type: "C", c: true });
44
- (0, test_1.ex)(d).toBeInstanceOf(Test).ok;
45
- (0, test_1.ex)(d.value).toStrictEqual({ type: "C", c: true }).ok;
46
- (0, test_1.ex)(d.serialize()).toStrictEqual({ type: "C", c: true }).ok;
47
- const d2 = Test.deserialize({ type: "C", c: true });
48
- (0, test_1.ex)(d2).toBeInstanceOf(Test).ok;
49
- (0, test_1.ex)(d2.value).toStrictEqual({ type: "C", c: true }).ok;
50
- (0, test_1.ex)(d2.serialize()).toStrictEqual({ type: "C", c: true }).ok;
51
- });
52
- it("class definition with constructors", () => {
53
- class A extends (0, dict_1.Dict)({ type: "A", a: String }) {
54
- }
55
- class B {
56
- static type = "B";
57
- type;
58
- a;
59
- constructor({ type, a }) {
60
- Object.assign(this, { type, a });
61
- }
62
- static deserialize({ type, a }) {
63
- return new B({ type, a });
64
- }
65
- serialize() {
66
- return { type: this.type, a: this.a };
67
- }
68
- }
69
- class Test extends (0, discriminated_union_1.DiscriminatedUnion)([A, B]) {
70
- test = true;
71
- }
72
- // Constructor parameters
73
- (0, test_1.ex)(Test).toHaveFirstParam().ok;
74
- // Deserialization
75
- (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
76
- const a = Test.deserialize({ type: "A", a: "a" });
77
- (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
78
- const b = Test.deserialize({ type: "B", a: "b" });
79
- (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
80
- // Additional prototype
81
- (0, test_1.ex)(a.match({
82
- A: () => true,
83
- B: () => false,
84
- })).toBe(true).ok;
85
- (0, test_1.ex)(a.match({
86
- _: () => true,
87
- })).toBe(true).ok;
88
- (0, test_1.ex)(a.match({
89
- B: () => true,
90
- }, () => false)).toBe(false).ok;
91
- (0, test_1.ex)(a.test).toBe(true).ok;
92
- // Inherited prototype on deserialization
93
- (0, test_1.ex)(a.value).toBeInstanceOf(A).ok;
94
- (0, test_1.ex)(b.value).toBeInstanceOf(B).ok;
95
- // Serialization
96
- (0, test_1.ex)(a.serialize()).toStrictEqual({ type: "A", a: "a" }).ok;
97
- (0, test_1.ex)(b.serialize()).toStrictEqual({ type: "B", a: "b" }).ok;
98
- // Instantiation
99
- const c = new Test(new A({ type: "A", a: "aa" }));
100
- (0, test_1.ex)(c).toBeInstanceOf(Test).ok;
101
- const d = new Test(new B({ type: "B", a: "bb" }));
102
- (0, test_1.ex)(d).toBeInstanceOf(Test).ok;
103
- // Inherited prototype
104
- (0, test_1.ex)(c.value).toBeInstanceOf(A).ok;
105
- (0, test_1.ex)(c.value.a).toBe("aa").ok;
106
- (0, test_1.ex)(d.value).toBeInstanceOf(B).ok;
107
- (0, test_1.ex)(d.value.a).toBe("bb").ok;
108
- });
109
- it("inline definition", () => {
110
- class A extends (0, dict_1.Dict)({ type: "A", a: String }) {
111
- }
112
- const B = (0, dict_1.Dict)({ type: "B", b: Number });
113
- class Test extends (0, dict_1.Dict)({ nested: (0, discriminated_union_1.DiscriminatedUnion)([A, B]) }) {
114
- }
115
- // Constructor parameters
116
- (0, test_1.ex)(Test).toHaveFirstParam().ok;
117
- // Deserialization
118
- (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
119
- const a = Test.deserialize({ nested: { type: "A", a: "test" } });
120
- (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
121
- // Inherited prototype on deserialization
122
- (0, test_1.ex)(a.nested).toStrictEqual(new A({ type: "A", a: "test" })).ok;
123
- // Serialization
124
- (0, test_1.ex)(a.serialize()).toStrictEqual({
125
- nested: { type: "A", a: "test" },
126
- }).ok;
127
- // Instantiation
128
- const b = new Test({ nested: { type: "B", b: 0 } });
129
- (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
130
- // Inherited prototype on instantiation
131
- (0, test_1.ex)(b.nested).toStrictEqual({ type: "B", b: 0 }).ok;
132
- });
133
- it("referenced definition", () => {
134
- class A extends (0, dict_1.Dict)({ type: "A" }) {
135
- }
136
- class B extends (0, dict_1.Dict)({ type: "B" }) {
137
- }
138
- class Union extends (0, discriminated_union_1.DiscriminatedUnion)([A, B]) {
139
- }
140
- class Test extends (0, dict_1.Dict)({ nested: Union }) {
141
- }
142
- // Constructor parameters
143
- (0, test_1.ex)(Test).toHaveFirstParam().ok;
144
- // Deserialization
145
- (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
146
- const a = Test.deserialize({ nested: { type: "A" } });
147
- (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
148
- // Inherited prototype on deserialization
149
- (0, test_1.ex)(a.nested).toBeInstanceOf(Union).ok;
150
- (0, test_1.ex)(a.nested.value).toStrictEqual(new A({ type: "A" })).ok;
151
- // Serialization
152
- (0, test_1.ex)(a.serialize()).toStrictEqual({ nested: { type: "A" } }).ok;
153
- // Instantiation
154
- const b = new Test({ nested: new Union(new A({ type: "A" })) });
155
- (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
156
- // Inherited prototype on instantiation
157
- (0, test_1.ex)(b.nested.value).toStrictEqual(new A({ type: "A" })).ok;
158
- });
159
- it("mixin extension", () => {
160
- const Mixin = (config) => {
161
- class Mix extends (0, discriminated_union_1.DiscriminatedUnion)(config) {
162
- deep = true;
163
- static deep = true;
164
- }
165
- return Mix;
166
- };
167
- class A extends (0, dict_1.Dict)({ type: "A" }) {
168
- }
169
- class B extends (0, dict_1.Dict)({ type: "B" }) {
170
- }
171
- class Test extends Mixin([A, B]) {
172
- test = true;
173
- // @ts-expect-error is not assignable to parameter of type 'true'
174
- abstract = false;
175
- }
176
- // Constructor parameters
177
- (0, test_1.ex)(Test).toHaveFirstParam().ok;
178
- // Additional static prototype
179
- (0, test_1.ex)(Test.deep).toBe(true).ok;
180
- // Deserialization
181
- (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
182
- const a = Test.deserialize({ type: "A" });
183
- (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
184
- // Additional prototype on deserialization
185
- (0, test_1.ex)(a.test).toBe(true).ok;
186
- (0, test_1.ex)(a.abstract).toBe(false).ok;
187
- // Extended prototype on deserialization
188
- (0, test_1.ex)(a.deep).toBe(true).ok;
189
- // Inherited prototype on deserialization
190
- (0, test_1.ex)(a.value).toStrictEqual(new A({ type: "A" })).ok;
191
- // Serialization
192
- (0, test_1.ex)(a.serialize()).toStrictEqual({ type: "A" }).ok;
193
- // Instantiation
194
- const b = new Test(new B({ type: "B" }));
195
- (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
196
- // Additional prototype on instantiation
197
- (0, test_1.ex)(b.test).toBe(true).ok;
198
- (0, test_1.ex)(b.abstract).toBe(false).ok;
199
- // Extended prototype on instantiation
200
- (0, test_1.ex)(b.deep).toBe(true).ok;
201
- // Inherited prototype on instantiation
202
- (0, test_1.ex)(b.value).toStrictEqual(new B({ type: "B" })).ok;
203
- });
204
- it("mixin supersede", () => {
205
- const Testable = (config) => {
206
- class I {
207
- deep = true;
208
- static deep = true;
209
- }
210
- return (0, discriminated_union_1.DiscriminatedUnion)(config, I);
211
- };
212
- class A extends (0, dict_1.Dict)({ type: "A" }) {
213
- }
214
- class B extends (0, dict_1.Dict)({ type: "B" }) {
215
- }
216
- class Test extends Testable([A, B]) {
217
- test = true;
218
- // @ts-expect-error is not assignable to parameter of type 'true'
219
- abstract = false;
220
- }
221
- // Constructor type
222
- (0, test_1.ex)(Test).toHaveFirstParam().ok;
223
- // Additional static prototype
224
- (0, test_1.ex)(Test.deep).toBe(true).ok;
225
- // Deserialization
226
- (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
227
- const a = Test.deserialize({ type: "A" });
228
- (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
229
- // Additional prototype on deserialization
230
- (0, test_1.ex)(a.test).toBe(true).ok;
231
- (0, test_1.ex)(a.abstract).toBe(false).ok;
232
- // Superseded prototype on deserialization
233
- (0, test_1.ex)(a.deep).toBe(true).ok;
234
- // Inherited prototype on deserialization
235
- (0, test_1.ex)(a.value).toStrictEqual(new A({ type: "A" })).ok;
236
- // Serialization
237
- (0, test_1.ex)(a.serialize()).toStrictEqual({
238
- type: "A",
239
- }).ok;
240
- // Instantiation
241
- const b = new Test(new B({ type: "B" }));
242
- (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
243
- // Additional prototype on instantiation
244
- (0, test_1.ex)(b.test).toBe(true).ok;
245
- (0, test_1.ex)(b.abstract).toBe(false).ok;
246
- // Superseded prototype on instantiation
247
- (0, test_1.ex)(b.deep).toBe(true).ok;
248
- (0, test_1.ex)(b.abstract).toBe(false).ok;
249
- // Inherited prototype on instantiation
250
- (0, test_1.ex)(b.value).toStrictEqual(new B({ type: "B" })).ok;
251
- });
252
- });
253
- // making the config `as const` breaks the freeze command
254
- // This enforces the use of `as const` in the discriminator
255
- // This is ugly
256
- class A extends (0, discriminated_union_1.DiscriminatedUnion)([
257
- { type: "A" },
258
- { type: "B" },
259
- ]) {
260
- }
261
- const _shouldBeFreezable = true;
262
- //# sourceMappingURL=discriminated-union.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"discriminated-union.spec.js","sourceRoot":"","sources":["../src/discriminated-union.spec.ts"],"names":[],"mappings":"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"}
package/dist/either.d.ts DELETED
@@ -1,40 +0,0 @@
1
- import { Expand, DefinitionOf, AbstractConstructor, Empty } from "./_";
2
- import { ClassShorthand } from "./class";
3
- import { PrimitiveShorthand } from "./primitive";
4
- type Config = {
5
- [key: string]: any;
6
- };
7
- type ExhaustiveMatcher<C extends Config> = {
8
- [key in keyof C]: (value: InstanceType<C[key]>) => any;
9
- };
10
- type UnsafeFallthroughMatcher<C extends Config> = {
11
- [key in keyof C]?: (value: InstanceType<C[key]>) => any;
12
- } & {
13
- _: (value: InstanceType<C[keyof C]>) => any;
14
- };
15
- type PartialMatcher<C extends Config> = {
16
- [key in keyof C]?: (value: InstanceType<C[key]>) => any;
17
- };
18
- type Matcher<C extends Config> = ExhaustiveMatcher<C> | UnsafeFallthroughMatcher<C> | PartialMatcher<C>;
19
- export type EitherConfiguration = {
20
- [key: string]: PrimitiveShorthand | ClassShorthand;
21
- };
22
- export declare const Either: <const S extends EitherConfiguration, const B extends AbstractConstructor<{}> = typeof Empty>(of: S, base?: B) => Omit<B, "prototype"> & Omit<(abstract new (value: DefinitionOf<S[keyof S]>["$inline"]) => {
23
- value: DefinitionOf<S[keyof S], typeof Empty>["$inline"];
24
- serialize(): Expand<{ [K in keyof S]: [K, ReturnType<DefinitionOf<S[K]>["$serialize"]>]; }[keyof S]>;
25
- match<M extends Matcher<S>, F extends M extends ExhaustiveMatcher<S> ? [] : M extends UnsafeFallthroughMatcher<S> ? [] : M extends PartialMatcher<S> ? [fallback: (value: InstanceType<Omit<S, keyof M>[keyof Omit<S, keyof M>]>) => any] : []>(matcher: M, ...fallback_n: F): (M[keyof M] extends (...args: any[]) => any ? ReturnType<M[keyof M]> : never) | (F[0] extends (...args: any[]) => any ? ReturnType<F[0]> : never);
26
- }) & {
27
- serialized: { [K in keyof S]: [K, ReturnType<DefinitionOf<S[K]>["$serialize"]>]; }[keyof S];
28
- of: S;
29
- $name: "either";
30
- deserialize<T extends any>(this: T, value: Expand<{ [K in keyof S]: [K, ReturnType<DefinitionOf<S[K]>["$serialize"]>]; }[keyof S]>): InstanceType<T>;
31
- $deserialize<T extends any>(this: T, value: { [K in keyof S]: [K, ReturnType<DefinitionOf<S[K]>["$serialize"]>]; }[keyof S]): DefinitionOf<S[keyof S]>["$inline"];
32
- $serialize<T extends any>(this: T, value: DefinitionOf<S[keyof S]>["$inline"]): { [K in keyof S]: [K, ReturnType<DefinitionOf<S[K]>["$serialize"]>]; }[keyof S];
33
- $inline: DefinitionOf<S[keyof S]>["$inline"];
34
- }, "prototype"> & (abstract new (value: Expand<DefinitionOf<S[keyof S]>["$inline"]>) => InstanceType<B> & {
35
- value: DefinitionOf<S[keyof S], typeof Empty>["$inline"];
36
- serialize(): Expand<{ [K in keyof S]: [K, ReturnType<DefinitionOf<S[K]>["$serialize"]>]; }[keyof S]>;
37
- match<M extends Matcher<S>, F extends M extends ExhaustiveMatcher<S> ? [] : M extends UnsafeFallthroughMatcher<S> ? [] : M extends PartialMatcher<S> ? [fallback: (value: InstanceType<Omit<S, keyof M>[keyof Omit<S, keyof M>]>) => any] : []>(matcher: M, ...fallback_n: F): (M[keyof M] extends (...args: any[]) => any ? ReturnType<M[keyof M]> : never) | (F[0] extends (...args: any[]) => any ? ReturnType<F[0]> : never);
38
- });
39
- export {};
40
- //# sourceMappingURL=either.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"either.d.ts","sourceRoot":"","sources":["../src/either.ts"],"names":[],"mappings":"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"}
package/dist/either.js DELETED
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Either = void 0;
4
- const _1 = require("./_");
5
- const Either = (of, base = _1.Empty) => {
6
- const definitions = Object.fromEntries(Object.entries(of).map(([key, value]) => {
7
- return [key, (0, _1.Shape)(value)];
8
- }));
9
- class $Either extends base {
10
- value;
11
- constructor(value) {
12
- super();
13
- this.value = value;
14
- }
15
- static serialized;
16
- static of = of;
17
- static $name = "either";
18
- serialize() {
19
- return $Either.$serialize(this.value);
20
- }
21
- match(...[matcher, fallback]) {
22
- const key = Object.entries(of).find(([_, v]) => v === this.value.constructor)?.[0];
23
- const handler = matcher[key];
24
- if (handler) {
25
- return handler(this.value);
26
- }
27
- if (fallback) {
28
- return fallback(this.value);
29
- }
30
- if (matcher._) {
31
- return matcher._(this.value);
32
- }
33
- throw new Error("Non-exhaustive match");
34
- }
35
- ;
36
- static deserialize(value) {
37
- return new this(this.$deserialize(value));
38
- }
39
- static $deserialize(value) {
40
- const [key, serialized] = value;
41
- const definition = definitions[key];
42
- if (!definition) {
43
- throw new Error("Cannot deserialize Either");
44
- }
45
- return definition.$deserialize(serialized);
46
- }
47
- static $serialize(value) {
48
- const key = Object.entries(of).find(([_, v]) => v === value.constructor)?.[0];
49
- if (!key) {
50
- throw new Error("Cannot serialize Either, no matching key");
51
- }
52
- const definition = definitions[key];
53
- if (!definition) {
54
- throw new Error("Cannot serialize Either");
55
- }
56
- return [key, definition.$serialize(value)];
57
- }
58
- static $inline;
59
- }
60
- return $Either;
61
- };
62
- exports.Either = Either;
63
- //# sourceMappingURL=either.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"either.js","sourceRoot":"","sources":["../src/either.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=either.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"either.spec.d.ts","sourceRoot":"","sources":["../src/either.spec.ts"],"names":[],"mappings":""}
@@ -1,211 +0,0 @@
1
- "use strict";
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");
6
- describe("Either", () => {
7
- it("class definition with two arguments", () => {
8
- class Test extends (0, either_1.Either)({ String, Number }) {
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(["String", "test"]);
16
- (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
17
- // Additional prototype
18
- (0, test_1.ex)(a.test).toBe(true).ok;
19
- // Inherited prototype on deserialization
20
- (0, test_1.ex)(a.value).toBe("test").ok;
21
- // Serialization
22
- (0, test_1.ex)(a.serialize()).toStrictEqual(["String", "test"]).ok;
23
- // Instantiation
24
- const b = new Test("test");
25
- (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
26
- // Inherited prototype on instantiation
27
- (0, test_1.ex)(b.value).toBe("test").ok;
28
- });
29
- it("class definition with constructors", () => {
30
- class A extends (0, dict_1.Dict)({ a: String }) {
31
- }
32
- class B {
33
- a;
34
- constructor({ a }) {
35
- Object.assign(this, { a });
36
- }
37
- static deserialize({ a }) {
38
- return new B({ a });
39
- }
40
- serialize() {
41
- return { a: this.a };
42
- }
43
- }
44
- class Test extends (0, either_1.Either)({ A, B }) {
45
- test = true;
46
- }
47
- // Constructor parameters
48
- (0, test_1.ex)(Test).toHaveFirstParam().ok;
49
- // Deserialization
50
- (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
51
- const a = Test.deserialize(["A", { a: "test" }]);
52
- (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
53
- const b = Test.deserialize(["B", { a: "test" }]);
54
- (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
55
- // Additional prototype
56
- (0, test_1.ex)(a.match({
57
- A: () => true,
58
- B: () => false,
59
- })).toBe(true).ok;
60
- (0, test_1.ex)(a.match({
61
- _: () => true,
62
- })).toBe(true).ok;
63
- (0, test_1.ex)(a.match({
64
- B: () => true,
65
- }, () => false)).toBe(false).ok;
66
- (0, test_1.ex)(a.test).toBe(true).ok;
67
- // Inherited prototype on deserialization
68
- (0, test_1.ex)(a.value).toBeInstanceOf(A).ok;
69
- (0, test_1.ex)(b.value).toBeInstanceOf(B).ok;
70
- // Serialization
71
- (0, test_1.ex)(a.serialize()).toStrictEqual(["A", { a: "test" }]).ok;
72
- (0, test_1.ex)(b.serialize()).toStrictEqual(["B", { a: "test" }]).ok;
73
- // Instantiation
74
- const c = new Test(new A({ a: "test" }));
75
- (0, test_1.ex)(c).toBeInstanceOf(Test).ok;
76
- const d = new Test(new B({ a: "test" }));
77
- (0, test_1.ex)(d).toBeInstanceOf(Test).ok;
78
- // Inherited prototype
79
- (0, test_1.ex)(c.value).toBeInstanceOf(A).ok;
80
- (0, test_1.ex)(c.value.a).toBe("test").ok;
81
- (0, test_1.ex)(d.value).toBeInstanceOf(B).ok;
82
- (0, test_1.ex)(d.value.a).toBe("test").ok;
83
- });
84
- it("inline definition", () => {
85
- class Test extends (0, dict_1.Dict)({ nested: (0, either_1.Either)({ String, Number }) }) {
86
- }
87
- // Constructor parameters
88
- (0, test_1.ex)(Test).toHaveFirstParam().ok;
89
- // Deserialization
90
- (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
91
- const a = Test.deserialize({ nested: ["String", "test"] });
92
- (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
93
- // Inherited prototype on deserialization
94
- (0, test_1.ex)(a.nested).toBe("test").ok;
95
- // Serialization
96
- (0, test_1.ex)(a.serialize()).toStrictEqual({ nested: ["String", "test"] })
97
- .ok;
98
- // Instantiation
99
- const b = new Test({ nested: "test" });
100
- (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
101
- // Inherited prototype on instantiation
102
- (0, test_1.ex)(b.nested).toBe("test").ok;
103
- });
104
- it("referenced definition", () => {
105
- class A extends (0, either_1.Either)({ String, Number }) {
106
- }
107
- class Test extends (0, dict_1.Dict)({ nested: A }) {
108
- }
109
- // Constructor parameters
110
- (0, test_1.ex)(Test).toHaveFirstParam().ok;
111
- // Deserialization
112
- (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
113
- const a = Test.deserialize({ nested: ["String", "test"] });
114
- (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
115
- // Inherited prototype on deserialization
116
- (0, test_1.ex)(a.nested).toBeInstanceOf(A).ok;
117
- (0, test_1.ex)(a.nested.value).toBe("test").ok;
118
- // Serialization
119
- (0, test_1.ex)(a.serialize()).toStrictEqual({ nested: ["String", "test"] })
120
- .ok;
121
- // Instantiation
122
- const b = new Test({ nested: new A("test") });
123
- (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
124
- // Inherited prototype on instantiation
125
- (0, test_1.ex)(b.nested.value).toBe("test").ok;
126
- });
127
- it("mixin extension", () => {
128
- const Mixin = (either) => {
129
- class Mix extends (0, either_1.Either)(either) {
130
- deep = true;
131
- static deep = true;
132
- }
133
- return Mix;
134
- };
135
- class Test extends Mixin({ String, Number }) {
136
- test = true;
137
- // @ts-expect-error is not assignable to parameter of type 'true'
138
- abstract = false;
139
- }
140
- // Constructor parameters
141
- (0, test_1.ex)(Test).toHaveFirstParam().ok;
142
- // Additional static prototype
143
- (0, test_1.ex)(Test.deep).toBe(true).ok;
144
- // Deserialization
145
- (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
146
- const a = Test.deserialize(["String", "test"]);
147
- (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
148
- // Additional prototype on deserialization
149
- (0, test_1.ex)(a.test).toBe(true).ok;
150
- (0, test_1.ex)(a.abstract).toBe(false).ok;
151
- // Extended prototype on deserialization
152
- (0, test_1.ex)(a.deep).toBe(true).ok;
153
- // Inherited prototype on deserialization
154
- (0, test_1.ex)(a.value).toBe("test").ok;
155
- // Serialization
156
- (0, test_1.ex)(a.serialize()).toStrictEqual(["String", "test"]).ok;
157
- // Instantiation
158
- const b = new Test("test");
159
- (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
160
- // Additional prototype on instantiation
161
- (0, test_1.ex)(b.test).toBe(true).ok;
162
- (0, test_1.ex)(b.abstract).toBe(false).ok;
163
- // Extended prototype on instantiation
164
- (0, test_1.ex)(b.deep).toBe(true).ok;
165
- // Inherited prototype on instantiation
166
- (0, test_1.ex)(b.value).toBe("test").ok;
167
- });
168
- it("mixin supersede", () => {
169
- const Testable = (config) => {
170
- class I {
171
- deep = true;
172
- static deep = true;
173
- }
174
- return (0, either_1.Either)(config, I);
175
- };
176
- class Test extends Testable({ String, Number }) {
177
- test = true;
178
- // @ts-expect-error is not assignable to parameter of type 'true'
179
- abstract = false;
180
- }
181
- // Constructor type
182
- (0, test_1.ex)(Test).toHaveFirstParam().ok;
183
- // Additional static prototype
184
- (0, test_1.ex)(Test.deep).toBe(true).ok;
185
- // Deserialization
186
- (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
187
- const a = Test.deserialize(["String", "test"]);
188
- (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
189
- // Additional prototype on deserialization
190
- (0, test_1.ex)(a.test).toBe(true).ok;
191
- (0, test_1.ex)(a.abstract).toBe(false).ok;
192
- // Superseded prototype on deserialization
193
- (0, test_1.ex)(a.deep).toBe(true).ok;
194
- // Inherited prototype on deserialization
195
- (0, test_1.ex)(a.value).toBe("test").ok;
196
- // Serialization
197
- (0, test_1.ex)(a.serialize()).toStrictEqual(["String", "test"]).ok;
198
- // Instantiation
199
- const b = new Test(2);
200
- (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
201
- // Additional prototype on instantiation
202
- (0, test_1.ex)(b.test).toBe(true).ok;
203
- (0, test_1.ex)(b.abstract).toBe(false).ok;
204
- // Superseded prototype on instantiation
205
- (0, test_1.ex)(b.deep).toBe(true).ok;
206
- (0, test_1.ex)(b.abstract).toBe(false).ok;
207
- // Inherited prototype on instantiation
208
- (0, test_1.ex)(b.value).toBe(2).ok;
209
- });
210
- });
211
- //# sourceMappingURL=either.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"either.spec.js","sourceRoot":"","sources":["../src/either.spec.ts"],"names":[],"mappings":"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"}