@ddd-ts/shape 0.0.0-0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/_.d.ts +38 -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/choice.d.ts +42 -0
  6. package/dist/choice.d.ts.map +1 -0
  7. package/dist/choice.js +47 -0
  8. package/dist/choice.js.map +1 -0
  9. package/dist/choice.spec.d.ts +2 -0
  10. package/dist/choice.spec.d.ts.map +1 -0
  11. package/dist/choice.spec.js +147 -0
  12. package/dist/choice.spec.js.map +1 -0
  13. package/dist/class.d.ts +21 -0
  14. package/dist/class.d.ts.map +1 -0
  15. package/dist/class.js +30 -0
  16. package/dist/class.js.map +1 -0
  17. package/dist/class.spec.d.ts +2 -0
  18. package/dist/class.spec.d.ts.map +1 -0
  19. package/dist/class.spec.js +39 -0
  20. package/dist/class.spec.js.map +1 -0
  21. package/dist/dict.d.ts +18 -0
  22. package/dist/dict.d.ts.map +1 -0
  23. package/dist/dict.js +44 -0
  24. package/dist/dict.js.map +1 -0
  25. package/dist/dict.spec.d.ts +2 -0
  26. package/dist/dict.spec.d.ts.map +1 -0
  27. package/dist/dict.spec.js +180 -0
  28. package/dist/dict.spec.js.map +1 -0
  29. package/dist/either.d.ts +40 -0
  30. package/dist/either.d.ts.map +1 -0
  31. package/dist/either.js +63 -0
  32. package/dist/either.js.map +1 -0
  33. package/dist/either.spec.d.ts +2 -0
  34. package/dist/either.spec.d.ts.map +1 -0
  35. package/dist/either.spec.js +211 -0
  36. package/dist/either.spec.js.map +1 -0
  37. package/dist/index.d.ts +11 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +27 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/literal.d.ts +40 -0
  42. package/dist/literal.d.ts.map +1 -0
  43. package/dist/literal.js +30 -0
  44. package/dist/literal.js.map +1 -0
  45. package/dist/literal.spec.d.ts +2 -0
  46. package/dist/literal.spec.d.ts.map +1 -0
  47. package/dist/literal.spec.js +162 -0
  48. package/dist/literal.spec.js.map +1 -0
  49. package/dist/mapping.d.ts +39 -0
  50. package/dist/mapping.d.ts.map +1 -0
  51. package/dist/mapping.js +50 -0
  52. package/dist/mapping.js.map +1 -0
  53. package/dist/mapping.spec.d.ts +2 -0
  54. package/dist/mapping.spec.d.ts.map +1 -0
  55. package/dist/mapping.spec.js +207 -0
  56. package/dist/mapping.spec.js.map +1 -0
  57. package/dist/multiple.d.ts +105 -0
  58. package/dist/multiple.d.ts.map +1 -0
  59. package/dist/multiple.js +106 -0
  60. package/dist/multiple.js.map +1 -0
  61. package/dist/multiple.spec.d.ts +2 -0
  62. package/dist/multiple.spec.d.ts.map +1 -0
  63. package/dist/multiple.spec.js +208 -0
  64. package/dist/multiple.spec.js.map +1 -0
  65. package/dist/nothing.d.ts +14 -0
  66. package/dist/nothing.d.ts.map +1 -0
  67. package/dist/nothing.js +19 -0
  68. package/dist/nothing.js.map +1 -0
  69. package/dist/nothing.spec.d.ts +2 -0
  70. package/dist/nothing.spec.d.ts.map +1 -0
  71. package/dist/nothing.spec.js +172 -0
  72. package/dist/nothing.spec.js.map +1 -0
  73. package/dist/optional.d.ts +23 -0
  74. package/dist/optional.d.ts.map +1 -0
  75. package/dist/optional.js +39 -0
  76. package/dist/optional.js.map +1 -0
  77. package/dist/optional.spec.d.ts +2 -0
  78. package/dist/optional.spec.d.ts.map +1 -0
  79. package/dist/optional.spec.js +172 -0
  80. package/dist/optional.spec.js.map +1 -0
  81. package/dist/test.d.ts +36 -0
  82. package/dist/test.d.ts.map +1 -0
  83. package/dist/test.js +46 -0
  84. package/dist/test.js.map +1 -0
  85. package/package.json +19 -0
@@ -0,0 +1,105 @@
1
+ import { Definition, Expand, Shorthand, DefinitionOf, AbstractConstructor, Empty, Constructor } from "./_";
2
+ export type MultipleShorthand = (Definition | Shorthand)[];
3
+ export type MultipleConfiguration = Definition | Shorthand;
4
+ export declare const Multiple: <const S extends MultipleConfiguration, B extends AbstractConstructor<{}> = typeof Empty>(of: S, base?: B) => Omit<B, "prototype"> & Omit<(abstract new (value: DefinitionOf<S, B>["$inline"][]) => {
5
+ value: DefinitionOf<S, B>["$inline"][];
6
+ serialize(): Expand<ReturnType<DefinitionOf<S, B>["$serialize"]>>[];
7
+ readonly map: <U>(callbackfn: (value: DefinitionOf<S, B>["$inline"], index: number, array: DefinitionOf<S, B>["$inline"][]) => U, thisArg?: any) => U[];
8
+ readonly reduce: {
9
+ (callbackfn: (previousValue: DefinitionOf<S, B>["$inline"], currentValue: DefinitionOf<S, B>["$inline"], currentIndex: number, array: DefinitionOf<S, B>["$inline"][]) => DefinitionOf<S, B>["$inline"]): DefinitionOf<S, B>["$inline"];
10
+ (callbackfn: (previousValue: DefinitionOf<S, B>["$inline"], currentValue: DefinitionOf<S, B>["$inline"], currentIndex: number, array: DefinitionOf<S, B>["$inline"][]) => DefinitionOf<S, B>["$inline"], initialValue: DefinitionOf<S, B>["$inline"]): DefinitionOf<S, B>["$inline"];
11
+ <U_1>(callbackfn: (previousValue: U_1, currentValue: DefinitionOf<S, B>["$inline"], currentIndex: number, array: DefinitionOf<S, B>["$inline"][]) => U_1, initialValue: U_1): U_1;
12
+ };
13
+ readonly filter: {
14
+ <S_1 extends DefinitionOf<S, B>["$inline"]>(predicate: (value: DefinitionOf<S, B>["$inline"], index: number, array: DefinitionOf<S, B>["$inline"][]) => value is S_1, thisArg?: any): S_1[];
15
+ (predicate: (value: DefinitionOf<S, B>["$inline"], index: number, array: DefinitionOf<S, B>["$inline"][]) => unknown, thisArg?: any): DefinitionOf<S, B>["$inline"][];
16
+ };
17
+ readonly forEach: (callbackfn: (value: DefinitionOf<S, B>["$inline"], index: number, array: DefinitionOf<S, B>["$inline"][]) => void, thisArg?: any) => void;
18
+ readonly some: (predicate: (value: DefinitionOf<S, B>["$inline"], index: number, array: DefinitionOf<S, B>["$inline"][]) => unknown, thisArg?: any) => boolean;
19
+ readonly every: {
20
+ <S_2 extends DefinitionOf<S, B>["$inline"]>(predicate: (value: DefinitionOf<S, B>["$inline"], index: number, array: DefinitionOf<S, B>["$inline"][]) => value is S_2, thisArg?: any): this is S_2[];
21
+ (predicate: (value: DefinitionOf<S, B>["$inline"], index: number, array: DefinitionOf<S, B>["$inline"][]) => unknown, thisArg?: any): boolean;
22
+ };
23
+ readonly find: {
24
+ <S_3 extends DefinitionOf<S, B>["$inline"]>(predicate: (value: DefinitionOf<S, B>["$inline"], index: number, obj: DefinitionOf<S, B>["$inline"][]) => value is S_3, thisArg?: any): S_3 | undefined;
25
+ (predicate: (value: DefinitionOf<S, B>["$inline"], index: number, obj: DefinitionOf<S, B>["$inline"][]) => unknown, thisArg?: any): DefinitionOf<S, B>["$inline"] | undefined;
26
+ };
27
+ readonly findIndex: (predicate: (value: DefinitionOf<S, B>["$inline"], index: number, obj: DefinitionOf<S, B>["$inline"][]) => unknown, thisArg?: any) => number;
28
+ readonly indexOf: (searchElement: DefinitionOf<S, B>["$inline"], fromIndex?: number | undefined) => number;
29
+ readonly lastIndexOf: (searchElement: DefinitionOf<S, B>["$inline"], fromIndex?: number | undefined) => number;
30
+ readonly includes: (searchElement: DefinitionOf<S, B>["$inline"], fromIndex?: number | undefined) => boolean;
31
+ readonly keys: () => IterableIterator<number>;
32
+ readonly values: () => IterableIterator<DefinitionOf<S, B>["$inline"]>;
33
+ readonly entries: () => IterableIterator<[number, DefinitionOf<S, B>["$inline"]]>;
34
+ readonly at: (index: number) => DefinitionOf<S, B>["$inline"] | undefined;
35
+ readonly concat: {
36
+ (...items: ConcatArray<DefinitionOf<S, B>["$inline"]>[]): DefinitionOf<S, B>["$inline"][];
37
+ (...items: (DefinitionOf<S, B>["$inline"] | ConcatArray<DefinitionOf<S, B>["$inline"]>)[]): DefinitionOf<S, B>["$inline"][];
38
+ };
39
+ readonly flat: <A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[];
40
+ readonly splice: {
41
+ (start: number, deleteCount?: number | undefined): DefinitionOf<S, B>["$inline"][];
42
+ (start: number, deleteCount: number, ...items: DefinitionOf<S, B>["$inline"][]): DefinitionOf<S, B>["$inline"][];
43
+ };
44
+ readonly flatMap: <U_2, This = undefined>(callback: (this: This, value: DefinitionOf<S, B>["$inline"], index: number, array: DefinitionOf<S, B>["$inline"][]) => U_2 | readonly U_2[], thisArg?: This | undefined) => U_2[];
45
+ readonly push: (...items: DefinitionOf<S, B>["$inline"][]) => number;
46
+ readonly pop: () => DefinitionOf<S, B>["$inline"] | undefined;
47
+ readonly sort: (compareFn?: ((a: DefinitionOf<S, B>["$inline"], b: DefinitionOf<S, B>["$inline"]) => number) | undefined) => DefinitionOf<S, B>["$inline"][];
48
+ readonly slice: (start?: number | undefined, end?: number | undefined) => DefinitionOf<S, B>["$inline"][];
49
+ readonly length: number;
50
+ [Symbol.iterator](): IterableIterator<DefinitionOf<S, B>["$inline"]>;
51
+ }) & {
52
+ $name: "multiple";
53
+ deserialize<T extends Constructor<any, any[]>>(this: T, value: Expand<ReturnType<DefinitionOf<S, B>["$serialize"]>>[]): InstanceType<T>;
54
+ $deserialize<T_1 extends Constructor<any, any[]>>(this: T_1, value: ReturnType<DefinitionOf<S, B>["$serialize"]>[]): InstanceType<T_1>;
55
+ $serialize(value: DefinitionOf<S, B>["$inline"][]): ReturnType<DefinitionOf<S, B>["$serialize"]>[];
56
+ $inline: DefinitionOf<S, B>["$inline"][];
57
+ }, ""> & (abstract new (value: Expand<DefinitionOf<S, B>["$inline"]>[]) => InstanceType<B> & {
58
+ value: DefinitionOf<S, B>["$inline"][];
59
+ serialize(): Expand<ReturnType<DefinitionOf<S, B>["$serialize"]>>[];
60
+ readonly map: <U>(callbackfn: (value: DefinitionOf<S, B>["$inline"], index: number, array: DefinitionOf<S, B>["$inline"][]) => U, thisArg?: any) => U[];
61
+ readonly reduce: {
62
+ (callbackfn: (previousValue: DefinitionOf<S, B>["$inline"], currentValue: DefinitionOf<S, B>["$inline"], currentIndex: number, array: DefinitionOf<S, B>["$inline"][]) => DefinitionOf<S, B>["$inline"]): DefinitionOf<S, B>["$inline"];
63
+ (callbackfn: (previousValue: DefinitionOf<S, B>["$inline"], currentValue: DefinitionOf<S, B>["$inline"], currentIndex: number, array: DefinitionOf<S, B>["$inline"][]) => DefinitionOf<S, B>["$inline"], initialValue: DefinitionOf<S, B>["$inline"]): DefinitionOf<S, B>["$inline"];
64
+ <U_1>(callbackfn: (previousValue: U_1, currentValue: DefinitionOf<S, B>["$inline"], currentIndex: number, array: DefinitionOf<S, B>["$inline"][]) => U_1, initialValue: U_1): U_1;
65
+ };
66
+ readonly filter: {
67
+ <S_1 extends DefinitionOf<S, B>["$inline"]>(predicate: (value: DefinitionOf<S, B>["$inline"], index: number, array: DefinitionOf<S, B>["$inline"][]) => value is S_1, thisArg?: any): S_1[];
68
+ (predicate: (value: DefinitionOf<S, B>["$inline"], index: number, array: DefinitionOf<S, B>["$inline"][]) => unknown, thisArg?: any): DefinitionOf<S, B>["$inline"][];
69
+ };
70
+ readonly forEach: (callbackfn: (value: DefinitionOf<S, B>["$inline"], index: number, array: DefinitionOf<S, B>["$inline"][]) => void, thisArg?: any) => void;
71
+ readonly some: (predicate: (value: DefinitionOf<S, B>["$inline"], index: number, array: DefinitionOf<S, B>["$inline"][]) => unknown, thisArg?: any) => boolean;
72
+ readonly every: {
73
+ <S_2 extends DefinitionOf<S, B>["$inline"]>(predicate: (value: DefinitionOf<S, B>["$inline"], index: number, array: DefinitionOf<S, B>["$inline"][]) => value is S_2, thisArg?: any): this is S_2[];
74
+ (predicate: (value: DefinitionOf<S, B>["$inline"], index: number, array: DefinitionOf<S, B>["$inline"][]) => unknown, thisArg?: any): boolean;
75
+ };
76
+ readonly find: {
77
+ <S_3 extends DefinitionOf<S, B>["$inline"]>(predicate: (value: DefinitionOf<S, B>["$inline"], index: number, obj: DefinitionOf<S, B>["$inline"][]) => value is S_3, thisArg?: any): S_3 | undefined;
78
+ (predicate: (value: DefinitionOf<S, B>["$inline"], index: number, obj: DefinitionOf<S, B>["$inline"][]) => unknown, thisArg?: any): DefinitionOf<S, B>["$inline"] | undefined;
79
+ };
80
+ readonly findIndex: (predicate: (value: DefinitionOf<S, B>["$inline"], index: number, obj: DefinitionOf<S, B>["$inline"][]) => unknown, thisArg?: any) => number;
81
+ readonly indexOf: (searchElement: DefinitionOf<S, B>["$inline"], fromIndex?: number | undefined) => number;
82
+ readonly lastIndexOf: (searchElement: DefinitionOf<S, B>["$inline"], fromIndex?: number | undefined) => number;
83
+ readonly includes: (searchElement: DefinitionOf<S, B>["$inline"], fromIndex?: number | undefined) => boolean;
84
+ readonly keys: () => IterableIterator<number>;
85
+ readonly values: () => IterableIterator<DefinitionOf<S, B>["$inline"]>;
86
+ readonly entries: () => IterableIterator<[number, DefinitionOf<S, B>["$inline"]]>;
87
+ readonly at: (index: number) => DefinitionOf<S, B>["$inline"] | undefined;
88
+ readonly concat: {
89
+ (...items: ConcatArray<DefinitionOf<S, B>["$inline"]>[]): DefinitionOf<S, B>["$inline"][];
90
+ (...items: (DefinitionOf<S, B>["$inline"] | ConcatArray<DefinitionOf<S, B>["$inline"]>)[]): DefinitionOf<S, B>["$inline"][];
91
+ };
92
+ readonly flat: <A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[];
93
+ readonly splice: {
94
+ (start: number, deleteCount?: number | undefined): DefinitionOf<S, B>["$inline"][];
95
+ (start: number, deleteCount: number, ...items: DefinitionOf<S, B>["$inline"][]): DefinitionOf<S, B>["$inline"][];
96
+ };
97
+ readonly flatMap: <U_2, This = undefined>(callback: (this: This, value: DefinitionOf<S, B>["$inline"], index: number, array: DefinitionOf<S, B>["$inline"][]) => U_2 | readonly U_2[], thisArg?: This | undefined) => U_2[];
98
+ readonly push: (...items: DefinitionOf<S, B>["$inline"][]) => number;
99
+ readonly pop: () => DefinitionOf<S, B>["$inline"] | undefined;
100
+ readonly sort: (compareFn?: ((a: DefinitionOf<S, B>["$inline"], b: DefinitionOf<S, B>["$inline"]) => number) | undefined) => DefinitionOf<S, B>["$inline"][];
101
+ readonly slice: (start?: number | undefined, end?: number | undefined) => DefinitionOf<S, B>["$inline"][];
102
+ readonly length: number;
103
+ [Symbol.iterator](): IterableIterator<DefinitionOf<S, B>["$inline"]>;
104
+ });
105
+ //# sourceMappingURL=multiple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiple.d.ts","sourceRoot":"","sources":["../src/multiple.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,MAAM,EAEN,SAAS,EACT,YAAY,EAGZ,mBAAmB,EACnB,KAAK,EACL,WAAW,EACZ,MAAM,KAAK,CAAC;AAEb,MAAM,MAAM,iBAAiB,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC,EAAE,CAAC;AAE3D,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,SAAS,CAAC;AAE3D,eAAO,MAAM,QAAQ,gGAIf,CAAC,SACC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yDAmBG,CAAC,kEAEN,aAAa,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiIrB,CAAC"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Multiple = void 0;
4
+ const _1 = require("./_");
5
+ const Multiple = (of, base = _1.Empty) => {
6
+ const longhand = (0, _1.Shape)(of);
7
+ class $Multiple extends base {
8
+ value;
9
+ constructor(value) {
10
+ super();
11
+ this.value = value;
12
+ }
13
+ static $name = "multiple";
14
+ serialize() {
15
+ return $Multiple.$serialize(this.value);
16
+ }
17
+ static deserialize(value) {
18
+ return new this($Multiple.$deserialize(value));
19
+ }
20
+ static $deserialize(value) {
21
+ return value.map(longhand.$deserialize);
22
+ }
23
+ static $serialize(value) {
24
+ return value.map(longhand.$serialize);
25
+ }
26
+ [Symbol.iterator]() {
27
+ return this.value[Symbol.iterator]();
28
+ }
29
+ static $inline;
30
+ get map() {
31
+ return this.value.map.bind(this.value);
32
+ }
33
+ get reduce() {
34
+ return this.value.reduce.bind(this.value);
35
+ }
36
+ get filter() {
37
+ return this.value.filter.bind(this.value);
38
+ }
39
+ get forEach() {
40
+ return this.value.forEach.bind(this.value);
41
+ }
42
+ get some() {
43
+ return this.value.some.bind(this.value);
44
+ }
45
+ get every() {
46
+ return this.value.every.bind(this.value);
47
+ }
48
+ get find() {
49
+ return this.value.find.bind(this.value);
50
+ }
51
+ get findIndex() {
52
+ return this.value.findIndex.bind(this.value);
53
+ }
54
+ get indexOf() {
55
+ return this.value.indexOf.bind(this.value);
56
+ }
57
+ get lastIndexOf() {
58
+ return this.value.lastIndexOf.bind(this.value);
59
+ }
60
+ get includes() {
61
+ return this.value.includes.bind(this.value);
62
+ }
63
+ get keys() {
64
+ return this.value.keys.bind(this.value);
65
+ }
66
+ get values() {
67
+ return this.value.values.bind(this.value);
68
+ }
69
+ get entries() {
70
+ return this.value.entries.bind(this.value);
71
+ }
72
+ get at() {
73
+ return this.value.at.bind(this.value);
74
+ }
75
+ get concat() {
76
+ return this.value.concat.bind(this.value);
77
+ }
78
+ get flat() {
79
+ return this.value.flat.bind(this.value);
80
+ }
81
+ get splice() {
82
+ return this.value.splice.bind(this.value);
83
+ }
84
+ get flatMap() {
85
+ return this.value.flatMap.bind(this.value);
86
+ }
87
+ get push() {
88
+ return this.value.push.bind(this.value);
89
+ }
90
+ get pop() {
91
+ return this.value.pop.bind(this.value);
92
+ }
93
+ get sort() {
94
+ return this.value.sort.bind(this.value);
95
+ }
96
+ get slice() {
97
+ return this.value.slice.bind(this.value);
98
+ }
99
+ get length() {
100
+ return this.value.length;
101
+ }
102
+ }
103
+ return $Multiple;
104
+ };
105
+ exports.Multiple = Multiple;
106
+ //# sourceMappingURL=multiple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiple.js","sourceRoot":"","sources":["../src/multiple.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=multiple.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiple.spec.d.ts","sourceRoot":"","sources":["../src/multiple.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,208 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const multiple_1 = require("./multiple");
4
+ const dict_1 = require("./dict");
5
+ const test_1 = require("./test");
6
+ describe("Multiple", () => {
7
+ it("class definition", () => {
8
+ class Test extends (0, multiple_1.Multiple)(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).toStrictEqual(["a"]).ok;
21
+ // Serialization
22
+ (0, test_1.ex)(a.serialize()).toStrictEqual(["a"]).ok;
23
+ // Instantiation
24
+ const b = new Test(["b"]);
25
+ (0, test_1.ex)(b).toBeInstanceOf(Test);
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).toStrictEqual(["b"]).ok;
30
+ (0, test_1.ex)([...b.values()]).toStrictEqual(["b"]).ok;
31
+ (0, test_1.ex)([...b.entries()]).toStrictEqual([[0, "b"]]).ok;
32
+ (0, test_1.ex)([...b.keys()]).toStrictEqual([0]).ok;
33
+ (0, test_1.ex)(b.filter(() => true)).toStrictEqual(["b"]).ok;
34
+ (0, test_1.ex)(b.map((x) => x.charCodeAt(0))).toStrictEqual([98]).ok;
35
+ (0, test_1.ex)(b.reduce((a, b) => a + b)).toStrictEqual("b").ok;
36
+ (0, test_1.ex)(b.some((x) => x === "b")).toBe(true).ok;
37
+ (0, test_1.ex)(b.every((x) => x === "b")).toBe(true).ok;
38
+ (0, test_1.ex)(b.find((x) => x === "b")).toStrictEqual("b").ok;
39
+ (0, test_1.ex)(b.findIndex((x) => x === "b")).toStrictEqual(0).ok;
40
+ (0, test_1.ex)(b.includes("b")).toBe(true).ok;
41
+ (0, test_1.ex)(b.indexOf("b")).toStrictEqual(0).ok;
42
+ (0, test_1.ex)(b.lastIndexOf("b")).toStrictEqual(0).ok;
43
+ });
44
+ it("inline definition", () => {
45
+ class Test extends (0, dict_1.Dict)({
46
+ longhand: (0, multiple_1.Multiple)(String),
47
+ shorthand: [{ nested: Number }],
48
+ }) {
49
+ test = true;
50
+ }
51
+ // Constructor parameters
52
+ (0, test_1.ex)(Test).toHaveFirstParam().ok;
53
+ // Deserialization
54
+ (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
55
+ const a = Test.deserialize({
56
+ longhand: ["a"],
57
+ shorthand: [{ nested: 0 }],
58
+ });
59
+ (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
60
+ // Additional prototype on deserialization
61
+ (0, test_1.ex)(a.test).toBe(true).ok;
62
+ // Inherited prototype on deserialization
63
+ (0, test_1.ex)(a.longhand).toStrictEqual(["a"]).ok;
64
+ (0, test_1.ex)(a.shorthand).toStrictEqual([{ nested: 0 }]).ok;
65
+ // Serialization
66
+ (0, test_1.ex)(a.serialize()).toStrictEqual({
67
+ longhand: ["a"],
68
+ shorthand: [{ nested: 0 }],
69
+ }).ok;
70
+ // Instantiation
71
+ const b = new Test({
72
+ longhand: ["b"],
73
+ shorthand: [{ nested: 1 }],
74
+ });
75
+ (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
76
+ // Additional prototype on instantiation
77
+ (0, test_1.ex)(b.test).toBe(true).ok;
78
+ // Inherited prototype on instantiation
79
+ (0, test_1.ex)(b.longhand).toStrictEqual(["b"]).ok;
80
+ (0, test_1.ex)(b.shorthand).toStrictEqual([{ nested: 1 }]).ok;
81
+ });
82
+ it("referenced definition", () => {
83
+ class Reference extends (0, multiple_1.Multiple)(Number) {
84
+ }
85
+ class Test extends (0, dict_1.Dict)({ reference: Reference }) {
86
+ test = true;
87
+ }
88
+ // Constructor parameters
89
+ (0, test_1.ex)(Test).toHaveFirstParam().ok;
90
+ // Deserialization
91
+ (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
92
+ const a = Test.deserialize({ reference: [0] });
93
+ (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
94
+ // Additional prototype on deserialization
95
+ (0, test_1.ex)(a.test).toBe(true).ok;
96
+ // Inherited prototype on deserialization
97
+ (0, test_1.ex)(a.reference).toStrictEqual(new Reference([0])).ok;
98
+ // Serialization
99
+ (0, test_1.ex)(a.serialize()).toStrictEqual({ reference: [0] }).ok;
100
+ // Instantiation
101
+ const b = new Test({ reference: new Reference([0]) });
102
+ (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
103
+ // Additional prototype on instantiation
104
+ (0, test_1.ex)(b.test).toBe(true).ok;
105
+ // Inherited prototype on instantiation
106
+ (0, test_1.ex)(b.reference).toStrictEqual(new Reference([0])).ok;
107
+ // Inherited prototype on instantiation
108
+ (0, test_1.ex)(b.reference.value).toStrictEqual([0]).ok;
109
+ (0, test_1.ex)([...b.reference.values()]).toStrictEqual([0]).ok;
110
+ (0, test_1.ex)([...b.reference.entries()]).toStrictEqual([[0, 0]])
111
+ .ok;
112
+ (0, test_1.ex)([...b.reference.keys()]).toStrictEqual([0]).ok;
113
+ (0, test_1.ex)(b.reference.filter(() => true)).toStrictEqual([0]).ok;
114
+ (0, test_1.ex)(b.reference.map((x) => String(x))).toStrictEqual(["0"]).ok;
115
+ (0, test_1.ex)(b.reference.reduce((a, b) => a + b)).toStrictEqual(0).ok;
116
+ (0, test_1.ex)(b.reference.some((x) => x === 0)).toBe(true).ok;
117
+ (0, test_1.ex)(b.reference.every((x) => x === 0)).toBe(true).ok;
118
+ (0, test_1.ex)(b.reference.find((x) => x === 0)).toStrictEqual(0)
119
+ .ok;
120
+ (0, test_1.ex)(b.reference.findIndex((x) => x === 0)).toStrictEqual(0).ok;
121
+ (0, test_1.ex)(b.reference.includes(0)).toBe(true).ok;
122
+ (0, test_1.ex)(b.reference.indexOf(0)).toStrictEqual(0).ok;
123
+ (0, test_1.ex)(b.reference.lastIndexOf(0)).toStrictEqual(0).ok;
124
+ });
125
+ it("mixin extension", () => {
126
+ const Testable = (config) => {
127
+ class I extends (0, multiple_1.Multiple)(config) {
128
+ deep = true;
129
+ static deep = true;
130
+ }
131
+ return I;
132
+ };
133
+ class Test extends Testable(Number) {
134
+ test = true;
135
+ // @ts-expect-error is not assignable to parameter of type 'true'
136
+ abstract = false;
137
+ }
138
+ // Constructor parameters
139
+ (0, test_1.ex)(Test).toHaveFirstParam().ok;
140
+ // Additional static prototype
141
+ (0, test_1.ex)(Test.deep).toBe(true).ok;
142
+ // Deserialization
143
+ (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
144
+ const a = Test.deserialize([0]);
145
+ (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
146
+ // Additional prototype on deserialization
147
+ (0, test_1.ex)(a.test).toBe(true).ok;
148
+ (0, test_1.ex)(a.abstract).toBe(false).ok;
149
+ // Extended prototype on deserialization
150
+ (0, test_1.ex)(a.deep).toBe(true).ok;
151
+ // Inherited prototype on deserialization
152
+ (0, test_1.ex)(a.value).toStrictEqual([0]).ok;
153
+ // Serialization
154
+ (0, test_1.ex)(a.serialize()).toStrictEqual([0]).ok;
155
+ // Instantiation
156
+ const b = new Test([1]);
157
+ (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
158
+ // Additional prototype on instantiation
159
+ (0, test_1.ex)(b.test).toBe(true).ok;
160
+ (0, test_1.ex)(b.abstract).toBe(false).ok;
161
+ // Extended prototype on instantiation
162
+ (0, test_1.ex)(b.deep).toBe(true).ok;
163
+ // Inherited prototype on instantiation
164
+ (0, test_1.ex)(b.value).toStrictEqual([1]).ok;
165
+ });
166
+ it("mixin supersede", () => {
167
+ const Testable = (config) => {
168
+ class I {
169
+ deep = true;
170
+ static deep = true;
171
+ }
172
+ return (0, multiple_1.Multiple)(config, I);
173
+ };
174
+ class Test extends Testable(Number) {
175
+ test = true;
176
+ // @ts-expect-error is not assignable to parameter of type 'true'
177
+ abstract = false;
178
+ }
179
+ // Constructor parameters
180
+ (0, test_1.ex)(Test).toHaveFirstParam().ok;
181
+ // Additional static prototype
182
+ (0, test_1.ex)(Test.deep).toBe(true).ok;
183
+ // Deserialization
184
+ (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
185
+ const a = Test.deserialize([0]);
186
+ (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
187
+ // Additional prototype on deserialization
188
+ (0, test_1.ex)(a.test).toBe(true).ok;
189
+ (0, test_1.ex)(a.abstract).toBe(false).ok;
190
+ // Extended prototype on deserialization
191
+ (0, test_1.ex)(a.deep).toBe(true).ok;
192
+ // Inherited prototype on deserialization
193
+ (0, test_1.ex)(a.value).toStrictEqual([0]).ok;
194
+ // Serialization
195
+ (0, test_1.ex)(a.serialize()).toStrictEqual([0]).ok;
196
+ // Instantiation
197
+ const b = new Test([1]);
198
+ (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
199
+ // Additional prototype on instantiation
200
+ (0, test_1.ex)(b.test).toBe(true).ok;
201
+ (0, test_1.ex)(b.abstract).toBe(false).ok;
202
+ // Extended prototype on instantiation
203
+ (0, test_1.ex)(b.deep).toBe(true).ok;
204
+ // Inherited prototype on instantiation
205
+ (0, test_1.ex)(b.value).toStrictEqual([1]).ok;
206
+ });
207
+ });
208
+ //# sourceMappingURL=multiple.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiple.spec.js","sourceRoot":"","sources":["../src/multiple.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { AbstractConstructor, Constructor, Empty } from "./_";
2
+ export type NothingShorthand = undefined;
3
+ export declare const Nothing: <B extends AbstractConstructor<{}> = typeof Empty>(config: void, base?: B) => Omit<B, "prototype"> & Omit<(abstract new (...args: any[]) => {
4
+ serialize(): void;
5
+ }) & {
6
+ $name: "nothing";
7
+ deserialize<T extends Constructor<any, any[]>>(this: T, value: void): InstanceType<T>;
8
+ $deserialize(): void;
9
+ $serialize(): void;
10
+ $inline: void;
11
+ }, ""> & (abstract new (value: void) => InstanceType<B> & {
12
+ serialize(): void;
13
+ });
14
+ //# sourceMappingURL=nothing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nothing.d.ts","sourceRoot":"","sources":["../src/nothing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAc,KAAK,EAAE,MAAM,KAAK,CAAC;AAE1E,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAEzC,eAAO,MAAM,OAAO,6DACV,IAAI,SACN,CAAC;;;;yDAOG,CAAC,SACA,IAAI,GACV,aAAa,CAAC,CAAC;;;aAKF,IAAI;+BAIb,IAAI;;EAQd,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Nothing = void 0;
4
+ const _1 = require("./_");
5
+ const Nothing = (config, base = _1.Empty) => {
6
+ class $Nothing extends base {
7
+ static $name = "nothing";
8
+ serialize() { }
9
+ static deserialize(value) {
10
+ return new this();
11
+ }
12
+ static $deserialize() { }
13
+ static $serialize() { }
14
+ static $inline;
15
+ }
16
+ return $Nothing;
17
+ };
18
+ exports.Nothing = Nothing;
19
+ //# sourceMappingURL=nothing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nothing.js","sourceRoot":"","sources":["../src/nothing.ts"],"names":[],"mappings":";;;AAAA,0BAA0E;AAInE,MAAM,OAAO,GAAG,CACrB,MAAY,EACZ,OAAU,QAAY,EACtB,EAAE;IACF,MAAe,QAAS,SAAS,IAA+B;QAC9D,MAAM,CAAC,KAAK,GAAG,SAAkB,CAAC;QAElC,SAAS,KAAI,CAAC;QACd,MAAM,CAAC,WAAW,CAEhB,KAAW;YAEX,OAAO,IAAK,IAAY,EAAE,CAAC;QAC7B,CAAC;QACD,MAAM,CAAC,YAAY,KAAI,CAAC;QACxB,MAAM,CAAC,UAAU,KAAI,CAAC;QACtB,MAAM,CAAC,OAAO,CAAO;;IAWvB,OAAO,QAAmB,CAAC;AAC7B,CAAC,CAAC;AA5BW,QAAA,OAAO,WA4BlB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=nothing.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nothing.spec.d.ts","sourceRoot":"","sources":["../src/nothing.spec.ts"],"names":[],"mappings":""}