@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
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { And } from './and';
|
|
2
|
+
import { IsExtends } from './IsExtends';
|
|
3
|
+
import { IsNever } from './isNever';
|
|
4
|
+
import { Not } from './not';
|
|
5
|
+
export type IsObject<GenericValue extends unknown> = And<[
|
|
6
|
+
IsExtends<GenericValue, object>,
|
|
7
|
+
Not<IsNever<keyof GenericValue>>
|
|
8
|
+
]>;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
const require_callThen = require("
|
|
2
|
-
const require_memo = require("
|
|
3
|
-
const require_kind = require("
|
|
4
|
-
const require_resultSymbol = require("
|
|
5
|
-
//#region scripts/dataStructure/common/codec.ts
|
|
1
|
+
const require_callThen = require("../../../common/callThen.cjs");
|
|
2
|
+
const require_memo = require("../../../common/memo.cjs");
|
|
3
|
+
const require_kind = require("../../kind.cjs");
|
|
4
|
+
const require_resultSymbol = require("../resultSymbol.cjs");
|
|
5
|
+
//#region scripts/dataStructure/common/codec/base.ts
|
|
6
6
|
const codecKind = require_kind.createKind("codec");
|
|
7
7
|
const codecsKind = require_kind.createKind("codecs");
|
|
8
8
|
function createCodec(fundamentalType, predicateEncode, encode, decode) {
|
|
9
9
|
const self = {
|
|
10
10
|
fundamentalType,
|
|
11
11
|
predicateEncode: (data) => predicateEncode(data),
|
|
12
|
-
encode: (data, errorHandler) => require_callThen.callThen(encode(data, self, errorHandler), (encodedData) => encodedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(predicateEncode(encodedData), (result) => result === false ? errorHandler?.().addEncodeIssue(self, encodedData) ?? require_resultSymbol.ErrorSymbol : encodedData)),
|
|
13
|
-
decode: (data, errorHandler) => require_callThen.callThen(predicateEncode(data), (result) => result === false ? errorHandler?.().addDecodeIssue(self, data) ?? require_resultSymbol.ErrorSymbol : decode(data, self, errorHandler)),
|
|
12
|
+
encode: (data, errorHandler) => require_callThen.callThen(encode(data, self, errorHandler), (encodedData) => encodedData === require_resultSymbol.ErrorSymbol ? errorHandler?.().addEncodeIssue(self, "encoding", data) ?? require_resultSymbol.ErrorSymbol : require_callThen.callThen(predicateEncode(encodedData), (result) => result === false ? errorHandler?.().addEncodeIssue(self, "predicate", encodedData) ?? require_resultSymbol.ErrorSymbol : encodedData)),
|
|
13
|
+
decode: (data, errorHandler) => require_callThen.callThen(predicateEncode(data), (result) => result === false ? errorHandler?.().addDecodeIssue(self, "predicate", data) ?? require_resultSymbol.ErrorSymbol : require_callThen.callThen(decode(data, self, errorHandler), (decodedData) => decodedData === require_resultSymbol.ErrorSymbol ? errorHandler?.().addDecodeIssue(self, "decoding", data) ?? require_resultSymbol.ErrorSymbol : decodedData)),
|
|
14
14
|
[codecKind.runTimeKey]: null
|
|
15
15
|
};
|
|
16
16
|
return self;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { FundamentalTypeValue, FundamentalType } from '
|
|
2
|
-
import { GetErrorHandler } from '
|
|
3
|
-
import { ErrorSymbol } from '
|
|
4
|
-
import type * as DKind from '
|
|
5
|
-
import * as DCommon from '
|
|
6
|
-
import type * as DObject from '
|
|
1
|
+
import { FundamentalTypeValue, FundamentalType } from '../../fundamentalType';
|
|
2
|
+
import { GetErrorHandler } from '../error';
|
|
3
|
+
import { ErrorSymbol } from '../resultSymbol';
|
|
4
|
+
import type * as DKind from '../../../kind';
|
|
5
|
+
import * as DCommon from '../../../common';
|
|
6
|
+
import type * as DObject from '../../../object';
|
|
7
7
|
export declare const codecKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/codec", unknown>>;
|
|
8
8
|
export interface Codec<GenericFundamentalType extends FundamentalType = FundamentalType, GenericEncodedValue extends unknown = unknown> extends DKind.Kind<typeof codecKind> {
|
|
9
9
|
readonly fundamentalType: GenericFundamentalType;
|
|
@@ -0,0 +1,26 @@
|
|
|
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/base.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 ? errorHandler?.().addEncodeIssue(self, "encoding", data) ?? ErrorSymbol : callThen(predicateEncode(encodedData), (result) => result === false ? errorHandler?.().addEncodeIssue(self, "predicate", encodedData) ?? ErrorSymbol : encodedData)),
|
|
13
|
+
decode: (data, errorHandler) => callThen(predicateEncode(data), (result) => result === false ? errorHandler?.().addDecodeIssue(self, "predicate", data) ?? ErrorSymbol : callThen(decode(data, self, errorHandler), (decodedData) => decodedData === ErrorSymbol ? errorHandler?.().addDecodeIssue(self, "decoding", data) ?? ErrorSymbol : decodedData)),
|
|
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 };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const require_whenHasInformationOtherwise = require("../../../../either/whenHasInformationOtherwise.cjs");
|
|
2
|
+
const require_createDate = require("../../../../chrono/createDate.cjs");
|
|
3
|
+
const require_createTime = require("../../../../chrono/createTime.cjs");
|
|
4
|
+
const require_forward = require("../../../../common/forward.cjs");
|
|
5
|
+
const require_innerPipe = require("../../../../common/innerPipe.cjs");
|
|
6
|
+
const require_justReturn = require("../../../../common/justReturn.cjs");
|
|
7
|
+
const require_to = require("../../../../string/to.cjs");
|
|
8
|
+
const require_resultSymbol = require("../../resultSymbol.cjs");
|
|
9
|
+
const require_base = require("../base.cjs");
|
|
10
|
+
const require_bigint = require("../../../fundamentalType/defaults/bigint.cjs");
|
|
11
|
+
const require_date = require("../../../fundamentalType/defaults/date.cjs");
|
|
12
|
+
const require_time = require("../../../fundamentalType/defaults/time.cjs");
|
|
13
|
+
//#region scripts/dataStructure/common/codec/defaults/json.ts
|
|
14
|
+
const codecsJson = require_base.createCodecs({
|
|
15
|
+
bigint: require_base.createCodec(require_bigint.TheBigint, (data) => typeof data === "string", require_to.to, (data) => {
|
|
16
|
+
try {
|
|
17
|
+
return BigInt(data);
|
|
18
|
+
} catch {
|
|
19
|
+
return require_resultSymbol.ErrorSymbol;
|
|
20
|
+
}
|
|
21
|
+
}),
|
|
22
|
+
date: require_base.createCodec(require_date.TheDate, (data) => typeof data === "string", require_to.to, require_innerPipe.innerPipe((value) => require_createDate.createDate({ value }), require_whenHasInformationOtherwise.whenHasInformationOtherwise("date-created", require_forward.forward, require_justReturn.justReturn(require_resultSymbol.ErrorSymbol)))),
|
|
23
|
+
time: require_base.createCodec(require_time.TheTime, (data) => typeof data === "string", require_to.to, require_innerPipe.innerPipe((value) => require_createTime.createTime({ value }), require_whenHasInformationOtherwise.whenHasInformationOtherwise("time-created", require_forward.forward, require_justReturn.justReturn(require_resultSymbol.ErrorSymbol))))
|
|
24
|
+
});
|
|
25
|
+
//#endregion
|
|
26
|
+
exports.codecsJson = codecsJson;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as FundamentalType from "../../../fundamentalType";
|
|
2
|
+
export declare const codecsJson: import('../../..').Codecs<{
|
|
3
|
+
bigint: import('../../..').Codec<FundamentalType.TheBigint, string>;
|
|
4
|
+
date: import('../../..').Codec<FundamentalType.TheDate, string>;
|
|
5
|
+
time: import('../../..').Codec<FundamentalType.TheTime, string>;
|
|
6
|
+
}>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { whenHasInformationOtherwise } from "../../../../either/whenHasInformationOtherwise.mjs";
|
|
2
|
+
import { createDate } from "../../../../chrono/createDate.mjs";
|
|
3
|
+
import { createTime } from "../../../../chrono/createTime.mjs";
|
|
4
|
+
import { forward } from "../../../../common/forward.mjs";
|
|
5
|
+
import { innerPipe } from "../../../../common/innerPipe.mjs";
|
|
6
|
+
import { justReturn } from "../../../../common/justReturn.mjs";
|
|
7
|
+
import { to } from "../../../../string/to.mjs";
|
|
8
|
+
import { ErrorSymbol } from "../../resultSymbol.mjs";
|
|
9
|
+
import { createCodec, createCodecs } from "../base.mjs";
|
|
10
|
+
import { TheBigint } from "../../../fundamentalType/defaults/bigint.mjs";
|
|
11
|
+
import { TheDate } from "../../../fundamentalType/defaults/date.mjs";
|
|
12
|
+
import { TheTime } from "../../../fundamentalType/defaults/time.mjs";
|
|
13
|
+
//#region scripts/dataStructure/common/codec/defaults/json.ts
|
|
14
|
+
const codecsJson = createCodecs({
|
|
15
|
+
bigint: createCodec(TheBigint, (data) => typeof data === "string", to, (data) => {
|
|
16
|
+
try {
|
|
17
|
+
return BigInt(data);
|
|
18
|
+
} catch {
|
|
19
|
+
return ErrorSymbol;
|
|
20
|
+
}
|
|
21
|
+
}),
|
|
22
|
+
date: createCodec(TheDate, (data) => typeof data === "string", to, innerPipe((value) => createDate({ value }), whenHasInformationOtherwise("date-created", forward, justReturn(ErrorSymbol)))),
|
|
23
|
+
time: createCodec(TheTime, (data) => typeof data === "string", to, innerPipe((value) => createTime({ value }), whenHasInformationOtherwise("time-created", forward, justReturn(ErrorSymbol))))
|
|
24
|
+
});
|
|
25
|
+
//#endregion
|
|
26
|
+
export { codecsJson };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
const require_whenHasInformationOtherwise = require("../../../../either/whenHasInformationOtherwise.cjs");
|
|
2
|
+
const require_createDate = require("../../../../chrono/createDate.cjs");
|
|
3
|
+
const require_createTime = require("../../../../chrono/createTime.cjs");
|
|
4
|
+
const require_forward = require("../../../../common/forward.cjs");
|
|
5
|
+
const require_innerPipe = require("../../../../common/innerPipe.cjs");
|
|
6
|
+
const require_justReturn = require("../../../../common/justReturn.cjs");
|
|
7
|
+
const require_isNumber = require("../../../../string/isNumber.cjs");
|
|
8
|
+
const require_to = require("../../../../string/to.cjs");
|
|
9
|
+
const require_resultSymbol = require("../../resultSymbol.cjs");
|
|
10
|
+
const require_base = require("../base.cjs");
|
|
11
|
+
const require_bigint = require("../../../fundamentalType/defaults/bigint.cjs");
|
|
12
|
+
const require_boolean = require("../../../fundamentalType/defaults/boolean.cjs");
|
|
13
|
+
const require_date = require("../../../fundamentalType/defaults/date.cjs");
|
|
14
|
+
const require_null = require("../../../fundamentalType/defaults/null.cjs");
|
|
15
|
+
const require_number = require("../../../fundamentalType/defaults/number.cjs");
|
|
16
|
+
const require_time = require("../../../fundamentalType/defaults/time.cjs");
|
|
17
|
+
const require_undefined = require("../../../fundamentalType/defaults/undefined.cjs");
|
|
18
|
+
//#region scripts/dataStructure/common/codec/defaults/string.ts
|
|
19
|
+
const codecsString = require_base.createCodecs({
|
|
20
|
+
bigint: require_base.createCodec(require_bigint.TheBigint, (data) => typeof data === "string", require_to.to, (data) => {
|
|
21
|
+
try {
|
|
22
|
+
return BigInt(data);
|
|
23
|
+
} catch {
|
|
24
|
+
return require_resultSymbol.ErrorSymbol;
|
|
25
|
+
}
|
|
26
|
+
}),
|
|
27
|
+
boolean: require_base.createCodec(require_boolean.TheBoolean, (data) => data === "true" || data === "false", require_to.to, (data) => {
|
|
28
|
+
if (data === "true") return true;
|
|
29
|
+
return false;
|
|
30
|
+
}),
|
|
31
|
+
date: require_base.createCodec(require_date.TheDate, (data) => typeof data === "string", require_to.to, require_innerPipe.innerPipe((value) => require_createDate.createDate({ value }), require_whenHasInformationOtherwise.whenHasInformationOtherwise("date-created", require_forward.forward, require_justReturn.justReturn(require_resultSymbol.ErrorSymbol)))),
|
|
32
|
+
null: require_base.createCodec(require_null.TheNull, (data) => data === "null", require_to.to, require_justReturn.justReturn(null)),
|
|
33
|
+
number: require_base.createCodec(require_number.TheNumber, (data) => typeof data === "string" && require_isNumber.isNumber(data), require_to.to, (data) => {
|
|
34
|
+
try {
|
|
35
|
+
return Number(data);
|
|
36
|
+
} catch {
|
|
37
|
+
return require_resultSymbol.ErrorSymbol;
|
|
38
|
+
}
|
|
39
|
+
}),
|
|
40
|
+
time: require_base.createCodec(require_time.TheTime, (data) => typeof data === "string", require_to.to, require_innerPipe.innerPipe((value) => require_createTime.createTime({ value }), require_whenHasInformationOtherwise.whenHasInformationOtherwise("time-created", require_forward.forward, require_justReturn.justReturn(require_resultSymbol.ErrorSymbol)))),
|
|
41
|
+
undefined: require_base.createCodec(require_undefined.TheUndefined, (data) => data === "undefined", require_to.to, require_justReturn.justReturn(void 0))
|
|
42
|
+
});
|
|
43
|
+
//#endregion
|
|
44
|
+
exports.codecsString = codecsString;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as DString from '../../../../string';
|
|
2
|
+
import * as FundamentalType from "../../../fundamentalType";
|
|
3
|
+
export declare const codecsString: import('../../..').Codecs<{
|
|
4
|
+
bigint: import('../../..').Codec<FundamentalType.TheBigint, string>;
|
|
5
|
+
boolean: import('../../..').Codec<FundamentalType.TheBoolean, "true" | "false">;
|
|
6
|
+
date: import('../../..').Codec<FundamentalType.TheDate, string>;
|
|
7
|
+
null: import('../../..').Codec<FundamentalType.TheNull, "null">;
|
|
8
|
+
number: import('../../..').Codec<FundamentalType.TheNumber, string & DString.Number>;
|
|
9
|
+
time: import('../../..').Codec<FundamentalType.TheTime, string>;
|
|
10
|
+
undefined: import('../../..').Codec<FundamentalType.TheUndefined, "undefined">;
|
|
11
|
+
}>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { whenHasInformationOtherwise } from "../../../../either/whenHasInformationOtherwise.mjs";
|
|
2
|
+
import { createDate } from "../../../../chrono/createDate.mjs";
|
|
3
|
+
import { createTime } from "../../../../chrono/createTime.mjs";
|
|
4
|
+
import { forward } from "../../../../common/forward.mjs";
|
|
5
|
+
import { innerPipe } from "../../../../common/innerPipe.mjs";
|
|
6
|
+
import { justReturn } from "../../../../common/justReturn.mjs";
|
|
7
|
+
import { isNumber } from "../../../../string/isNumber.mjs";
|
|
8
|
+
import { to } from "../../../../string/to.mjs";
|
|
9
|
+
import { ErrorSymbol } from "../../resultSymbol.mjs";
|
|
10
|
+
import { createCodec, createCodecs } from "../base.mjs";
|
|
11
|
+
import { TheBigint } from "../../../fundamentalType/defaults/bigint.mjs";
|
|
12
|
+
import { TheBoolean } from "../../../fundamentalType/defaults/boolean.mjs";
|
|
13
|
+
import { TheDate } from "../../../fundamentalType/defaults/date.mjs";
|
|
14
|
+
import { TheNull } from "../../../fundamentalType/defaults/null.mjs";
|
|
15
|
+
import { TheNumber } from "../../../fundamentalType/defaults/number.mjs";
|
|
16
|
+
import { TheTime } from "../../../fundamentalType/defaults/time.mjs";
|
|
17
|
+
import { TheUndefined } from "../../../fundamentalType/defaults/undefined.mjs";
|
|
18
|
+
//#region scripts/dataStructure/common/codec/defaults/string.ts
|
|
19
|
+
const codecsString = createCodecs({
|
|
20
|
+
bigint: createCodec(TheBigint, (data) => typeof data === "string", to, (data) => {
|
|
21
|
+
try {
|
|
22
|
+
return BigInt(data);
|
|
23
|
+
} catch {
|
|
24
|
+
return ErrorSymbol;
|
|
25
|
+
}
|
|
26
|
+
}),
|
|
27
|
+
boolean: createCodec(TheBoolean, (data) => data === "true" || data === "false", to, (data) => {
|
|
28
|
+
if (data === "true") return true;
|
|
29
|
+
return false;
|
|
30
|
+
}),
|
|
31
|
+
date: createCodec(TheDate, (data) => typeof data === "string", to, innerPipe((value) => createDate({ value }), whenHasInformationOtherwise("date-created", forward, justReturn(ErrorSymbol)))),
|
|
32
|
+
null: createCodec(TheNull, (data) => data === "null", to, justReturn(null)),
|
|
33
|
+
number: createCodec(TheNumber, (data) => typeof data === "string" && isNumber(data), to, (data) => {
|
|
34
|
+
try {
|
|
35
|
+
return Number(data);
|
|
36
|
+
} catch {
|
|
37
|
+
return ErrorSymbol;
|
|
38
|
+
}
|
|
39
|
+
}),
|
|
40
|
+
time: createCodec(TheTime, (data) => typeof data === "string", to, innerPipe((value) => createTime({ value }), whenHasInformationOtherwise("time-created", forward, justReturn(ErrorSymbol)))),
|
|
41
|
+
undefined: createCodec(TheUndefined, (data) => data === "undefined", to, justReturn(void 0))
|
|
42
|
+
});
|
|
43
|
+
//#endregion
|
|
44
|
+
export { codecsString };
|
|
@@ -34,8 +34,9 @@ function createErrorHandler(defaultPath) {
|
|
|
34
34
|
[issueKind.runTimeKey]: null
|
|
35
35
|
});
|
|
36
36
|
},
|
|
37
|
-
addEncodeIssue: (source, data, message) => {
|
|
37
|
+
addEncodeIssue: (source, from, data, message) => {
|
|
38
38
|
issues.push({
|
|
39
|
+
from,
|
|
39
40
|
data,
|
|
40
41
|
path: currentPath.join("."),
|
|
41
42
|
message,
|
|
@@ -43,8 +44,9 @@ function createErrorHandler(defaultPath) {
|
|
|
43
44
|
[encodeIssueKind.runTimeKey]: null
|
|
44
45
|
});
|
|
45
46
|
},
|
|
46
|
-
addDecodeIssue: (source, data, message) => {
|
|
47
|
+
addDecodeIssue: (source, from, data, message) => {
|
|
47
48
|
issues.push({
|
|
49
|
+
from,
|
|
48
50
|
data,
|
|
49
51
|
path: currentPath.join("."),
|
|
50
52
|
message,
|
|
@@ -13,6 +13,7 @@ export interface Issue extends DKind.Kind<typeof issueKind> {
|
|
|
13
13
|
}
|
|
14
14
|
export declare const encodeIssueKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/encode-issue", unknown>>;
|
|
15
15
|
export interface EncodeIssue extends DKind.Kind<typeof encodeIssueKind> {
|
|
16
|
+
readonly from: "encoding" | "predicate" | "external";
|
|
16
17
|
readonly path: string;
|
|
17
18
|
readonly data: unknown;
|
|
18
19
|
readonly message?: string;
|
|
@@ -20,6 +21,7 @@ export interface EncodeIssue extends DKind.Kind<typeof encodeIssueKind> {
|
|
|
20
21
|
}
|
|
21
22
|
export declare const decodeIssueKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/decode-issue", unknown>>;
|
|
22
23
|
export interface DecodeIssue extends DKind.Kind<typeof decodeIssueKind> {
|
|
24
|
+
readonly from: "decoding" | "predicate" | "external";
|
|
23
25
|
readonly path: string;
|
|
24
26
|
readonly data: unknown;
|
|
25
27
|
readonly message?: string;
|
|
@@ -37,8 +39,8 @@ export interface ErrorHandler {
|
|
|
37
39
|
readonly issues: readonly Issues[];
|
|
38
40
|
readonly currentPath: string[];
|
|
39
41
|
addIssue(source: ReturnType<Issue["getSource"]>, data: unknown, subSource?: ReturnType<Extract<Issue["getSubSource"], DCommon.AnyFunction>>): void;
|
|
40
|
-
addEncodeIssue(source: ReturnType<EncodeIssue["getSource"]>, data: unknown, message?: string): void;
|
|
41
|
-
addDecodeIssue(source: ReturnType<DecodeIssue["getSource"]>, data: unknown, message?: string): void;
|
|
42
|
+
addEncodeIssue(source: ReturnType<EncodeIssue["getSource"]>, from: EncodeIssue["from"], data: unknown, message?: string): void;
|
|
43
|
+
addDecodeIssue(source: ReturnType<DecodeIssue["getSource"]>, from: DecodeIssue["from"], data: unknown, message?: string): void;
|
|
42
44
|
importIssues(errorHandler: (GetErrorHandler | ErrorHandler)[]): void;
|
|
43
45
|
createPathStage(): PathStageErrorHandler;
|
|
44
46
|
createError(): Error;
|
|
@@ -34,8 +34,9 @@ function createErrorHandler(defaultPath) {
|
|
|
34
34
|
[issueKind.runTimeKey]: null
|
|
35
35
|
});
|
|
36
36
|
},
|
|
37
|
-
addEncodeIssue: (source, data, message) => {
|
|
37
|
+
addEncodeIssue: (source, from, data, message) => {
|
|
38
38
|
issues.push({
|
|
39
|
+
from,
|
|
39
40
|
data,
|
|
40
41
|
path: currentPath.join("."),
|
|
41
42
|
message,
|
|
@@ -43,8 +44,9 @@ function createErrorHandler(defaultPath) {
|
|
|
43
44
|
[encodeIssueKind.runTimeKey]: null
|
|
44
45
|
});
|
|
45
46
|
},
|
|
46
|
-
addDecodeIssue: (source, data, message) => {
|
|
47
|
+
addDecodeIssue: (source, from, data, message) => {
|
|
47
48
|
issues.push({
|
|
49
|
+
from,
|
|
48
50
|
data,
|
|
49
51
|
path: currentPath.join("."),
|
|
50
52
|
message,
|
|
@@ -9,8 +9,8 @@ const require_error = require("./error.cjs");
|
|
|
9
9
|
const kindNamespaceName = "DuplojsLangDataStructure";
|
|
10
10
|
function createErrorInterpreter(structureDictionary = {}, codecDictionary = []) {
|
|
11
11
|
const formattedStructureDictionary = require_pipe.pipe(structureDictionary, require_entries.entries, require_map.map(([key, value]) => require_entry.entry(`${require_base.keyKindPrefix}@${kindNamespaceName}/${key}`, value)));
|
|
12
|
-
const getInterpretedMessageStructure = (structure) => require_reduce.reduce(formattedStructureDictionary, require_reduce.reduceFrom(void 0), ({ element: [key, getMessage], next, exit }) => getMessage && key in structure ? exit(getMessage(structure)) : next(void 0));
|
|
13
|
-
const getInterpretedMessageCodec = (codec) => require_reduce.reduce(codecDictionary, require_reduce.reduceFrom(void 0), ({ element: [currentCodec, message], next, exit }) => currentCodec === codec ? exit(message) : next(void 0));
|
|
12
|
+
const getInterpretedMessageStructure = (structure, issue) => require_reduce.reduce(formattedStructureDictionary, require_reduce.reduceFrom(void 0), ({ element: [key, getMessage], next, exit }) => getMessage && key in structure ? exit(getMessage(structure, issue)) : next(void 0));
|
|
13
|
+
const getInterpretedMessageCodec = (codec, issue) => require_reduce.reduce(codecDictionary, require_reduce.reduceFrom(void 0), ({ element: [currentCodec, message], next, exit }) => currentCodec === codec ? exit(message(codec, issue)) : next(void 0));
|
|
14
14
|
return (error) => require_map.map(error.issues, (issue) => {
|
|
15
15
|
if (require_error.issueKind.has(issue)) {
|
|
16
16
|
const source = issue.getSource();
|
|
@@ -20,8 +20,8 @@ function createErrorInterpreter(structureDictionary = {}, codecDictionary = [])
|
|
|
20
20
|
interpretedMessage: {
|
|
21
21
|
source: source.definition.message,
|
|
22
22
|
subSource: subSource?.definition.message,
|
|
23
|
-
interpretedSource: getInterpretedMessageStructure(source),
|
|
24
|
-
interpretedSubSource: subSource && getInterpretedMessageStructure(subSource)
|
|
23
|
+
interpretedSource: getInterpretedMessageStructure(source, issue),
|
|
24
|
+
interpretedSubSource: subSource && getInterpretedMessageStructure(subSource, issue)
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
27
|
}
|
|
@@ -29,14 +29,14 @@ function createErrorInterpreter(structureDictionary = {}, codecDictionary = [])
|
|
|
29
29
|
...issue,
|
|
30
30
|
interpretedMessage: {
|
|
31
31
|
source: issue.message,
|
|
32
|
-
interpretedSource: getInterpretedMessageCodec(issue.getSource())
|
|
32
|
+
interpretedSource: getInterpretedMessageCodec(issue.getSource(), issue)
|
|
33
33
|
}
|
|
34
34
|
};
|
|
35
35
|
return {
|
|
36
36
|
...issue,
|
|
37
37
|
interpretedMessage: {
|
|
38
38
|
source: issue.message,
|
|
39
|
-
interpretedSource: getInterpretedMessageCodec(issue.getSource())
|
|
39
|
+
interpretedSource: getInterpretedMessageCodec(issue.getSource(), issue)
|
|
40
40
|
}
|
|
41
41
|
};
|
|
42
42
|
});
|
|
@@ -24,9 +24,13 @@ export interface InterpretedDecodedIssue extends DecodeIssue {
|
|
|
24
24
|
interpretedMessage: InterpretedMessage;
|
|
25
25
|
}
|
|
26
26
|
export type InterpretedIssues = (InterpretedIssue | InterpretedEncodedIssue | InterpretedDecodedIssue);
|
|
27
|
-
type
|
|
28
|
-
[DataStructure in (Types | Structures | Constraints) as RemoveNamespace<DKind.GetName<DataStructure>>]?: (structure: DataStructure) => string;
|
|
27
|
+
type StructureDictionaryParams = DCommon.SimplifyTopLevel<Omit<{
|
|
28
|
+
[DataStructure in (Types | Structures | Constraints) as RemoveNamespace<DKind.GetName<DataStructure>>]?: (structure: DataStructure, issue: Issue) => string;
|
|
29
29
|
}, RemoveNamespace<DKind.GetName<Type>> | RemoveNamespace<DKind.GetName<Structure>> | RemoveNamespace<DKind.GetName<Constraint>>>>;
|
|
30
|
-
|
|
30
|
+
type CodecDictionaryParams = [
|
|
31
|
+
Codec,
|
|
32
|
+
(codec: Codec, issue: EncodeIssue | DecodeIssue) => string
|
|
33
|
+
][];
|
|
34
|
+
export declare function createErrorInterpreter(structureDictionary?: StructureDictionaryParams, codecDictionary?: CodecDictionaryParams): (error: Error) => readonly InterpretedIssues[];
|
|
31
35
|
export type ErrorInterpreter = ReturnType<typeof createErrorInterpreter>;
|
|
32
36
|
export {};
|
|
@@ -9,8 +9,8 @@ import { encodeIssueKind, issueKind } from "./error.mjs";
|
|
|
9
9
|
const kindNamespaceName = "DuplojsLangDataStructure";
|
|
10
10
|
function createErrorInterpreter(structureDictionary = {}, codecDictionary = []) {
|
|
11
11
|
const formattedStructureDictionary = pipe(structureDictionary, entries, map(([key, value]) => entry(`${keyKindPrefix}@${kindNamespaceName}/${key}`, value)));
|
|
12
|
-
const getInterpretedMessageStructure = (structure) => reduce(formattedStructureDictionary, reduceFrom(void 0), ({ element: [key, getMessage], next, exit }) => getMessage && key in structure ? exit(getMessage(structure)) : next(void 0));
|
|
13
|
-
const getInterpretedMessageCodec = (codec) => reduce(codecDictionary, reduceFrom(void 0), ({ element: [currentCodec, message], next, exit }) => currentCodec === codec ? exit(message) : next(void 0));
|
|
12
|
+
const getInterpretedMessageStructure = (structure, issue) => reduce(formattedStructureDictionary, reduceFrom(void 0), ({ element: [key, getMessage], next, exit }) => getMessage && key in structure ? exit(getMessage(structure, issue)) : next(void 0));
|
|
13
|
+
const getInterpretedMessageCodec = (codec, issue) => reduce(codecDictionary, reduceFrom(void 0), ({ element: [currentCodec, message], next, exit }) => currentCodec === codec ? exit(message(codec, issue)) : next(void 0));
|
|
14
14
|
return (error) => map(error.issues, (issue) => {
|
|
15
15
|
if (issueKind.has(issue)) {
|
|
16
16
|
const source = issue.getSource();
|
|
@@ -20,8 +20,8 @@ function createErrorInterpreter(structureDictionary = {}, codecDictionary = [])
|
|
|
20
20
|
interpretedMessage: {
|
|
21
21
|
source: source.definition.message,
|
|
22
22
|
subSource: subSource?.definition.message,
|
|
23
|
-
interpretedSource: getInterpretedMessageStructure(source),
|
|
24
|
-
interpretedSubSource: subSource && getInterpretedMessageStructure(subSource)
|
|
23
|
+
interpretedSource: getInterpretedMessageStructure(source, issue),
|
|
24
|
+
interpretedSubSource: subSource && getInterpretedMessageStructure(subSource, issue)
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
27
|
}
|
|
@@ -29,14 +29,14 @@ function createErrorInterpreter(structureDictionary = {}, codecDictionary = [])
|
|
|
29
29
|
...issue,
|
|
30
30
|
interpretedMessage: {
|
|
31
31
|
source: issue.message,
|
|
32
|
-
interpretedSource: getInterpretedMessageCodec(issue.getSource())
|
|
32
|
+
interpretedSource: getInterpretedMessageCodec(issue.getSource(), issue)
|
|
33
33
|
}
|
|
34
34
|
};
|
|
35
35
|
return {
|
|
36
36
|
...issue,
|
|
37
37
|
interpretedMessage: {
|
|
38
38
|
source: issue.message,
|
|
39
|
-
interpretedSource: getInterpretedMessageCodec(issue.getSource())
|
|
39
|
+
interpretedSource: getInterpretedMessageCodec(issue.getSource(), issue)
|
|
40
40
|
}
|
|
41
41
|
};
|
|
42
42
|
});
|
|
@@ -3,11 +3,9 @@ import type * as DCommon from '../../../common';
|
|
|
3
3
|
import type * as DKind from '../../../kind';
|
|
4
4
|
import * as DString from '../../../string';
|
|
5
5
|
export declare const allowedCharactersConstraintKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/allowed-characters-constraint", unknown>>;
|
|
6
|
-
type AllowedCharactersConstraintValue<GenericCharactersRange extends DString.CharactersRange> = string & DCommon.UnionToIntersection<GenericCharactersRange extends any ? DString.AllowedCharacters<GenericCharactersRange> : never>;
|
|
7
6
|
export interface AllowedCharactersConstraintDefinition<GenericCharactersRange extends DString.CharactersRange = DString.CharactersRange> extends ConstraintDefinition {
|
|
8
7
|
readonly charactersRange: DCommon.MaybeArray<GenericCharactersRange>;
|
|
9
8
|
}
|
|
10
|
-
export interface AllowedCharactersConstraint<GenericCharactersRange extends DString.CharactersRange = DString.CharactersRange> extends DCommon.Forward<Constraint<string,
|
|
9
|
+
export interface AllowedCharactersConstraint<GenericCharactersRange extends DString.CharactersRange = DString.CharactersRange> extends DCommon.Forward<Constraint<string, string & DString.AllowedCharacters<GenericCharactersRange>, AllowedCharactersConstraintDefinition<GenericCharactersRange>> & DKind.Kind<typeof allowedCharactersConstraintKind>> {
|
|
11
10
|
}
|
|
12
11
|
export declare const AllowedCharactersConstraint: <GenericCharactersRange extends DString.CharactersRange>(charactersRange: DCommon.MaybeArray<GenericCharactersRange>) => AllowedCharactersConstraint<GenericCharactersRange>;
|
|
13
|
-
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const require_isNumber = require("../../../string/isNumber.cjs");
|
|
2
|
+
const require_kind = require("../../kind.cjs");
|
|
3
|
+
const require_resultSymbol = require("../../common/resultSymbol.cjs");
|
|
4
|
+
const require_base = require("../base.cjs");
|
|
5
|
+
//#region scripts/dataStructure/constraint/defaults/numberInString.ts
|
|
6
|
+
const numberInStringConstraintKind = require_kind.createKind("number-in-string-constraint");
|
|
7
|
+
const NumberInStringConstraint = require_base.createConstraint(numberInStringConstraintKind, ({ init }) => () => init({}, {
|
|
8
|
+
executeCheck: (_self, data) => require_isNumber.isNumber(data) ? require_resultSymbol.SuccessSymbol : require_resultSymbol.ErrorSymbol,
|
|
9
|
+
isAsynchronous: () => false
|
|
10
|
+
}));
|
|
11
|
+
//#endregion
|
|
12
|
+
exports.NumberInStringConstraint = NumberInStringConstraint;
|
|
13
|
+
exports.numberInStringConstraintKind = numberInStringConstraintKind;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ConstraintDefinition, Constraint } from '../base';
|
|
2
|
+
import type * as DCommon from '../../../common';
|
|
3
|
+
import type * as DKind from '../../../kind';
|
|
4
|
+
import * as DString from '../../../string';
|
|
5
|
+
export declare const numberInStringConstraintKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/number-in-string-constraint", unknown>>;
|
|
6
|
+
export interface NumberInStringConstraintDefinition extends ConstraintDefinition {
|
|
7
|
+
}
|
|
8
|
+
export interface NumberInStringConstraint extends DCommon.Forward<Constraint<string, string & DString.Number, NumberInStringConstraintDefinition> & DKind.Kind<typeof numberInStringConstraintKind>> {
|
|
9
|
+
}
|
|
10
|
+
export declare const NumberInStringConstraint: () => NumberInStringConstraint;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { isNumber } from "../../../string/isNumber.mjs";
|
|
2
|
+
import { createKind } from "../../kind.mjs";
|
|
3
|
+
import { ErrorSymbol, SuccessSymbol } from "../../common/resultSymbol.mjs";
|
|
4
|
+
import { createConstraint } from "../base.mjs";
|
|
5
|
+
//#region scripts/dataStructure/constraint/defaults/numberInString.ts
|
|
6
|
+
const numberInStringConstraintKind = createKind("number-in-string-constraint");
|
|
7
|
+
const NumberInStringConstraint = createConstraint(numberInStringConstraintKind, ({ init }) => () => init({}, {
|
|
8
|
+
executeCheck: (_self, data) => isNumber(data) ? SuccessSymbol : ErrorSymbol,
|
|
9
|
+
isAsynchronous: () => false
|
|
10
|
+
}));
|
|
11
|
+
//#endregion
|
|
12
|
+
export { NumberInStringConstraint, numberInStringConstraintKind };
|
|
@@ -10,6 +10,7 @@ export interface ConstraintsStore {
|
|
|
10
10
|
regex: DDefaults.RegexConstraint;
|
|
11
11
|
minCharacters: DDefaults.MinCharactersConstraint;
|
|
12
12
|
maxCharacters: DDefaults.MaxCharactersConstraint;
|
|
13
|
+
numberInString: DDefaults.NumberInStringConstraint;
|
|
13
14
|
stringLengthEqual: DDefaults.StringLengthEqualConstraint;
|
|
14
15
|
minElements: DDefaults.MinElementsConstraint;
|
|
15
16
|
maxElements: DDefaults.MaxElementsConstraint;
|
|
@@ -14,6 +14,8 @@ export * from './greaterThan';
|
|
|
14
14
|
export * from './greaterThanOrEqual';
|
|
15
15
|
export * from './integer';
|
|
16
16
|
export * from './isNullStructure';
|
|
17
|
+
export * from './isNullable';
|
|
18
|
+
export * from './isOptional';
|
|
17
19
|
export * from './isUndefinedStructure';
|
|
18
20
|
export * from './lazy';
|
|
19
21
|
export * from './lessThan';
|
|
@@ -30,6 +32,7 @@ export * from './notZero';
|
|
|
30
32
|
export * from './null';
|
|
31
33
|
export * from './nullable';
|
|
32
34
|
export * from './number';
|
|
35
|
+
export * from './numberInString';
|
|
33
36
|
export * from './object';
|
|
34
37
|
export * from './odd';
|
|
35
38
|
export * from './optional';
|
|
@@ -38,17 +41,18 @@ export * from './path';
|
|
|
38
41
|
export * from './positive';
|
|
39
42
|
export * from './record';
|
|
40
43
|
export * from './refine';
|
|
44
|
+
export * from './regex';
|
|
41
45
|
export * from './required';
|
|
42
46
|
export * from './safe';
|
|
43
47
|
export * from './segmentPath';
|
|
44
|
-
export * from './string';
|
|
45
48
|
export * from './strictNegative';
|
|
46
49
|
export * from './strictPositive';
|
|
50
|
+
export * from './string';
|
|
47
51
|
export * from './stringLengthEqual';
|
|
48
52
|
export * from './time';
|
|
49
53
|
export * from './trimmed';
|
|
50
54
|
export * from './undefined';
|
|
51
55
|
export * from './union';
|
|
56
|
+
export * from './unwrapLazy';
|
|
52
57
|
export * from './url';
|
|
53
58
|
export * from './uuid';
|
|
54
|
-
export * from './regex';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
const require_identifier = require("../structure/identifier.cjs");
|
|
2
|
+
const require_lazy = require("../structure/defaults/lazy.cjs");
|
|
3
|
+
const require_union = require("../structure/defaults/union.cjs");
|
|
4
|
+
const require_isNullStructure = require("./isNullStructure.cjs");
|
|
5
|
+
//#region scripts/dataStructure/helpers/isNullable.ts
|
|
6
|
+
function isNullable(structure) {
|
|
7
|
+
if (require_identifier.structureIdentifier(structure, require_lazy.lazyStructureKind)) return isNullable(structure.definition.getter.value);
|
|
8
|
+
if (!require_identifier.structureIdentifier(structure, require_union.unionStructureKind)) return require_isNullStructure.isNullStructure(structure);
|
|
9
|
+
return structure.definition.values.value.some(require_isNullStructure.isNullStructure);
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
exports.isNullable = isNullable;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { structureIdentifier } from "../structure/identifier.mjs";
|
|
2
|
+
import { lazyStructureKind } from "../structure/defaults/lazy.mjs";
|
|
3
|
+
import { unionStructureKind } from "../structure/defaults/union.mjs";
|
|
4
|
+
import { isNullStructure } from "./isNullStructure.mjs";
|
|
5
|
+
//#region scripts/dataStructure/helpers/isNullable.ts
|
|
6
|
+
function isNullable(structure) {
|
|
7
|
+
if (structureIdentifier(structure, lazyStructureKind)) return isNullable(structure.definition.getter.value);
|
|
8
|
+
if (!structureIdentifier(structure, unionStructureKind)) return isNullStructure(structure);
|
|
9
|
+
return structure.definition.values.value.some(isNullStructure);
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { isNullable };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
const require_identifier = require("../structure/identifier.cjs");
|
|
2
|
+
const require_lazy = require("../structure/defaults/lazy.cjs");
|
|
3
|
+
const require_union = require("../structure/defaults/union.cjs");
|
|
4
|
+
const require_isUndefinedStructure = require("./isUndefinedStructure.cjs");
|
|
5
|
+
//#region scripts/dataStructure/helpers/isOptional.ts
|
|
6
|
+
function isOptional(structure) {
|
|
7
|
+
if (require_identifier.structureIdentifier(structure, require_lazy.lazyStructureKind)) return isOptional(structure.definition.getter.value);
|
|
8
|
+
if (!require_identifier.structureIdentifier(structure, require_union.unionStructureKind)) return require_isUndefinedStructure.isUndefinedStructure(structure);
|
|
9
|
+
return structure.definition.values.value.some(require_isUndefinedStructure.isUndefinedStructure);
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
exports.isOptional = isOptional;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { structureIdentifier } from "../structure/identifier.mjs";
|
|
2
|
+
import { lazyStructureKind } from "../structure/defaults/lazy.mjs";
|
|
3
|
+
import { unionStructureKind } from "../structure/defaults/union.mjs";
|
|
4
|
+
import { isUndefinedStructure } from "./isUndefinedStructure.mjs";
|
|
5
|
+
//#region scripts/dataStructure/helpers/isOptional.ts
|
|
6
|
+
function isOptional(structure) {
|
|
7
|
+
if (structureIdentifier(structure, lazyStructureKind)) return isOptional(structure.definition.getter.value);
|
|
8
|
+
if (!structureIdentifier(structure, unionStructureKind)) return isUndefinedStructure(structure);
|
|
9
|
+
return structure.definition.values.value.some(isUndefinedStructure);
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { isOptional };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const require_numberInString = require("../constraint/defaults/numberInString.cjs");
|
|
2
|
+
//#region scripts/dataStructure/helpers/numberInString.ts
|
|
3
|
+
function numberInString() {
|
|
4
|
+
return require_numberInString.NumberInStringConstraint();
|
|
5
|
+
}
|
|
6
|
+
//#endregion
|
|
7
|
+
exports.numberInString = numberInString;
|