@ddd-ts/shape 0.0.3-23 → 0.0.3-25
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/enum.d.ts +25 -0
- package/dist/enum.d.ts.map +1 -0
- package/dist/enum.js +37 -0
- package/dist/enum.js.map +1 -0
- package/dist/enum.spec.d.ts +2 -0
- package/dist/enum.spec.d.ts.map +1 -0
- package/dist/enum.spec.js +71 -0
- package/dist/enum.spec.js.map +1 -0
- package/dist/index.d.ts +14 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/enum.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Constructor } from "@ddd-ts/traits";
|
|
2
|
+
export declare const Enum: <const V extends string>(values: V[]) => {
|
|
3
|
+
new (value: V): {
|
|
4
|
+
value: V;
|
|
5
|
+
serialize(): V;
|
|
6
|
+
is<U extends V>(value: U): this is any & {
|
|
7
|
+
value: U;
|
|
8
|
+
serialize(): U;
|
|
9
|
+
};
|
|
10
|
+
match<T extends any, M extends MatcherParam<V>>(this: T, matcher: M): M extends Required<MatcherParam<V>> ? { [K in V]: M[K] extends () => infer R ? R : never; }[V] : { [K_1 in V]: M[K_1] extends () => infer R_1 ? R_1 : never; }[V] | (M extends {
|
|
11
|
+
_: () => infer R_2;
|
|
12
|
+
} ? R_2 : never);
|
|
13
|
+
};
|
|
14
|
+
values: V;
|
|
15
|
+
deserialize<T_1 extends Constructor>(this: T_1, value: V): InstanceType<T_1>;
|
|
16
|
+
} & { [K_2 in V]: <T_2 extends Constructor>(this: T_2) => InstanceType<T_2>; };
|
|
17
|
+
type Matcher<cases extends string> = {
|
|
18
|
+
[K in cases]?: () => any;
|
|
19
|
+
};
|
|
20
|
+
type Catchall = {
|
|
21
|
+
_: () => any;
|
|
22
|
+
};
|
|
23
|
+
type MatcherParam<cases extends string> = Required<Matcher<cases>> | (Matcher<cases> & Catchall);
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=enum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../src/enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,eAAO,MAAM,IAAI;;;;;;;;;;;;;;8EA0ChB,CAAA;AAED,KAAK,OAAO,CAAC,KAAK,SAAS,MAAM,IAAI;KAChC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG;CAC3B,CAAA;AAED,KAAK,QAAQ,GAAG;IAAE,CAAC,EAAE,MAAM,GAAG,CAAA;CAAE,CAAA;AAEhC,KAAK,YAAY,CAAC,KAAK,SAAS,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAA"}
|
package/dist/enum.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Enum = void 0;
|
|
4
|
+
const Enum = (values) => {
|
|
5
|
+
const I = class EnumIntermediate {
|
|
6
|
+
value;
|
|
7
|
+
static values = values[0];
|
|
8
|
+
constructor(value) {
|
|
9
|
+
this.value = value;
|
|
10
|
+
}
|
|
11
|
+
serialize() {
|
|
12
|
+
return this.value;
|
|
13
|
+
}
|
|
14
|
+
is(value) {
|
|
15
|
+
return this.value === value;
|
|
16
|
+
}
|
|
17
|
+
match(matcher) {
|
|
18
|
+
const fn = matcher[this.value];
|
|
19
|
+
if (fn) {
|
|
20
|
+
return fn();
|
|
21
|
+
}
|
|
22
|
+
const catchAll = matcher._;
|
|
23
|
+
return catchAll();
|
|
24
|
+
}
|
|
25
|
+
static deserialize(value) {
|
|
26
|
+
return new this(value);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
for (const v of values) {
|
|
30
|
+
I[v] = function () {
|
|
31
|
+
return new this(v);
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
return I;
|
|
35
|
+
};
|
|
36
|
+
exports.Enum = Enum;
|
|
37
|
+
//# sourceMappingURL=enum.js.map
|
package/dist/enum.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enum.js","sourceRoot":"","sources":["../src/enum.ts"],"names":[],"mappings":";;;AAEO,MAAM,IAAI,GAAG,CAAyB,MAAW,EAAE,EAAE;IACxD,MAAM,CAAC,GAAG,MAAM,gBAAgB;QAET;QADnB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,YAAmB,KAAQ;YAAR,UAAK,GAAL,KAAK,CAAG;QAAI,CAAC;QAEhC,SAAS;YACL,OAAO,IAAI,CAAC,KAAK,CAAC;QACtB,CAAC;QAED,EAAE,CAAc,KAAQ;YACpB,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC;QAChC,CAAC;QAED,KAAK,CAAiE,OAAU;YAK5E,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,EAAE,EAAE;gBACJ,OAAO,EAAE,EAAS,CAAA;aACrB;YACD,MAAM,QAAQ,GAAI,OAAe,CAAC,CAAC,CAAA;YACnC,OAAO,QAAQ,EAAS,CAAA;QAE5B,CAAC;QAED,MAAM,CAAC,WAAW,CAAiC,KAAQ;YACvD,OAAO,IAAI,IAAI,CAAC,KAAK,CAAoB,CAAA;QAC7C,CAAC;KACJ,CAAA;IAED,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;QAEnB,CAAS,CAAC,CAAC,CAAC,GAAG;YACZ,OAAO,IAAI,IAAI,CAAC,CAAC,CAAoB,CAAA;QACzC,CAAC,CAAA;KACJ;IAED,OAAO,CAEN,CAAA;AACL,CAAC,CAAA;AA1CY,QAAA,IAAI,QA0ChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enum.spec.d.ts","sourceRoot":"","sources":["../src/enum.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const enum_1 = require("./enum");
|
|
4
|
+
describe('Enum', () => {
|
|
5
|
+
class Bool extends (0, enum_1.Enum)(['yes', 'no']) {
|
|
6
|
+
}
|
|
7
|
+
it('should instanciate', () => {
|
|
8
|
+
new Bool('yes');
|
|
9
|
+
new Bool('no');
|
|
10
|
+
// @ts-expect-error it should not be possible to instanciate with invalid value
|
|
11
|
+
new Bool('maybe');
|
|
12
|
+
});
|
|
13
|
+
it('should serialize and deserialize', () => {
|
|
14
|
+
const test = Bool.deserialize('yes').serialize();
|
|
15
|
+
expect(test).toBe('yes');
|
|
16
|
+
});
|
|
17
|
+
it('should pattern match', async () => {
|
|
18
|
+
const test = await Bool.deserialize('yes').match({
|
|
19
|
+
yes: async () => 'yeap',
|
|
20
|
+
no: async () => 'nope'
|
|
21
|
+
});
|
|
22
|
+
expect(test).toBe('yeap');
|
|
23
|
+
// @ts-expect-error it should not be possible to pattern match with incomplete cases
|
|
24
|
+
Bool.deserialize('yes').match({
|
|
25
|
+
yes: () => 'yeap',
|
|
26
|
+
});
|
|
27
|
+
// it should allow catch all instead of other cases
|
|
28
|
+
Bool.deserialize('yes').match({
|
|
29
|
+
yes: () => 'yeap',
|
|
30
|
+
_: () => 'nope'
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
it('should become predictible after conditional', () => {
|
|
34
|
+
const value = Bool.yes();
|
|
35
|
+
if (value.is('yes')) {
|
|
36
|
+
const test = value.serialize();
|
|
37
|
+
expect(test).toBe('yes');
|
|
38
|
+
}
|
|
39
|
+
});
|
|
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
|
+
});
|
|
71
|
+
//# sourceMappingURL=enum.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enum.spec.js","sourceRoot":"","sources":["../src/enum.spec.ts"],"names":[],"mappings":";;AAAA,iCAA6B;AAE7B,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IAClB,MAAM,IAAK,SAAQ,IAAA,WAAI,EAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KAAI;IAC1C,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;QACf,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;QACd,+EAA+E;QAC/E,IAAI,IAAI,CAAC,OAAO,CAAC,CAAA;IACrB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QACxC,MAAM,IAAI,GAAiB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,CAAA;QAC9D,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,IAAI,GAAoB,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;YAC9D,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,MAAe;YAChC,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,MAAe;SAClC,CAAC,CAAA;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEzB,oFAAoF;QACpF,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;YAC1B,GAAG,EAAE,GAAG,EAAE,CAAC,MAAe;SAC7B,CAAC,CAAA;QAEF,mDAAmD;QACnD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;YAC1B,GAAG,EAAE,GAAG,EAAE,CAAC,MAAe;YAC1B,CAAC,EAAE,GAAG,EAAE,CAAC,MAAe;SAC3B,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,IAAI,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;YACjB,MAAM,IAAI,GAAU,KAAK,CAAC,SAAS,EAAE,CAAA;YACrC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;SAC3B;IACL,CAAC,CAAC,CAAA;IAGF,mBAAmB;IACnB,EAAE;IACF,+CAA+C;IAC/C,+CAA+C;IAE/C,oCAAoC;IACpC,uBAAuB;IACvB,0BAA0B;IAC1B,sCAAsC;IACtC,oBAAoB;IACpB,WAAW;IAEX,0CAA0C;IAC1C,gCAAgC;IAChC,oBAAoB;IACpB,sBAAsB;IACtB,YAAY;IACZ,qBAAqB;IAErB,6BAA6B;IAC7B,gCAAgC;IAChC,oBAAoB;IACpB,sBAAsB;IACtB,YAAY;IACZ,SAAS;IAET,8CAA8C;IAC9C,+BAA+B;IAC/B,oBAAoB;IACpB,SAAS;IAGT,mCAAmC;IACnC,+BAA+B;IAC/B,SAAS;IACT,KAAK;AACT,CAAC,CAAC,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import { Trait } from "@ddd-ts/traits";
|
|
2
|
-
|
|
2
|
+
export { Enum } from './enum';
|
|
3
|
+
type Constructor<T extends any = any> = new (...args: any[]) => T;
|
|
3
4
|
type PrimitiveShape = NumberConstructor | StringConstructor | BooleanConstructor | DateConstructor | BigIntConstructor;
|
|
4
5
|
type PrimitiveShapeToPrimitive<T extends PrimitiveShape> = T extends NumberConstructor ? number : T extends StringConstructor ? string : T extends BooleanConstructor ? boolean : T extends DateConstructor ? Date : never;
|
|
5
|
-
type SerializedShape<S> = S extends PrimitiveShape ? PrimitiveShapeToPrimitive<S> : S extends {
|
|
6
|
+
export type SerializedShape<S> = S extends PrimitiveShape ? PrimitiveShapeToPrimitive<S> : S extends {
|
|
6
7
|
optional: infer U;
|
|
7
|
-
} ? SerializedShape<U> | undefined : S extends Constructor
|
|
8
|
-
|
|
9
|
-
}
|
|
8
|
+
} ? SerializedShape<U> | undefined : S extends Constructor<{
|
|
9
|
+
serialize(): any;
|
|
10
|
+
}> & {
|
|
11
|
+
deserialize(serialized: any): any;
|
|
12
|
+
} ? ReturnType<InstanceType<S>['serialize']> : S extends Array<infer U> ? Array<SerializedShape<U>> : S extends readonly [...any[]] ? {
|
|
10
13
|
[K in keyof S]: SerializedShape<S[K]>;
|
|
11
14
|
} : S extends Record<string, any> ? {
|
|
12
15
|
[K in keyof S]: SerializedShape<S[K]>;
|
|
13
16
|
} : any;
|
|
14
|
-
type RuntimeShape<S> = S extends PrimitiveShape ? PrimitiveShapeToPrimitive<S> : S extends {
|
|
17
|
+
export type RuntimeShape<S> = S extends PrimitiveShape ? PrimitiveShapeToPrimitive<S> : S extends {
|
|
15
18
|
optional: infer U;
|
|
16
19
|
} ? RuntimeShape<U> | undefined : S extends Constructor ? InstanceType<S> : S extends Array<infer U> ? Array<RuntimeShape<U>> : S extends readonly [...any[]] ? {
|
|
17
20
|
[K in keyof S]: RuntimeShape<S[K]>;
|
|
@@ -23,11 +26,12 @@ export declare const Shaped: <S>(shape: S) => {
|
|
|
23
26
|
serialize(): SerializedShape<S>;
|
|
24
27
|
}) & {
|
|
25
28
|
shape: S;
|
|
26
|
-
deserialize<T extends Constructor
|
|
29
|
+
deserialize<T extends Constructor<any>>(this: T, serialized: SerializedShape<S>): InstanceType<T>;
|
|
27
30
|
}) & (new (props: RuntimeShape<S>) => {
|
|
28
31
|
serialize(): SerializedShape<S>;
|
|
29
32
|
} & MergedProps<S>);
|
|
30
33
|
superTraits: Trait<any>[];
|
|
34
|
+
symbol: symbol;
|
|
31
35
|
};
|
|
32
36
|
type MergedProps<S> = S extends Constructor & {
|
|
33
37
|
shape: any;
|
|
@@ -67,23 +71,23 @@ export declare const Shape: <S>(shape: S) => (new (param: RuntimeShape<S> extend
|
|
|
67
71
|
} & MergedProps<S>>) & {
|
|
68
72
|
prototype: any;
|
|
69
73
|
shape: S;
|
|
70
|
-
deserialize: <T extends Constructor
|
|
74
|
+
deserialize: <T extends Constructor<any>>(this: T, serialized: SerializedShape<S>) => InstanceType<T>;
|
|
71
75
|
} & {
|
|
72
76
|
__traits__: [{
|
|
73
77
|
factory: (base: import("@ddd-ts/traits").Constructor<any, {}>) => ((abstract new (props: RuntimeShape<S>) => {
|
|
74
78
|
serialize(): SerializedShape<S>;
|
|
75
79
|
}) & {
|
|
76
80
|
shape: S;
|
|
77
|
-
deserialize<T extends Constructor
|
|
81
|
+
deserialize<T extends Constructor<any>>(this: T, serialized: SerializedShape<S>): InstanceType<T>;
|
|
78
82
|
}) & (new (props: RuntimeShape<S>) => {
|
|
79
83
|
serialize(): SerializedShape<S>;
|
|
80
84
|
} & MergedProps<S>);
|
|
81
85
|
superTraits: Trait<any>[];
|
|
86
|
+
symbol: symbol;
|
|
82
87
|
}];
|
|
83
88
|
__traits_props__: RuntimeShape<S> extends {} ? import("@ddd-ts/traits").UnionToIntersection<{} & RuntimeShape<S>> : RuntimeShape<S>;
|
|
84
89
|
};
|
|
85
90
|
export declare const Optional: <S>(shape: S) => {
|
|
86
91
|
optional: S;
|
|
87
92
|
};
|
|
88
|
-
export {};
|
|
89
93
|
//# 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,OAAO,EAAU,KAAK,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Optional = exports.Shape = exports.Shaped = void 0;
|
|
3
|
+
exports.Optional = exports.Shape = exports.Shaped = exports.Enum = void 0;
|
|
4
4
|
const traits_1 = require("@ddd-ts/traits");
|
|
5
|
+
var enum_1 = require("./enum");
|
|
6
|
+
Object.defineProperty(exports, "Enum", { enumerable: true, get: function () { return enum_1.Enum; } });
|
|
5
7
|
function serialize(shape, runtime) {
|
|
6
8
|
if (shape === Number) {
|
|
7
9
|
shape;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|