@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.
- package/dist/_.d.ts +39 -0
- package/dist/_.d.ts.map +1 -0
- package/dist/_.js +51 -0
- package/dist/_.js.map +1 -0
- package/dist/allcases.d.ts +2 -0
- package/dist/allcases.d.ts.map +1 -0
- package/dist/allcases.js +4 -0
- package/dist/allcases.js.map +1 -0
- package/dist/choice.d.ts +41 -0
- package/dist/choice.d.ts.map +1 -0
- package/dist/choice.js +46 -0
- package/dist/choice.js.map +1 -0
- package/dist/choice.spec.d.ts +2 -0
- package/dist/choice.spec.d.ts.map +1 -0
- package/dist/choice.spec.js +147 -0
- package/dist/choice.spec.js.map +1 -0
- package/dist/choice.type.d.ts +2 -0
- package/dist/choice.type.d.ts.map +1 -0
- package/dist/choice.type.js +50 -0
- package/dist/choice.type.js.map +1 -0
- package/dist/class.d.ts +21 -0
- package/dist/class.d.ts.map +1 -0
- package/dist/class.js +30 -0
- package/dist/class.js.map +1 -0
- package/dist/class.spec.d.ts +2 -0
- package/dist/class.spec.d.ts.map +1 -0
- package/dist/class.spec.js +39 -0
- package/dist/class.spec.js.map +1 -0
- package/dist/dict.d.ts +20 -0
- package/dist/dict.d.ts.map +1 -0
- package/dist/dict.js +46 -0
- package/dist/dict.js.map +1 -0
- package/dist/dict.spec.d.ts +2 -0
- package/dist/dict.spec.d.ts.map +1 -0
- package/dist/dict.spec.js +180 -0
- package/dist/dict.spec.js.map +1 -0
- package/dist/either.d.ts +21 -0
- package/dist/either.d.ts.map +1 -0
- package/dist/either.js +42 -0
- package/dist/either.js.map +1 -0
- package/dist/either.spec.d.ts +2 -0
- package/dist/either.spec.d.ts.map +1 -0
- package/dist/either.spec.js +199 -0
- package/dist/either.spec.js.map +1 -0
- package/dist/enum.d.ts +19 -23
- package/dist/enum.d.ts.map +1 -1
- package/dist/enum.js +26 -20
- package/dist/enum.js.map +1 -1
- package/dist/enum.spec.js +212 -61
- package/dist/enum.spec.js.map +1 -1
- package/dist/index.d.ts +10 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -15
- package/dist/index.js.map +1 -1
- package/dist/literal.d.ts +43 -0
- package/dist/literal.d.ts.map +1 -0
- package/dist/literal.js +30 -0
- package/dist/literal.js.map +1 -0
- package/dist/literal.spec.d.ts +2 -0
- package/dist/literal.spec.d.ts.map +1 -0
- package/dist/literal.spec.js +162 -0
- package/dist/literal.spec.js.map +1 -0
- package/dist/mapping.d.ts +39 -0
- package/dist/mapping.d.ts.map +1 -0
- package/dist/mapping.js +50 -0
- package/dist/mapping.js.map +1 -0
- package/dist/mapping.spec.d.ts +2 -0
- package/dist/mapping.spec.d.ts.map +1 -0
- package/dist/mapping.spec.js +207 -0
- package/dist/mapping.spec.js.map +1 -0
- package/dist/multiple.d.ts +159 -0
- package/dist/multiple.d.ts.map +1 -0
- package/dist/multiple.js +60 -0
- package/dist/multiple.js.map +1 -0
- package/dist/multiple.spec.d.ts +2 -0
- package/dist/multiple.spec.d.ts.map +1 -0
- package/dist/multiple.spec.js +208 -0
- package/dist/multiple.spec.js.map +1 -0
- package/dist/nothing.d.ts +14 -0
- package/dist/nothing.d.ts.map +1 -0
- package/dist/nothing.js +19 -0
- package/dist/nothing.js.map +1 -0
- package/dist/nothing.spec.d.ts +2 -0
- package/dist/nothing.spec.d.ts.map +1 -0
- package/dist/nothing.spec.js +172 -0
- package/dist/nothing.spec.js.map +1 -0
- package/dist/optional.d.ts +24 -0
- package/dist/optional.d.ts.map +1 -0
- package/dist/optional.js +40 -0
- package/dist/optional.js.map +1 -0
- package/dist/optional.spec.d.ts +2 -0
- package/dist/optional.spec.d.ts.map +1 -0
- package/dist/optional.spec.js +172 -0
- package/dist/optional.spec.js.map +1 -0
- package/dist/test.d.ts +36 -0
- package/dist/test.d.ts.map +1 -0
- package/dist/test.js +46 -0
- package/dist/test.js.map +1 -0
- 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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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(
|
|
14
|
-
|
|
15
|
-
|
|
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(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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(
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
package/dist/enum.spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enum.spec.js","sourceRoot":"","sources":["../src/enum.spec.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"enum.spec.js","sourceRoot":"","sources":["../src/enum.spec.ts"],"names":[],"mappings":";;AAAA,qCAAuD;AACvD,iCAA8B;AAC9B,iCAA4B;AAC5B,iCAA8B;AAC9B,wBAA0B;AAE1B,MAAM,MAAO,SAAQ,IAAA,QAAK,EAAC;IACzB,IAAI,EAAE,MAAM;CACb,CAAC;CAAG;AAEL,MAAM,MAAO,SAAQ,IAAA,QAAK,EAAC;IACzB,MAAM,EAAE,MAAM;CACf,CAAC;CAAG;AAEL,MAAM,KAAM,SAAQ,IAAA,WAAI,EAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;CAAG;AAE/C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAEpD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,CAAC,EAAE,CAAC,KAAsB,EAAE,EAAE,CAAC,KAAK;CACrC,CAAC,CAAC;AAEH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC1B,MAAM,IAAK,SAAQ,IAAA,WAAI,EAAC;YACtB,MAAM;YACN,MAAM;SACP,CAAC;YACA,IAAI,GAAG,IAAa,CAAC;SACtB;QAID,yBAAyB;QACzB,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC,gBAAgB,EAAmB,CAAC,EAAE,CAAC;QAEhD,kBAAkB;QAClB,IAAA,SAAE,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC,gBAAgB,EAAc,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/C,IAAA,SAAE,EAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAE9B,uBAAuB;QACvB,IAAA,SAAE,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAa,CAAC,CAAC,EAAE,CAAC;QAElC,yCAAyC;QACzC,IAAA,SAAE,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAkB,MAAM,CAAC,CAAC,EAAE,CAAC;QAC7C,IAAA,SAAE,EACA,CAAC,CAAC,KAAK,CAAC;YACN,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ;YACtB,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ;SACvB,CAAC,CACH,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAEpB,gBAAgB;QAChB,IAAA,SAAE,EAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,aAAa,CAAa,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAE5D,gBAAgB;QAChB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAA,SAAE,EAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAE9B,uCAAuC;QACvC,IAAA,SAAE,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAkB,MAAM,CAAC,CAAC,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAE,SAAQ,IAAA,WAAI,EAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;SAAG;QACtC,MAAM,CAAC;YACL,CAAC,CAAU;YACX,YAAY,EAAE,CAAC,EAAiB;gBAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC;YAED,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,EAAiB;gBACrC,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC;YAED,SAAS;gBACP,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YACvB,CAAC;SACF;QAED,MAAM,IAAK,SAAQ,IAAA,eAAM,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,IAAI,GAAG,IAAa,CAAC;SACtB;QAID,yBAAyB;QACzB,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC,gBAAgB,EAAS,CAAC,EAAE,CAAC;QAEtC,kBAAkB;QAClB,IAAA,SAAE,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC,gBAAgB,EAAc,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/C,IAAA,SAAE,EAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/C,IAAA,SAAE,EAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAE9B,uBAAuB;QACvB,IAAA,SAAE,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAa,CAAC,CAAC,EAAE,CAAC;QAElC,yCAAyC;QACzC,IAAA,SAAE,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,IAAA,SAAE,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;QAEtD,gBAAgB;QAChB,IAAA,SAAE,EAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,aAAa,CAAa,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,IAAA,SAAE,EAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,aAAa,CAAa,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEnE,gBAAgB;QAChB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACzC,IAAA,SAAE,EAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAE9B,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACzC,IAAA,SAAE,EAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAE9B,sBAAsB;QACtB,IAAA,SAAE,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,IAAA,SAAE,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAE9B,IAAA,SAAE,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,IAAA,SAAE,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,IAAK,SAAQ,IAAA,WAAI,EAAC,EAAE,MAAM,EAAE,IAAA,eAAM,EAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;SAAG;QAIhE,yBAAyB;QACzB,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC,gBAAgB,EAA+B,CAAC,EAAE,CAAC;QAE5D,kBAAkB;QAClB,IAAA,SAAE,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC,gBAAgB,EAAc,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,GAAS,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAA,SAAE,EAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAE9B,yCAAyC;QACzC,IAAA,SAAE,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAkB,MAAM,CAAC,CAAC,EAAE,CAAC;QAE9C,gBAAgB;QAChB,IAAA,SAAE,EAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,aAAa,CAAa,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAExE,gBAAgB;QAChB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACvC,IAAA,SAAE,EAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAE9B,uCAAuC;QACvC,IAAA,SAAE,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAkB,MAAM,CAAC,CAAC,EAAE,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,CAAE,SAAQ,IAAA,eAAM,EAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAAG;QAC3C,MAAM,IAAK,SAAQ,IAAA,WAAI,EAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;SAAG;QAIzC,yBAAyB;QACzB,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC,gBAAgB,EAAiB,CAAC,EAAE,CAAC;QAE9C,kBAAkB;QAClB,IAAA,SAAE,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC,gBAAgB,EAAc,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,GAAS,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAA,SAAE,EAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAE9B,yCAAyC;QACzC,IAAA,SAAE,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,IAAA,SAAE,EAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAkB,MAAM,CAAC,CAAC,EAAE,CAAC;QAEpD,gBAAgB;QAChB,IAAA,SAAE,EAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,aAAa,CAAa,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAExE,gBAAgB;QAChB,MAAM,CAAC,GAAS,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpD,IAAA,SAAE,EAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAE9B,uCAAuC;QACvC,IAAA,SAAE,EAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAkB,MAAM,CAAC,CAAC,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACzB,MAAM,KAAK,GAAG,CAAsC,MAAS,EAAE,EAAE;YAC/D,MAAe,GAAI,SAAQ,IAAA,eAAM,EAAC,MAAM,CAAC;gBACvC,IAAI,GAAG,IAAa,CAAC;gBACrB,MAAM,CAAC,IAAI,GAAG,IAAa,CAAC;;YAI9B,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QAEF,MAAM,IAAK,SAAQ,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACxC,IAAI,GAAG,IAAa,CAAC;YAErB,iEAAiE;YACjE,QAAQ,GAAG,KAAc,CAAC;SAC3B;QAID,yBAAyB;QACzB,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC,gBAAgB,EAAmB,CAAC,EAAE,CAAC;QAEhD,8BAA8B;QAC9B,IAAA,SAAE,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAa,CAAC,CAAC,EAAE,CAAC;QAErC,kBAAkB;QAClB,IAAA,SAAE,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC,gBAAgB,EAAc,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACxC,IAAA,SAAE,EAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAE9B,0CAA0C;QAC1C,IAAA,SAAE,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAa,CAAC,CAAC,EAAE,CAAC;QAClC,IAAA,SAAE,EAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAc,CAAC,CAAC,EAAE,CAAC;QAEvC,wCAAwC;QACxC,IAAA,SAAE,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAa,CAAC,CAAC,EAAE,CAAC;QAElC,yCAAyC;QACzC,IAAA,SAAE,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAkB,MAAM,CAAC,CAAC,EAAE,CAAC;QAE7C,gBAAgB;QAChB,IAAA,SAAE,EAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,aAAa,CAAa,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAE5D,gBAAgB;QAChB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAA,SAAE,EAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAE9B,wCAAwC;QACxC,IAAA,SAAE,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAa,CAAC,CAAC,EAAE,CAAC;QAClC,IAAA,SAAE,EAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAc,CAAC,CAAC,EAAE,CAAC;QAEvC,sCAAsC;QACtC,IAAA,SAAE,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAa,CAAC,CAAC,EAAE,CAAC;QAElC,uCAAuC;QACvC,IAAA,SAAE,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAkB,MAAM,CAAC,CAAC,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACzB,MAAM,QAAQ,GAAG,CAAsC,MAAS,EAAE,EAAE;YAClE,MAAe,CAAC;gBACd,IAAI,GAAG,IAAa,CAAC;gBACrB,MAAM,CAAC,IAAI,GAAG,IAAa,CAAC;;YAK9B,OAAO,IAAA,eAAM,EAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC,CAAC;QAEF,MAAM,IAAK,SAAQ,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3C,IAAI,GAAG,IAAa,CAAC;YAErB,iEAAiE;YACjE,QAAQ,GAAG,KAAc,CAAC;SAC3B;QAED,mBAAmB;QACnB,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC,gBAAgB,EAAmB,CAAC,EAAE,CAAC;QAEhD,8BAA8B;QAC9B,IAAA,SAAE,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAa,CAAC,CAAC,EAAE,CAAC;QAIrC,kBAAkB;QAClB,IAAA,SAAE,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC,gBAAgB,EAAc,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACxC,IAAA,SAAE,EAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAE9B,0CAA0C;QAC1C,IAAA,SAAE,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAa,CAAC,CAAC,EAAE,CAAC;QAClC,IAAA,SAAE,EAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAc,CAAC,CAAC,EAAE,CAAC;QAEvC,0CAA0C;QAC1C,IAAA,SAAE,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAa,CAAC,CAAC,EAAE,CAAC;QAElC,yCAAyC;QACzC,IAAA,SAAE,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAkB,MAAM,CAAC,CAAC,EAAE,CAAC;QAE7C,gBAAgB;QAChB,IAAA,SAAE,EAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,aAAa,CAAa,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAE5D,gBAAgB;QAChB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAA,SAAE,EAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAE9B,wCAAwC;QACxC,IAAA,SAAE,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAa,CAAC,CAAC,EAAE,CAAC;QAClC,IAAA,SAAE,EAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAc,CAAC,CAAC,EAAE,CAAC;QAEvC,wCAAwC;QACxC,IAAA,SAAE,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAa,CAAC,CAAC,EAAE,CAAC;QAClC,IAAA,SAAE,EAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAc,CAAC,CAAC,EAAE,CAAC;QAEvC,uCAAuC;QACvC,IAAA,SAAE,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,16 +1,11 @@
|
|
|
1
|
-
export * from "./
|
|
2
|
-
export * from "./
|
|
3
|
-
export * from "./
|
|
4
|
-
export * from "./
|
|
5
|
-
export * from "./
|
|
6
|
-
export * from "./
|
|
7
|
-
export * from "./
|
|
8
|
-
export * from "./
|
|
9
|
-
export * from "./
|
|
10
|
-
export * from "./
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,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("./
|
|
18
|
-
__exportStar(require("./
|
|
19
|
-
__exportStar(require("./
|
|
20
|
-
__exportStar(require("./
|
|
21
|
-
__exportStar(require("./
|
|
22
|
-
__exportStar(require("./
|
|
23
|
-
__exportStar(require("./
|
|
24
|
-
__exportStar(require("./
|
|
25
|
-
__exportStar(require("./
|
|
26
|
-
__exportStar(require("./
|
|
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,
|
|
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"}
|
package/dist/literal.js
ADDED
|
@@ -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 @@
|
|
|
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
|