@duplojs/lang 0.0.1-beta.7 → 0.0.1-beta.9
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/chrono/createDate.cjs +9 -9
- package/dist/chrono/createDate.d.ts +3 -3
- package/dist/chrono/createDate.mjs +9 -9
- package/dist/chrono/createTime.cjs +24 -13
- package/dist/chrono/createTime.mjs +24 -13
- package/dist/chrono/theDate.cjs +15 -16
- package/dist/chrono/theDate.d.ts +15 -15
- package/dist/chrono/theDate.mjs +15 -16
- package/dist/chrono/theTime.cjs +0 -1
- package/dist/chrono/theTime.mjs +0 -1
- package/dist/chrono/types/spoolingTime.d.ts +2 -1
- package/dist/common/constraint/cast/index.d.ts +3 -3
- package/dist/common/constraint/cast/string.d.ts +4 -0
- package/dist/common/constraint/infer/string.d.ts +2 -0
- package/dist/common/isType.d.ts +3 -2
- package/dist/common/types/index.d.ts +1 -0
- package/dist/common/types/isObject.d.ts +8 -0
- package/dist/dataStructure/common/{codec.cjs → codec/base.cjs} +7 -7
- package/dist/dataStructure/common/{codec.d.ts → codec/base.d.ts} +6 -6
- package/dist/dataStructure/common/codec/base.mjs +26 -0
- package/dist/dataStructure/common/codec/defaults/index.d.ts +2 -0
- package/dist/dataStructure/common/codec/defaults/json.cjs +26 -0
- package/dist/dataStructure/common/codec/defaults/json.d.ts +6 -0
- package/dist/dataStructure/common/codec/defaults/json.mjs +26 -0
- package/dist/dataStructure/common/codec/defaults/string.cjs +44 -0
- package/dist/dataStructure/common/codec/defaults/string.d.ts +11 -0
- package/dist/dataStructure/common/codec/defaults/string.mjs +44 -0
- package/dist/dataStructure/common/codec/index.d.ts +2 -0
- package/dist/dataStructure/common/error.cjs +4 -2
- package/dist/dataStructure/common/error.d.ts +4 -2
- package/dist/dataStructure/common/error.mjs +4 -2
- package/dist/dataStructure/common/errorInterpreter.cjs +6 -6
- package/dist/dataStructure/common/errorInterpreter.d.ts +7 -3
- package/dist/dataStructure/common/errorInterpreter.mjs +6 -6
- package/dist/dataStructure/constraint/defaults/allowedCharacters.d.ts +1 -3
- package/dist/dataStructure/constraint/defaults/index.d.ts +1 -0
- package/dist/dataStructure/constraint/defaults/numberInString.cjs +13 -0
- package/dist/dataStructure/constraint/defaults/numberInString.d.ts +10 -0
- package/dist/dataStructure/constraint/defaults/numberInString.mjs +12 -0
- package/dist/dataStructure/constraint/types/constraints.d.ts +1 -0
- package/dist/dataStructure/helpers/index.d.ts +6 -2
- package/dist/dataStructure/helpers/isNullable.cjs +12 -0
- package/dist/dataStructure/helpers/isNullable.d.ts +2 -0
- package/dist/dataStructure/helpers/isNullable.mjs +12 -0
- package/dist/dataStructure/helpers/isOptional.cjs +12 -0
- package/dist/dataStructure/helpers/isOptional.d.ts +2 -0
- package/dist/dataStructure/helpers/isOptional.mjs +12 -0
- package/dist/dataStructure/helpers/numberInString.cjs +7 -0
- package/dist/dataStructure/helpers/numberInString.d.ts +2 -0
- package/dist/dataStructure/helpers/numberInString.mjs +7 -0
- package/dist/dataStructure/helpers/unwrapLazy.cjs +9 -0
- package/dist/dataStructure/helpers/unwrapLazy.d.ts +2 -0
- package/dist/dataStructure/helpers/unwrapLazy.mjs +9 -0
- package/dist/dataStructure/index.cjs +75 -52
- package/dist/dataStructure/index.mjs +29 -14
- package/dist/dataStructure/structure/base.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/array.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/lazy.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/object.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/record.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/type.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/union.d.ts +1 -1
- package/dist/either/index.cjs +30 -8
- package/dist/either/index.d.ts +4 -0
- package/dist/either/index.mjs +23 -9
- package/dist/either/left/index.d.ts +3 -2
- package/dist/either/left/none.cjs +15 -0
- package/dist/either/left/none.d.ts +7 -0
- package/dist/either/left/none.mjs +14 -0
- package/dist/either/matchInformationOtherwise.d.ts +1 -1
- package/dist/either/rewriteInformation.cjs +22 -0
- package/dist/either/rewriteInformation.d.ts +14 -0
- package/dist/either/rewriteInformation.mjs +22 -0
- package/dist/either/right/asyncGroup.cjs +2 -2
- package/dist/either/right/asyncGroup.mjs +2 -2
- package/dist/either/right/group.cjs +1 -1
- package/dist/either/right/group.mjs +1 -1
- package/dist/either/right/index.d.ts +6 -5
- package/dist/either/right/some.cjs +15 -0
- package/dist/either/right/some.d.ts +7 -0
- package/dist/either/right/some.mjs +14 -0
- package/dist/either/toMaybe.cjs +12 -0
- package/dist/either/toMaybe.d.ts +5 -0
- package/dist/either/toMaybe.mjs +12 -0
- package/dist/either/types/mayBe.d.ts +3 -0
- package/dist/either/unwrapOr.cjs +14 -0
- package/dist/either/unwrapOr.d.ts +8 -0
- package/dist/either/unwrapOr.mjs +14 -0
- package/dist/either/unwrapOtherwise.cjs +14 -0
- package/dist/either/unwrapOtherwise.d.ts +8 -0
- package/dist/either/unwrapOtherwise.mjs +14 -0
- package/dist/generator/reduce.cjs +2 -1
- package/dist/generator/reduce.mjs +1 -1
- package/dist/invocation/index.cjs +8 -8
- package/dist/invocation/index.d.ts +1 -1
- package/dist/invocation/index.mjs +6 -6
- package/dist/invocation/reader.cjs +26 -0
- package/dist/invocation/reader.d.ts +28 -0
- package/dist/invocation/reader.mjs +25 -0
- package/dist/modeling/entity/base.cjs +19 -2
- package/dist/modeling/entity/base.d.ts +9 -2
- package/dist/modeling/entity/base.mjs +19 -3
- package/dist/modeling/entity/namespace.cjs +1 -1
- package/dist/modeling/entity/namespace.d.ts +1 -1
- package/dist/modeling/entity/namespace.mjs +1 -1
- package/dist/modeling/flag/base.cjs +1 -5
- package/dist/modeling/flag/base.d.ts +6 -7
- package/dist/modeling/flag/base.mjs +1 -5
- package/dist/modeling/index.cjs +6 -0
- package/dist/modeling/index.mjs +7 -4
- package/dist/modeling/newType/base.cjs +21 -3
- package/dist/modeling/newType/base.d.ts +9 -2
- package/dist/modeling/newType/base.mjs +19 -3
- package/dist/modeling/taggedObject/base.cjs +19 -2
- package/dist/modeling/taggedObject/base.d.ts +9 -2
- package/dist/modeling/taggedObject/base.mjs +19 -3
- package/dist/number/types/isGreater.d.ts +5 -5
- package/dist/object/types/forbiddenUndefinedProps.d.ts +3 -0
- package/dist/object/types/index.d.ts +2 -1
- package/dist/object/types/split.d.ts +2 -2
- package/dist/pattern/matchWithNumber.d.ts +4 -4
- package/dist/pattern/matchWithNumberOtherwise.d.ts +4 -4
- package/dist/pattern/matchWithString.d.ts +4 -4
- package/dist/pattern/matchWithStringOtherwise.d.ts +4 -4
- package/dist/string/constraints/allowedCharacters.d.ts +3 -3
- package/dist/string/constraints/index.d.ts +2 -1
- package/dist/string/constraints/number.d.ts +4 -0
- package/dist/string/index.cjs +3 -0
- package/dist/string/index.d.ts +1 -0
- package/dist/string/index.mjs +3 -1
- package/dist/string/isComposedOf.cjs +0 -1
- package/dist/string/isComposedOf.d.ts +5 -8
- package/dist/string/isComposedOf.mjs +0 -1
- package/dist/string/isNumber.cjs +7 -0
- package/dist/string/isNumber.d.ts +5 -0
- package/dist/string/isNumber.mjs +7 -0
- package/dist/string/to.d.ts +9 -2
- package/dist/string/types/IsAllowedString.d.ts +3 -0
- package/dist/string/types/index.d.ts +5 -5
- package/dist/string/types/numberInString.d.ts +1 -0
- package/package.json +2 -2
- package/dist/dataStructure/common/codec.mjs +0 -26
- package/dist/invocation/useCase.cjs +0 -26
- package/dist/invocation/useCase.d.ts +0 -28
- package/dist/invocation/useCase.mjs +0 -25
- package/dist/string/types/number.d.ts +0 -1
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
const require_parentClass = require("../../kind/parentClass.cjs");
|
|
1
2
|
const require_isSimple = require("../../object/isSimple.cjs");
|
|
2
3
|
const require_create = require("../../either/left/create.cjs");
|
|
4
|
+
const require_is = require("../../either/left/is.cjs");
|
|
3
5
|
const require_create$1 = require("../../either/right/create.cjs");
|
|
6
|
+
const require_unwrap = require("../../either/left/unwrap.cjs");
|
|
7
|
+
const require_unwrap$1 = require("../../either/right/unwrap.cjs");
|
|
4
8
|
const require_justExec = require("../../common/justExec.cjs");
|
|
5
9
|
const require_resultSymbol = require("../../dataStructure/common/resultSymbol.cjs");
|
|
6
10
|
const require_error = require("../../dataStructure/common/error.cjs");
|
|
@@ -11,6 +15,13 @@ const require_kind = require("../kind.cjs");
|
|
|
11
15
|
//#region scripts/modeling/taggedObject/base.ts
|
|
12
16
|
const objectTagKind = require_kind.createKind("object-tag");
|
|
13
17
|
const taggedObjectStructureKind = require_kind.createKind("tagged-object-structure");
|
|
18
|
+
var EncodeTaggedObjectError = class extends require_parentClass.parentClass(require_kind.createKind("encode-tagged-object-error"), Error) {
|
|
19
|
+
error;
|
|
20
|
+
constructor(error) {
|
|
21
|
+
super(void 0, "An error occurred while encoding a TaggedObject. This can only happen if you are bypassing the type system.");
|
|
22
|
+
this.error = error;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
14
25
|
const TaggedObjectStructure = require_base.createStructure(taggedObjectStructureKind, ({ init }) => (name, shape) => init({
|
|
15
26
|
inner: require_object.ObjectStructure({
|
|
16
27
|
...shape,
|
|
@@ -70,7 +81,7 @@ const TaggedObjectStructure = require_base.createStructure(taggedObjectStructure
|
|
|
70
81
|
return require_create$1.right("map-success", result);
|
|
71
82
|
});
|
|
72
83
|
},
|
|
73
|
-
asyncMap: (self, data) =>
|
|
84
|
+
asyncMap: async (self, data) => {
|
|
74
85
|
const errorHandler = require_error.createGetErrorHandler();
|
|
75
86
|
const formattedData = require_isSimple.isSimple(data) ? {
|
|
76
87
|
...data,
|
|
@@ -78,9 +89,15 @@ const TaggedObjectStructure = require_base.createStructure(taggedObjectStructure
|
|
|
78
89
|
} : data;
|
|
79
90
|
if (await self.executeCheck(formattedData, errorHandler) === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
|
|
80
91
|
return require_create$1.right("map-success", formattedData);
|
|
81
|
-
}
|
|
92
|
+
},
|
|
93
|
+
encodeTaggedObject: async (self, codecs, data) => {
|
|
94
|
+
const result = await self.asyncEncode(codecs, data);
|
|
95
|
+
if (require_is.isLeft(result)) throw new EncodeTaggedObjectError(require_unwrap.unwrapLeft(result));
|
|
96
|
+
return require_unwrap$1.unwrapRight(result);
|
|
97
|
+
}
|
|
82
98
|
}));
|
|
83
99
|
//#endregion
|
|
100
|
+
exports.EncodeTaggedObjectError = EncodeTaggedObjectError;
|
|
84
101
|
exports.TaggedObjectStructure = TaggedObjectStructure;
|
|
85
102
|
exports.objectTagKind = objectTagKind;
|
|
86
103
|
exports.taggedObjectStructureKind = taggedObjectStructureKind;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NewType, NewTypeMap } from '../newType';
|
|
2
|
-
import
|
|
2
|
+
import * as DKind from '../../kind';
|
|
3
3
|
import * as DCommon from '../../common';
|
|
4
4
|
import * as DEither from '../../either';
|
|
5
5
|
import * as DDataStructure from '../../dataStructure';
|
|
@@ -36,7 +36,7 @@ export type TaggedObjectMap<GenericValue extends unknown, GenericRawValue = DCom
|
|
|
36
36
|
]> extends true ? {
|
|
37
37
|
[Prop in keyof GenericRawValue]: TaggedObjectMap<GenericRawValue[Prop]>;
|
|
38
38
|
} : GenericRawValue : GenericRawValue;
|
|
39
|
-
export interface TaggedObjectStructure<GenericTaggedObject extends ObjectTag = ObjectTag> extends DCommon.Forward<DDataStructure.Structure<GenericTaggedObject, TaggedObjectStructureDefinition> & DKind.Kind<typeof taggedObjectStructureKind>> {
|
|
39
|
+
export interface TaggedObjectStructure<out GenericTaggedObject extends ObjectTag = ObjectTag> extends DCommon.Forward<DDataStructure.Structure<GenericTaggedObject, TaggedObjectStructureDefinition> & DKind.Kind<typeof taggedObjectStructureKind>> {
|
|
40
40
|
readonly name: GetTagValue<GenericTaggedObject>;
|
|
41
41
|
"new"(properties: DCommon.SimplifyTopLevel<DKind.Remove<GenericTaggedObject>>): GenericTaggedObject;
|
|
42
42
|
decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>) => (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
|
|
@@ -45,5 +45,12 @@ export interface TaggedObjectStructure<GenericTaggedObject extends ObjectTag = O
|
|
|
45
45
|
asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>) => Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
|
|
46
46
|
asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>): Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
|
|
47
47
|
asyncMap(data: TaggedObjectMap<DKind.Remove<DDataStructure.StructureValue<this>>>): Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
|
|
48
|
+
encodeTaggedObject<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.StructureValue<this>): Promise<DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>>;
|
|
49
|
+
}
|
|
50
|
+
declare const EncodeTaggedObjectError_base: DKind.KindClass<DKind.Handler<DKind.Definition<"@DuplojsLangModeling/encode-tagged-object-error", unknown>>, ErrorConstructor>;
|
|
51
|
+
export declare class EncodeTaggedObjectError extends EncodeTaggedObjectError_base {
|
|
52
|
+
error: DDataStructure.Error;
|
|
53
|
+
constructor(error: DDataStructure.Error);
|
|
48
54
|
}
|
|
49
55
|
export declare const TaggedObjectStructure: <GenericTaggedObject extends ObjectTag, GenericName extends string = never, GenericShape extends DDataStructure.ShapeObjectStructure = never>(name: GetTagValue<GenericTaggedObject> | GenericName, shape: ShapeTaggedObjectStructure<GenericTaggedObject> | GenericShape) => TaggedObjectStructure<ObjectTag extends GenericTaggedObject ? (ObjectTag<GenericName> & DDataStructure.ShapeObjectStructureValue<GenericShape>) : GenericTaggedObject>;
|
|
56
|
+
export {};
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
import { parentClass } from "../../kind/parentClass.mjs";
|
|
1
2
|
import { isSimple } from "../../object/isSimple.mjs";
|
|
2
3
|
import { left } from "../../either/left/create.mjs";
|
|
4
|
+
import { isLeft } from "../../either/left/is.mjs";
|
|
3
5
|
import { right } from "../../either/right/create.mjs";
|
|
6
|
+
import { unwrapLeft } from "../../either/left/unwrap.mjs";
|
|
7
|
+
import { unwrapRight } from "../../either/right/unwrap.mjs";
|
|
4
8
|
import { justExec } from "../../common/justExec.mjs";
|
|
5
9
|
import { ErrorSymbol } from "../../dataStructure/common/resultSymbol.mjs";
|
|
6
10
|
import { createGetErrorHandler } from "../../dataStructure/common/error.mjs";
|
|
@@ -11,6 +15,13 @@ import { createKind } from "../kind.mjs";
|
|
|
11
15
|
//#region scripts/modeling/taggedObject/base.ts
|
|
12
16
|
const objectTagKind = createKind("object-tag");
|
|
13
17
|
const taggedObjectStructureKind = createKind("tagged-object-structure");
|
|
18
|
+
var EncodeTaggedObjectError = class extends parentClass(createKind("encode-tagged-object-error"), Error) {
|
|
19
|
+
error;
|
|
20
|
+
constructor(error) {
|
|
21
|
+
super(void 0, "An error occurred while encoding a TaggedObject. This can only happen if you are bypassing the type system.");
|
|
22
|
+
this.error = error;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
14
25
|
const TaggedObjectStructure = createStructure(taggedObjectStructureKind, ({ init }) => (name, shape) => init({
|
|
15
26
|
inner: ObjectStructure({
|
|
16
27
|
...shape,
|
|
@@ -70,7 +81,7 @@ const TaggedObjectStructure = createStructure(taggedObjectStructureKind, ({ init
|
|
|
70
81
|
return right("map-success", result);
|
|
71
82
|
});
|
|
72
83
|
},
|
|
73
|
-
asyncMap: (self, data) =>
|
|
84
|
+
asyncMap: async (self, data) => {
|
|
74
85
|
const errorHandler = createGetErrorHandler();
|
|
75
86
|
const formattedData = isSimple(data) ? {
|
|
76
87
|
...data,
|
|
@@ -78,7 +89,12 @@ const TaggedObjectStructure = createStructure(taggedObjectStructureKind, ({ init
|
|
|
78
89
|
} : data;
|
|
79
90
|
if (await self.executeCheck(formattedData, errorHandler) === ErrorSymbol) return left("map-error", errorHandler().createError());
|
|
80
91
|
return right("map-success", formattedData);
|
|
81
|
-
}
|
|
92
|
+
},
|
|
93
|
+
encodeTaggedObject: async (self, codecs, data) => {
|
|
94
|
+
const result = await self.asyncEncode(codecs, data);
|
|
95
|
+
if (isLeft(result)) throw new EncodeTaggedObjectError(unwrapLeft(result));
|
|
96
|
+
return unwrapRight(result);
|
|
97
|
+
}
|
|
82
98
|
}));
|
|
83
99
|
//#endregion
|
|
84
|
-
export { TaggedObjectStructure, objectTagKind, taggedObjectStructureKind };
|
|
100
|
+
export { EncodeTaggedObjectError, TaggedObjectStructure, objectTagKind, taggedObjectStructureKind };
|
|
@@ -25,13 +25,13 @@ type CheckIsGreater<GreaterSplitValue extends DCommon.AnyTuple<DString.Digit>, G
|
|
|
25
25
|
infer InferredRestSplitValue extends DCommon.AnyTuple<DString.Digit>,
|
|
26
26
|
infer InferredRestSplitReference extends DCommon.AnyTuple<FigureGreaterThanTableValue>
|
|
27
27
|
] ? CheckIsGreater<InferredRestSplitValue, InferredRestSplitReference> : never : false;
|
|
28
|
-
type toStringDecimal<GenericValue extends number> = `${GenericValue}` extends `${DString.
|
|
28
|
+
type toStringDecimal<GenericValue extends number> = `${GenericValue}` extends `${DString.NumberInString}.${DString.NumberInString}` ? `${GenericValue}` : `${GenericValue}.0`;
|
|
29
29
|
type PrepareValues<GenericValue extends number, GenericReference extends number> = readonly [
|
|
30
30
|
toStringDecimal<GenericValue>,
|
|
31
31
|
toStringDecimal<GenericReference>
|
|
32
32
|
] extends readonly [
|
|
33
|
-
`${infer InferredValueInteger extends DString.
|
|
34
|
-
`${infer InferredReferenceInteger extends DString.
|
|
33
|
+
`${infer InferredValueInteger extends DString.NumberInString}.${infer InferredValueDecimals extends DString.NumberInString}`,
|
|
34
|
+
`${infer InferredReferenceInteger extends DString.NumberInString}.${infer InferredReferenceDecimals extends DString.NumberInString}`
|
|
35
35
|
] ? DCommon.And<[
|
|
36
36
|
DCommon.IsEqual<InferredValueDecimals, "0">,
|
|
37
37
|
DCommon.IsEqual<InferredReferenceDecimals, "0">
|
|
@@ -52,8 +52,8 @@ type PrepareValues<GenericValue extends number, GenericReference extends number>
|
|
|
52
52
|
`${infer InferredResultReference}`
|
|
53
53
|
] ? readonly [`${InferredResultValue}`, `${InferredResultReference}`] : never : never : readonly [InferredValueInteger, InferredReferenceInteger] : never;
|
|
54
54
|
type ComputeIsGreater<GenericValue extends number, GenericReference extends number> = PrepareValues<GenericValue, GenericReference> extends readonly [
|
|
55
|
-
infer InferredValue extends DString.
|
|
56
|
-
infer InferredReference extends DString.
|
|
55
|
+
infer InferredValue extends DString.NumberInString,
|
|
56
|
+
infer InferredReference extends DString.NumberInString
|
|
57
57
|
] ? DCommon.And<[
|
|
58
58
|
DString.Includes<InferredValue, "-">,
|
|
59
59
|
DCommon.Not<DString.Includes<InferredReference, "-">>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { GetPropsWithValueExtends } from './getPropsWithValueExtends';
|
|
2
|
+
import type * as DCommon from '../../common';
|
|
3
|
+
export type ForbiddenUndefinedProps<GenericObject extends object> = DCommon.IsNever<GetPropsWithValueExtends<GenericObject, undefined>> extends true ? unknown : DCommon.ComputedTypeError<"Having \"undefined\" values for properties is not allowed.">;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
export type * from './assignObjects';
|
|
2
|
-
export type * from './everyCombination';
|
|
3
2
|
export type * from './deepPartial';
|
|
4
3
|
export type * from './deepReadonly';
|
|
5
4
|
export type * from './deepRemoveReadonly';
|
|
6
5
|
export type * from './deepRequired';
|
|
6
|
+
export type * from './everyCombination';
|
|
7
7
|
export type * from './flatObject';
|
|
8
8
|
export type * from './forbiddenKey';
|
|
9
|
+
export type * from './forbiddenUndefinedProps';
|
|
9
10
|
export type * from './getPropsWithValue';
|
|
10
11
|
export type * from './getPropsWithValueExtends';
|
|
11
12
|
export type * from './partialKeys';
|
|
@@ -2,12 +2,12 @@ import type * as DCommon from '../../common';
|
|
|
2
2
|
type CreateShape<GenericResult extends unknown, GenericProp extends keyof any> = GenericResult extends any ? {
|
|
3
3
|
[RemapProp in GenericProp]: GenericResult;
|
|
4
4
|
} : never;
|
|
5
|
-
export type Split<GenericValue extends unknown, GenericMax extends number = 10, GenericAccumulator extends readonly never[] = readonly []> = GenericValue extends
|
|
5
|
+
export type Split<GenericValue extends unknown, GenericMax extends number = 10, GenericAccumulator extends readonly never[] = readonly []> = GenericValue extends unknown ? DCommon.IsObject<GenericValue> extends true ? GenericAccumulator["length"] extends GenericMax ? GenericValue : {
|
|
6
6
|
[Prop in keyof GenericValue]: DCommon.NeverCoalescing<CreateShape<Split<GenericValue[Prop], GenericMax, [
|
|
7
7
|
...GenericAccumulator,
|
|
8
8
|
never
|
|
9
9
|
]>, Prop>, {
|
|
10
10
|
[RemapProp in Prop]: never;
|
|
11
11
|
}>;
|
|
12
|
-
}[keyof GenericValue] : GenericValue;
|
|
12
|
+
}[keyof GenericValue] : GenericValue : never;
|
|
13
13
|
export {};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type * as DCommon from '../common';
|
|
2
2
|
import type * as DNumber from '../number/types';
|
|
3
|
-
type ComputeMatcher<GenericInput extends number> = {
|
|
3
|
+
type ComputeMatcher<GenericInput extends number> = DCommon.SimplifyType<{
|
|
4
4
|
[Prop in GenericInput]: (value: Prop) => unknown;
|
|
5
|
-
}
|
|
5
|
+
}>;
|
|
6
6
|
type ForbiddenMoreKey<GenericInput extends number, GenericMatcher extends ComputeMatcher<GenericInput>> = Exclude<keyof GenericMatcher, GenericInput> extends infer InferredKey ? DCommon.IsEqual<InferredKey, never> extends true ? unknown : DCommon.ComputedTypeError<`Key "${Extract<InferredKey, number>}" is forbidden.`> : never;
|
|
7
|
-
export declare function matchWithNumber<GenericInput extends number, GenericMatcher extends ComputeMatcher<
|
|
8
|
-
export declare function matchWithNumber<GenericInput extends number, GenericMatcher extends ComputeMatcher<
|
|
7
|
+
export declare function matchWithNumber<GenericInput extends number, GenericClearInput extends Extract<DCommon.RemoveConstraint<GenericInput>, number>, GenericMatcher extends ComputeMatcher<GenericClearInput>>(matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericClearInput>, GenericMatcher> & ForbiddenMoreKey<GenericClearInput, GenericMatcher>)): (input: GenericInput & DNumber.RequireSimpleLiteral<GenericClearInput>) => ReturnType<GenericMatcher[keyof GenericMatcher]>;
|
|
8
|
+
export declare function matchWithNumber<GenericInput extends number, GenericClearInput extends Extract<DCommon.RemoveConstraint<GenericInput>, number>, GenericMatcher extends ComputeMatcher<GenericClearInput>>(input: GenericInput & DNumber.RequireSimpleLiteral<GenericClearInput>, matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericClearInput>, GenericMatcher> & ForbiddenMoreKey<GenericClearInput, GenericMatcher>)): ReturnType<GenericMatcher[keyof GenericMatcher]>;
|
|
9
9
|
export {};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type * as DCommon from '../common';
|
|
2
2
|
import type * as DNumber from '../number/types';
|
|
3
3
|
import type * as DObject from '../object';
|
|
4
|
-
type ComputeMatcher<GenericInput extends number> = {
|
|
4
|
+
type ComputeMatcher<GenericInput extends number> = DCommon.SimplifyType<{
|
|
5
5
|
[Prop in GenericInput]?: (value: Prop) => unknown;
|
|
6
|
-
}
|
|
6
|
+
}>;
|
|
7
7
|
type ForbiddenMoreKey<GenericInput extends number, GenericMatcher extends ComputeMatcher<GenericInput>> = Exclude<keyof GenericMatcher, GenericInput> extends infer InferredKey ? DCommon.IsEqual<InferredKey, never> extends true ? unknown : DCommon.ComputedTypeError<`Key "${Extract<InferredKey, number>}" is forbidden.`> : never;
|
|
8
8
|
type HandledKeys<GenericMatcher extends object> = Extract<DObject.GetPropsWithValueExtends<GenericMatcher, DCommon.AnyFunction>, number>;
|
|
9
|
-
export declare function matchWithNumberOtherwise<GenericInput extends number, GenericMatcher extends ComputeMatcher<
|
|
10
|
-
export declare function matchWithNumberOtherwise<GenericInput extends number, GenericMatcher extends ComputeMatcher<
|
|
9
|
+
export declare function matchWithNumberOtherwise<GenericInput extends number, GenericClearInput extends Extract<DCommon.RemoveConstraint<GenericInput>, number>, GenericMatcher extends ComputeMatcher<GenericClearInput>, GenericOutput extends unknown>(matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericClearInput>, GenericMatcher> & ForbiddenMoreKey<GenericClearInput, GenericMatcher>), otherwise: (value: Exclude<GenericInput, HandledKeys<GenericMatcher>>) => GenericOutput): (input: GenericInput & DNumber.RequireSimpleLiteral<GenericClearInput>) => (ReturnType<Extract<GenericMatcher[keyof GenericMatcher], DCommon.AnyFunction>> | GenericOutput);
|
|
10
|
+
export declare function matchWithNumberOtherwise<GenericInput extends number, GenericClearInput extends Extract<DCommon.RemoveConstraint<GenericInput>, number>, GenericMatcher extends ComputeMatcher<GenericClearInput>, GenericOutput extends unknown>(input: GenericInput & DNumber.RequireSimpleLiteral<GenericClearInput>, matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericClearInput>, GenericMatcher> & ForbiddenMoreKey<GenericClearInput, GenericMatcher>), otherwise: (value: Exclude<GenericInput, HandledKeys<GenericMatcher>>) => GenericOutput): (ReturnType<Extract<GenericMatcher[keyof GenericMatcher], DCommon.AnyFunction>> | GenericOutput);
|
|
11
11
|
export {};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type * as DCommon from '../common';
|
|
2
2
|
import type * as DObject from '../object';
|
|
3
3
|
import type * as DString from '../string/types';
|
|
4
|
-
type ComputeMatcher<GenericInput extends string> = {
|
|
4
|
+
type ComputeMatcher<GenericInput extends string> = DCommon.SimplifyType<{
|
|
5
5
|
[Prop in GenericInput]: (value: Prop) => unknown;
|
|
6
|
-
}
|
|
6
|
+
}>;
|
|
7
7
|
type ForbiddenMoreKey<GenericInput extends string, GenericMatcher extends ComputeMatcher<GenericInput>> = DObject.ForbiddenKey<GenericMatcher, Extract<Exclude<keyof GenericMatcher, GenericInput>, string>>;
|
|
8
|
-
export declare function matchWithString<GenericInput extends string, GenericMatcher extends ComputeMatcher<
|
|
9
|
-
export declare function matchWithString<GenericInput extends string, GenericMatcher extends ComputeMatcher<
|
|
8
|
+
export declare function matchWithString<GenericInput extends string, GenericClearInput extends Extract<DCommon.RemoveConstraint<GenericInput>, string>, GenericMatcher extends ComputeMatcher<GenericClearInput>>(matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericClearInput>, GenericMatcher> & ForbiddenMoreKey<GenericClearInput, GenericMatcher>)): (input: GenericInput & DString.RequireSimpleLiteral<GenericClearInput>) => ReturnType<GenericMatcher[keyof GenericMatcher]>;
|
|
9
|
+
export declare function matchWithString<GenericInput extends string, GenericClearInput extends Extract<DCommon.RemoveConstraint<GenericInput>, string>, GenericMatcher extends ComputeMatcher<GenericClearInput>>(input: GenericInput & DString.RequireSimpleLiteral<GenericClearInput>, matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericClearInput>, GenericMatcher> & ForbiddenMoreKey<GenericClearInput, GenericMatcher>)): ReturnType<GenericMatcher[keyof GenericMatcher]>;
|
|
10
10
|
export {};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type * as DCommon from '../common';
|
|
2
2
|
import type * as DObject from '../object';
|
|
3
3
|
import type * as DString from '../string';
|
|
4
|
-
type ComputeMatcher<GenericInput extends string> = {
|
|
4
|
+
type ComputeMatcher<GenericInput extends string> = DCommon.SimplifyType<{
|
|
5
5
|
[Prop in GenericInput]?: (value: Prop) => unknown;
|
|
6
|
-
}
|
|
6
|
+
}>;
|
|
7
7
|
type ForbiddenMoreKey<GenericInput extends string, GenericMatcher extends ComputeMatcher<GenericInput>> = DObject.ForbiddenKey<GenericMatcher, Extract<Exclude<keyof GenericMatcher, GenericInput>, string>>;
|
|
8
8
|
type HandledKeys<GenericMatcher extends object> = Extract<DObject.GetPropsWithValueExtends<GenericMatcher, DCommon.AnyFunction>, string>;
|
|
9
|
-
export declare function matchWithStringOtherwise<GenericInput extends string, GenericMatcher extends ComputeMatcher<
|
|
10
|
-
export declare function matchWithStringOtherwise<GenericInput extends string, GenericMatcher extends ComputeMatcher<
|
|
9
|
+
export declare function matchWithStringOtherwise<GenericInput extends string, GenericClearInput extends Extract<DCommon.RemoveConstraint<GenericInput>, string>, GenericMatcher extends ComputeMatcher<GenericClearInput>, GenericOutput extends unknown>(matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericClearInput>, GenericMatcher> & ForbiddenMoreKey<GenericClearInput, GenericMatcher>), otherwise: (value: Exclude<GenericInput, HandledKeys<GenericMatcher>>) => GenericOutput): (input: GenericInput & DString.RequireSimpleLiteral<GenericClearInput>) => (ReturnType<Extract<GenericMatcher[keyof GenericMatcher], DCommon.AnyFunction>> | GenericOutput);
|
|
10
|
+
export declare function matchWithStringOtherwise<GenericInput extends string, GenericClearInput extends Extract<DCommon.RemoveConstraint<GenericInput>, string>, GenericMatcher extends ComputeMatcher<GenericClearInput>, GenericOutput extends unknown>(input: GenericInput & DString.RequireSimpleLiteral<GenericClearInput>, matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericClearInput>, GenericMatcher> & ForbiddenMoreKey<GenericClearInput, GenericMatcher>), otherwise: (value: Exclude<GenericInput, HandledKeys<GenericMatcher>>) => GenericOutput): (ReturnType<Extract<GenericMatcher[keyof GenericMatcher], DCommon.AnyFunction>> | GenericOutput);
|
|
11
11
|
export {};
|
|
@@ -2,8 +2,8 @@ import type * as DCommon from '../../common';
|
|
|
2
2
|
import type * as DObject from '../../object';
|
|
3
3
|
export interface CharactersRangeStore {
|
|
4
4
|
}
|
|
5
|
-
export type CharactersRange = Extract<DObject.
|
|
5
|
+
export type CharactersRange = Extract<DObject.GetPropsWithValueExtends<CharactersRangeStore, string>, string>;
|
|
6
6
|
export type AllowedCharactersConstraintName = "string-allowed-characters";
|
|
7
|
-
export interface AllowedCharacters<GenericCharactersRange extends CharactersRange = never> extends DCommon.Constraint<AllowedCharactersConstraintName, Record<GenericCharactersRange,
|
|
7
|
+
export interface AllowedCharacters<GenericCharactersRange extends CharactersRange = never> extends DCommon.Constraint<AllowedCharactersConstraintName, () => Partial<Record<GenericCharactersRange, GenericCharactersRange>>> {
|
|
8
8
|
}
|
|
9
|
-
export type ExtractAllowedCharacters<GenericConstraint extends unknown, GenericDefault extends unknown = never> = GenericConstraint extends AllowedCharacters ? (keyof GenericConstraint[DCommon.ConstraintSymbol][AllowedCharactersConstraintName]) extends infer InferredResult extends CharactersRange ? DCommon.UnionToIntersection<InferredResult extends any ? AllowedCharacters<InferredResult> : never> : GenericDefault : GenericDefault;
|
|
9
|
+
export type ExtractAllowedCharacters<GenericConstraint extends unknown, GenericDefault extends unknown = never> = GenericConstraint extends AllowedCharacters ? (keyof ReturnType<GenericConstraint[DCommon.ConstraintSymbol][AllowedCharactersConstraintName]>) extends infer InferredResult extends CharactersRange ? DCommon.UnionToIntersection<InferredResult extends any ? DCommon.IsNever<InferredResult> extends true ? AllowedCharacters : AllowedCharacters<InferredResult> : never> : GenericDefault : GenericDefault;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export type * from './types';
|
|
2
1
|
export type * from './allowedCharacters';
|
|
3
2
|
export type * from './email';
|
|
4
3
|
export type * from './format';
|
|
@@ -6,6 +5,8 @@ export type * from './lengthEqual';
|
|
|
6
5
|
export type * from './maxCharacters';
|
|
7
6
|
export type * from './minCharacters';
|
|
8
7
|
export type * from './notEmpty';
|
|
8
|
+
export type * from './number';
|
|
9
9
|
export type * from './trimmed';
|
|
10
|
+
export type * from './types';
|
|
10
11
|
export type * from './url';
|
|
11
12
|
export type * from './uuid';
|
package/dist/string/index.cjs
CHANGED
|
@@ -14,6 +14,7 @@ const require_isEmail = require("./isEmail.cjs");
|
|
|
14
14
|
const require_isIn = require("./isIn.cjs");
|
|
15
15
|
const require_isKeyof = require("./isKeyof.cjs");
|
|
16
16
|
const require_isNotEmpty = require("./isNotEmpty.cjs");
|
|
17
|
+
const require_isNumber = require("./isNumber.cjs");
|
|
17
18
|
const require_isUrl = require("./isUrl.cjs");
|
|
18
19
|
const require_isUuid = require("./isUuid.cjs");
|
|
19
20
|
const require_join = require("./join.cjs");
|
|
@@ -67,6 +68,7 @@ var string_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
|
67
68
|
isIn: () => require_isIn.isIn,
|
|
68
69
|
isKeyof: () => require_isKeyof.isKeyof,
|
|
69
70
|
isNotEmpty: () => require_isNotEmpty.isNotEmpty,
|
|
71
|
+
isNumber: () => require_isNumber.isNumber,
|
|
70
72
|
isTrimmed: () => require_is.isTrimmed,
|
|
71
73
|
isUrl: () => require_isUrl.isUrl,
|
|
72
74
|
isUuid: () => require_isUuid.isUuid,
|
|
@@ -121,6 +123,7 @@ exports.isEmail = require_isEmail.isEmail;
|
|
|
121
123
|
exports.isIn = require_isIn.isIn;
|
|
122
124
|
exports.isKeyof = require_isKeyof.isKeyof;
|
|
123
125
|
exports.isNotEmpty = require_isNotEmpty.isNotEmpty;
|
|
126
|
+
exports.isNumber = require_isNumber.isNumber;
|
|
124
127
|
exports.isTrimmed = require_is.isTrimmed;
|
|
125
128
|
exports.isUrl = require_isUrl.isUrl;
|
|
126
129
|
exports.isUuid = require_isUuid.isUuid;
|
package/dist/string/index.d.ts
CHANGED
package/dist/string/index.mjs
CHANGED
|
@@ -14,6 +14,7 @@ import { emailRegex, isEmail } from "./isEmail.mjs";
|
|
|
14
14
|
import { isIn } from "./isIn.mjs";
|
|
15
15
|
import { isKeyof } from "./isKeyof.mjs";
|
|
16
16
|
import { isNotEmpty } from "./isNotEmpty.mjs";
|
|
17
|
+
import { isNumber } from "./isNumber.mjs";
|
|
17
18
|
import { isUrl } from "./isUrl.mjs";
|
|
18
19
|
import { isUuid, uuidRegex } from "./isUuid.mjs";
|
|
19
20
|
import { join } from "./join.mjs";
|
|
@@ -67,6 +68,7 @@ var string_exports = /* @__PURE__ */ __exportAll({
|
|
|
67
68
|
isIn: () => isIn,
|
|
68
69
|
isKeyof: () => isKeyof,
|
|
69
70
|
isNotEmpty: () => isNotEmpty,
|
|
71
|
+
isNumber: () => isNumber,
|
|
70
72
|
isTrimmed: () => isTrimmed,
|
|
71
73
|
isUrl: () => isUrl,
|
|
72
74
|
isUuid: () => isUuid,
|
|
@@ -105,4 +107,4 @@ var string_exports = /* @__PURE__ */ __exportAll({
|
|
|
105
107
|
uuidRegex: () => uuidRegex
|
|
106
108
|
});
|
|
107
109
|
//#endregion
|
|
108
|
-
export { at, capitalize, charAt, concat, emailRegex, endsWith, extract, extractAll, first, includes, indexOf, isComposedOf, isEmail, isIn, isKeyof, isNotEmpty, isTrimmed, isUrl, isUuid, join, last, lastIndexOf, length, lengthEqual, maxCharacters, minCharacters, normalize, padEnd, padStart, pop, prepend, repeat, replace, replaceAll, search, shift, slice, sort, sortCompare, split, startsWith, string_exports, stringify, substring, test, to, toLowerCase, toUpperCase, trim, trimEnd, trimStart, uncapitalize, uuidRegex };
|
|
110
|
+
export { at, capitalize, charAt, concat, emailRegex, endsWith, extract, extractAll, first, includes, indexOf, isComposedOf, isEmail, isIn, isKeyof, isNotEmpty, isNumber, isTrimmed, isUrl, isUuid, join, last, lastIndexOf, length, lengthEqual, maxCharacters, minCharacters, normalize, padEnd, padStart, pop, prepend, repeat, replace, replaceAll, search, shift, slice, sort, sortCompare, split, startsWith, string_exports, stringify, substring, test, to, toLowerCase, toUpperCase, trim, trimEnd, trimStart, uncapitalize, uuidRegex };
|
|
@@ -2,13 +2,10 @@ import { AllowedCharacters, CharactersRange } from './constraints';
|
|
|
2
2
|
import type * as DCommon from '../common';
|
|
3
3
|
declare module "./constraints" {
|
|
4
4
|
interface CharactersRangeStore {
|
|
5
|
-
"a-z":
|
|
6
|
-
"A-Z":
|
|
7
|
-
"
|
|
8
|
-
"0-9": true;
|
|
5
|
+
"a-z": "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z";
|
|
6
|
+
"A-Z": "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z";
|
|
7
|
+
"0-9": "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9";
|
|
9
8
|
}
|
|
10
9
|
}
|
|
11
|
-
|
|
12
|
-
export declare function isComposedOf<
|
|
13
|
-
export declare function isComposedOf<GenericValue extends string, GenericCharactersRange extends CharactersRange>(value: GenericValue, charactersRange: DCommon.MaybeArray<GenericCharactersRange>): value is ContainsIsComposedOf<GenericValue, GenericCharactersRange>;
|
|
14
|
-
export {};
|
|
10
|
+
export declare function isComposedOf<GenericCharactersRange extends CharactersRange>(charactersRange: DCommon.MaybeArray<GenericCharactersRange>): (value: string) => value is string & AllowedCharacters<GenericCharactersRange>;
|
|
11
|
+
export declare function isComposedOf<GenericCharactersRange extends CharactersRange>(value: string, charactersRange: DCommon.MaybeArray<GenericCharactersRange>): value is string & AllowedCharacters<GenericCharactersRange>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Number } from './constraints';
|
|
2
|
+
import { NumberInString } from './types';
|
|
3
|
+
type ComputeResult<GenericValue extends string> = GenericValue extends Number ? GenericValue : GenericValue extends NumberInString ? GenericValue : GenericValue & Number;
|
|
4
|
+
export declare function isNumber<GenericValue extends string>(string: GenericValue): string is ComputeResult<GenericValue>;
|
|
5
|
+
export {};
|
package/dist/string/to.d.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { Number } from './constraints';
|
|
2
|
+
import type * as DNumber from '../number';
|
|
3
|
+
type Stringifyable = (null | undefined | {
|
|
4
|
+
toString(): string;
|
|
5
|
+
});
|
|
6
|
+
type ComputeResult<GenericValue extends Stringifyable> = GenericValue extends number ? DNumber.IsLiteral<GenericValue> extends true ? `${GenericValue}` : string & Number : GenericValue extends (string | boolean | null | undefined | bigint) ? `${GenericValue}` : GenericValue extends {
|
|
7
|
+
toString(): string;
|
|
8
|
+
} ? ReturnType<GenericValue["toString"]> : never;
|
|
9
|
+
export declare function to<GenericValue extends Stringifyable>(value: GenericValue): ComputeResult<GenericValue>;
|
|
3
10
|
export {};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
type IsAllowedTail<GenericValue extends string, GenericAllowed extends string> = GenericValue extends `${infer Char}${infer Rest}` ? Char extends GenericAllowed ? IsAllowedTail<Rest, GenericAllowed> : false : true;
|
|
2
|
+
export type IsAllowedString<GenericValue extends string, GenericAllowed extends string> = GenericValue extends `${infer InferredA}${infer InferredB}${infer InferredC}${infer InferredD}${infer InferredE}${infer InferredF}${infer InferredG}${infer InferredH}${infer InferredRest}` ? (InferredA | InferredB | InferredC | InferredD | InferredE | InferredF | InferredG | InferredH) extends GenericAllowed ? IsAllowedString<InferredRest, GenericAllowed> : false : IsAllowedTail<GenericValue, GenericAllowed>;
|
|
3
|
+
export {};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export type * from './IsAllowedString';
|
|
2
|
+
export type * from './at';
|
|
1
3
|
export type * from './countMinCharacters';
|
|
2
4
|
export type * from './digit';
|
|
3
5
|
export type * from './endsWith';
|
|
@@ -5,12 +7,14 @@ export type * from './first';
|
|
|
5
7
|
export type * from './forbiddenContain';
|
|
6
8
|
export type * from './forbiddenString';
|
|
7
9
|
export type * from './includes';
|
|
10
|
+
export type * from './isKeyPattern';
|
|
8
11
|
export type * from './isLiteral';
|
|
12
|
+
export type * from './isTemplateLiteral';
|
|
9
13
|
export type * from './join';
|
|
10
14
|
export type * from './last';
|
|
11
15
|
export type * from './length';
|
|
12
16
|
export type * from './normalizeForm';
|
|
13
|
-
export type * from './
|
|
17
|
+
export type * from './numberInString';
|
|
14
18
|
export type * from './pop';
|
|
15
19
|
export type * from './replace';
|
|
16
20
|
export type * from './requireLiteral';
|
|
@@ -18,7 +22,3 @@ export type * from './requireSimpleLiteral';
|
|
|
18
22
|
export type * from './shift';
|
|
19
23
|
export type * from './split';
|
|
20
24
|
export type * from './startsWith';
|
|
21
|
-
export type * from './isKeyPattern';
|
|
22
|
-
export type * from './at';
|
|
23
|
-
export type * from './first';
|
|
24
|
-
export type * from './last';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type NumberInString = `${number}`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@duplojs/lang",
|
|
3
|
-
"version": "0.0.1-beta.
|
|
3
|
+
"version": "0.0.1-beta.9",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": {
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"test:ut:watch": "./.commands/test-ut.sh --watch",
|
|
20
20
|
"test:ut:update": "./.commands/test-ut.sh --update",
|
|
21
21
|
"test:types": "./.commands/test-types.sh",
|
|
22
|
+
"test:types:lib": "./.commands/test-types-lib.sh",
|
|
22
23
|
"test:types:target": "./.commands/test-types-target.sh",
|
|
23
24
|
"test:lint": "./.commands/test-lint.sh",
|
|
24
25
|
"test:lint:fix": "./.commands/test-lint.sh --fix",
|
|
@@ -128,7 +129,6 @@
|
|
|
128
129
|
"@vitest/coverage-istanbul": "4.1.10"
|
|
129
130
|
},
|
|
130
131
|
"workspaces": [
|
|
131
|
-
"integrations",
|
|
132
132
|
"docs"
|
|
133
133
|
],
|
|
134
134
|
"files": [
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { callThen } from "../../common/callThen.mjs";
|
|
2
|
-
import { memo } from "../../common/memo.mjs";
|
|
3
|
-
import { createKind } from "../kind.mjs";
|
|
4
|
-
import { ErrorSymbol } from "./resultSymbol.mjs";
|
|
5
|
-
//#region scripts/dataStructure/common/codec.ts
|
|
6
|
-
const codecKind = createKind("codec");
|
|
7
|
-
const codecsKind = createKind("codecs");
|
|
8
|
-
function createCodec(fundamentalType, predicateEncode, encode, decode) {
|
|
9
|
-
const self = {
|
|
10
|
-
fundamentalType,
|
|
11
|
-
predicateEncode: (data) => predicateEncode(data),
|
|
12
|
-
encode: (data, errorHandler) => callThen(encode(data, self, errorHandler), (encodedData) => encodedData === ErrorSymbol ? ErrorSymbol : callThen(predicateEncode(encodedData), (result) => result === false ? errorHandler?.().addEncodeIssue(self, encodedData) ?? ErrorSymbol : encodedData)),
|
|
13
|
-
decode: (data, errorHandler) => callThen(predicateEncode(data), (result) => result === false ? errorHandler?.().addDecodeIssue(self, data) ?? ErrorSymbol : decode(data, self, errorHandler)),
|
|
14
|
-
[codecKind.runTimeKey]: null
|
|
15
|
-
};
|
|
16
|
-
return self;
|
|
17
|
-
}
|
|
18
|
-
function createCodecs(definition) {
|
|
19
|
-
return {
|
|
20
|
-
context: memo(() => new Map(Object.values(definition).map((codec) => [codec.fundamentalType, codec]))),
|
|
21
|
-
definition,
|
|
22
|
-
[codecsKind.runTimeKey]: null
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
//#endregion
|
|
26
|
-
export { codecKind, codecsKind, createCodec, createCodecs };
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
const require_entries = require("../object/entries.cjs");
|
|
2
|
-
const require_entry = require("../object/entry.cjs");
|
|
3
|
-
const require_fromEntries = require("../object/fromEntries.cjs");
|
|
4
|
-
const require_map = require("../array/map.cjs");
|
|
5
|
-
const require_forward = require("../common/forward.cjs");
|
|
6
|
-
const require_pipe = require("../common/pipe.cjs");
|
|
7
|
-
const require_uncapitalize = require("../string/uncapitalize.cjs");
|
|
8
|
-
//#region scripts/invocation/useCase.ts
|
|
9
|
-
const useCaseHandlerKind = require("./kind.cjs").createKind("use-case-handler");
|
|
10
|
-
function createUseCase(dependencies, getUseCase) {
|
|
11
|
-
return {
|
|
12
|
-
dependencies,
|
|
13
|
-
getUseCase: (injectedDependencies) => getUseCase(require_pipe.pipe(require_forward.forward(dependencies), require_entries.entries, require_map.map(([key, value]) => {
|
|
14
|
-
const formattedKey = require_uncapitalize.uncapitalize(key);
|
|
15
|
-
return require_entry.entry(formattedKey, useCaseHandlerKind.has(value) && !injectedDependencies[formattedKey] ? value.getUseCase(injectedDependencies) : injectedDependencies[formattedKey]);
|
|
16
|
-
}), require_fromEntries.fromEntries)),
|
|
17
|
-
[useCaseHandlerKind.runTimeKey]: null
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
function wireUseCases(useCases, ports) {
|
|
21
|
-
return require_pipe.pipe(useCases, require_entries.entries, require_map.map(([key, useCase]) => require_entry.entry(require_uncapitalize.uncapitalize(key), useCase.getUseCase(ports))), require_fromEntries.fromEntries);
|
|
22
|
-
}
|
|
23
|
-
//#endregion
|
|
24
|
-
exports.createUseCase = createUseCase;
|
|
25
|
-
exports.useCaseHandlerKind = useCaseHandlerKind;
|
|
26
|
-
exports.wireUseCases = wireUseCases;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { PortHandler } from './port';
|
|
2
|
-
import * as DCommon from '../common';
|
|
3
|
-
import type * as DKind from '../kind';
|
|
4
|
-
export type UseCaseDependencies = Record<string, UseCaseHandler | PortHandler>;
|
|
5
|
-
export type UseCaseDependenciesValue<GenericDependencies extends UseCaseDependencies> = DCommon.SimplifyTopLevel<{
|
|
6
|
-
[Prop in keyof GenericDependencies as Uncapitalize<Extract<Prop, string>>]: GenericDependencies[Prop] extends PortHandler ? ReturnType<GenericDependencies[Prop]["createImplementation"]> : GenericDependencies[Prop] extends UseCaseHandler ? ReturnType<GenericDependencies[Prop]["getUseCase"]> : never;
|
|
7
|
-
}>;
|
|
8
|
-
export type GetAllPorts<GenericDependenciesValue extends UseCaseDependencies> = GenericDependenciesValue extends any ? ({
|
|
9
|
-
[Prop in keyof GenericDependenciesValue]: (GenericDependenciesValue[Prop] extends PortHandler ? [
|
|
10
|
-
Uncapitalize<Extract<Prop, string>>,
|
|
11
|
-
ReturnType<GenericDependenciesValue[Prop]["createImplementation"]>
|
|
12
|
-
] : GenericDependenciesValue[Prop] extends UseCaseHandler ? GetAllPorts<GenericDependenciesValue[Prop]["dependencies"]> : never);
|
|
13
|
-
})[keyof GenericDependenciesValue] : never;
|
|
14
|
-
export declare const useCaseHandlerKind: DKind.Handler<DKind.Definition<"@DuplojsLangInvocation/use-case-handler", unknown>>;
|
|
15
|
-
export interface UseCaseHandler<GenericDependencies extends UseCaseDependencies = any, GenericUseCase extends (input: any) => any = any> extends DKind.Kind<typeof useCaseHandlerKind> {
|
|
16
|
-
dependencies: GenericDependencies;
|
|
17
|
-
getUseCase(ports: DCommon.SimplifyTopLevel<(GetAllPorts<GenericDependencies> extends infer InferredEntriesDependenciesValue extends DCommon.ObjectEntry ? {
|
|
18
|
-
[Entry in InferredEntriesDependenciesValue as Entry[0]]: Entry[1];
|
|
19
|
-
} : never) & ({
|
|
20
|
-
[Prop in keyof GenericDependencies as GenericDependencies[Prop] extends UseCaseHandler ? Uncapitalize<Extract<Prop, string>> : never]?: GenericDependencies[Prop] extends UseCaseHandler ? ReturnType<GenericDependencies[Prop]["getUseCase"]> : never;
|
|
21
|
-
})>): GenericUseCase;
|
|
22
|
-
}
|
|
23
|
-
export declare function createUseCase<const GenericDependencies extends UseCaseDependencies, GenericUseCase extends (...args: any[]) => any>(dependencies: GenericDependencies, getUseCase: (dependenciesValue: UseCaseDependenciesValue<GenericDependencies>) => GenericUseCase): UseCaseHandler<GenericDependencies, GenericUseCase>;
|
|
24
|
-
export declare function wireUseCases<GenericUseCases extends Record<string, UseCaseHandler>>(useCases: GenericUseCases, ports: DCommon.SimplifyTopLevel<DCommon.UnionToIntersection<{
|
|
25
|
-
[Prop in keyof GenericUseCases]: GetAllPorts<GenericUseCases[Prop]["dependencies"]> extends infer InferredEntriesDependenciesValue extends DCommon.ObjectEntry ? {
|
|
26
|
-
[Entry in InferredEntriesDependenciesValue as Entry[0]]: Entry[1];
|
|
27
|
-
} : never;
|
|
28
|
-
}[keyof GenericUseCases]>>): UseCaseDependenciesValue<GenericUseCases>;
|