@duplojs/utils 1.4.48 → 1.4.50
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/common/path.cjs +10 -3
- package/dist/common/path.d.ts +21 -0
- package/dist/common/path.mjs +10 -3
- package/dist/dataParser/extended/date.d.ts +3 -3
- package/dist/dataParser/extended/time.d.ts +3 -3
- package/dist/dataParser/identifier.d.ts +4 -16
- package/dist/dataParser/parsers/date.cjs +7 -7
- package/dist/dataParser/parsers/date.d.ts +4 -4
- package/dist/dataParser/parsers/date.mjs +7 -7
- package/dist/dataParser/parsers/time/index.cjs +8 -8
- package/dist/dataParser/parsers/time/index.d.ts +4 -4
- package/dist/dataParser/parsers/time/index.mjs +8 -8
- package/dist/either/left/fail.d.ts +2 -2
- package/dist/either/right/ok.d.ts +2 -2
- package/package.json +1 -1
package/dist/common/path.cjs
CHANGED
|
@@ -78,9 +78,7 @@ exports.Path = void 0;
|
|
|
78
78
|
clearedPath = segment;
|
|
79
79
|
continue;
|
|
80
80
|
}
|
|
81
|
-
const formattedSegment = segment
|
|
82
|
-
.replace(Path.segmentTrailingRegex, "")
|
|
83
|
-
.replace(Path.segmentRelativeRegex, "");
|
|
81
|
+
const formattedSegment = fix(segment);
|
|
84
82
|
if (formattedSegment.startsWith("/")) {
|
|
85
83
|
clearedPath = formattedSegment;
|
|
86
84
|
continue;
|
|
@@ -111,4 +109,13 @@ exports.Path = void 0;
|
|
|
111
109
|
return `${dotResult.join("/")}/${result.join("/")}`;
|
|
112
110
|
}
|
|
113
111
|
Path.resolveRelative = resolveRelative;
|
|
112
|
+
/**
|
|
113
|
+
* {@include common/path/fix/index.md}
|
|
114
|
+
*/
|
|
115
|
+
function fix(path) {
|
|
116
|
+
return path
|
|
117
|
+
.replace(Path.segmentTrailingRegex, "")
|
|
118
|
+
.replace(Path.segmentRelativeRegex, "");
|
|
119
|
+
}
|
|
120
|
+
Path.fix = fix;
|
|
114
121
|
})(exports.Path || (exports.Path = {}));
|
package/dist/common/path.d.ts
CHANGED
|
@@ -142,4 +142,25 @@ export declare namespace Path {
|
|
|
142
142
|
*
|
|
143
143
|
*/
|
|
144
144
|
function resolveRelative<GenericSegment extends string>(segments: AnyTuple<GenericSegment>): string;
|
|
145
|
+
/**
|
|
146
|
+
* Cleans a POSIX path by removing a trailing slash and a leading `./` prefix.
|
|
147
|
+
*
|
|
148
|
+
* **Supported call styles:**
|
|
149
|
+
* - Classic: `fix(path)` -> returns a cleaned path
|
|
150
|
+
*
|
|
151
|
+
* The function does not resolve `..` segments and only removes a single trailing slash and a single leading `./`.
|
|
152
|
+
*
|
|
153
|
+
* ```ts
|
|
154
|
+
* const trimmedTrailing = Path.fix("alpha/beta/");
|
|
155
|
+
* // trimmedTrailing: "alpha/beta"
|
|
156
|
+
* const trimmedRelative = Path.fix("./alpha/beta");
|
|
157
|
+
* // trimmedRelative: "alpha/beta"
|
|
158
|
+
* const cleanedBoth = Path.fix("./alpha/");
|
|
159
|
+
* // cleanedBoth: "alpha"
|
|
160
|
+
* ```
|
|
161
|
+
*
|
|
162
|
+
* @see https://utils.duplojs.dev/en/v1/api/common/path/fix
|
|
163
|
+
*
|
|
164
|
+
*/
|
|
165
|
+
function fix(path: string): string;
|
|
145
166
|
}
|
package/dist/common/path.mjs
CHANGED
|
@@ -76,9 +76,7 @@ var Path;
|
|
|
76
76
|
clearedPath = segment;
|
|
77
77
|
continue;
|
|
78
78
|
}
|
|
79
|
-
const formattedSegment = segment
|
|
80
|
-
.replace(Path.segmentTrailingRegex, "")
|
|
81
|
-
.replace(Path.segmentRelativeRegex, "");
|
|
79
|
+
const formattedSegment = fix(segment);
|
|
82
80
|
if (formattedSegment.startsWith("/")) {
|
|
83
81
|
clearedPath = formattedSegment;
|
|
84
82
|
continue;
|
|
@@ -109,6 +107,15 @@ var Path;
|
|
|
109
107
|
return `${dotResult.join("/")}/${result.join("/")}`;
|
|
110
108
|
}
|
|
111
109
|
Path.resolveRelative = resolveRelative;
|
|
110
|
+
/**
|
|
111
|
+
* {@include common/path/fix/index.md}
|
|
112
|
+
*/
|
|
113
|
+
function fix(path) {
|
|
114
|
+
return path
|
|
115
|
+
.replace(Path.segmentTrailingRegex, "")
|
|
116
|
+
.replace(Path.segmentRelativeRegex, "");
|
|
117
|
+
}
|
|
118
|
+
Path.fix = fix;
|
|
112
119
|
})(Path || (Path = {}));
|
|
113
120
|
|
|
114
121
|
export { Path };
|
|
@@ -16,16 +16,16 @@ export interface DataParserDateExtended<GenericDefinition extends dataParsers.Da
|
|
|
16
16
|
refine(theFunction: (input: Output<this>) => boolean, definition?: Partial<Omit<dataParsers.DataParserCheckerDefinitionRefine, "theFunction">>): DataParserDateExtended<AddCheckersToDefinition<GenericDefinition, readonly [dataParsers.CheckerRefineImplementation<Output<this>>]>>;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
* Creates an extended data parser for TheDate values
|
|
19
|
+
* Creates an extended data parser for TheDate values.
|
|
20
20
|
*
|
|
21
21
|
* **Supported call styles:**
|
|
22
22
|
* - Method: `DPE.date(definition?)` -> returns a date parser
|
|
23
23
|
*
|
|
24
|
-
* Validates TheDate values
|
|
24
|
+
* Validates TheDate values and can coerce from string or timestamp when enabled.
|
|
25
25
|
*
|
|
26
26
|
* ```ts
|
|
27
27
|
* const parser = DPE.date();
|
|
28
|
-
* const result = parser.parse(
|
|
28
|
+
* const result = parser.parse("date0+");
|
|
29
29
|
* if (E.isRight(result)) {
|
|
30
30
|
* const value = unwrap(result);
|
|
31
31
|
* // value: TheDate
|
|
@@ -74,16 +74,16 @@ export interface DataParserTimeExtended<GenericDefinition extends dataParsers.Da
|
|
|
74
74
|
max(max: TheTime, definition?: Partial<Omit<dataParsers.DataParserCheckerDefinitionTimeMax, "max">>): DataParserTimeExtended<AddCheckersToDefinition<GenericDefinition, readonly [dataParsers.DataParserCheckerTimeMax]>>;
|
|
75
75
|
}
|
|
76
76
|
/**
|
|
77
|
-
* Creates an extended data parser for TheTime values
|
|
77
|
+
* Creates an extended data parser for TheTime values.
|
|
78
78
|
*
|
|
79
79
|
* **Supported call styles:**
|
|
80
80
|
* - Method: `DPE.time(definition?)` -> returns a time parser
|
|
81
81
|
*
|
|
82
|
-
* Validates TheTime values
|
|
82
|
+
* Validates TheTime values and exposes time-specific methods like min and max.
|
|
83
83
|
*
|
|
84
84
|
* ```ts
|
|
85
85
|
* const parser = DPE.time().min("time0+").max("time100+");
|
|
86
|
-
* const result = parser.parse(
|
|
86
|
+
* const result = parser.parse("time10+");
|
|
87
87
|
* if (E.isRight(result)) {
|
|
88
88
|
* const value = unwrap(result);
|
|
89
89
|
* // value: TheTime
|
|
@@ -42,10 +42,10 @@ export declare const identifier: {
|
|
|
42
42
|
input: boolean;
|
|
43
43
|
output: boolean;
|
|
44
44
|
}>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
|
|
45
|
-
input: `date${number}-` | `date${number}
|
|
45
|
+
input: `date${number}-` | `date${number}+`;
|
|
46
46
|
output: `date${number}-` | `date${number}+`;
|
|
47
47
|
}>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
|
|
48
|
-
input:
|
|
48
|
+
input: `time${number}-` | `time${number}+`;
|
|
49
49
|
output: `time${number}-` | `time${number}+`;
|
|
50
50
|
}>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
|
|
51
51
|
input: null;
|
|
@@ -59,12 +59,6 @@ export declare const identifier: {
|
|
|
59
59
|
}>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
|
|
60
60
|
input: unknown[];
|
|
61
61
|
output: unknown[];
|
|
62
|
-
}>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
|
|
63
|
-
input: `date${number}-` | `date${number}+`;
|
|
64
|
-
output: `date${number}-` | `date${number}+`;
|
|
65
|
-
}>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
|
|
66
|
-
input: `time${number}-` | `time${number}+`;
|
|
67
|
-
output: `time${number}-` | `time${number}+`;
|
|
68
62
|
}>>, GenericInput extends unknown, GenericGroupedKind extends import("../common").UnionToIntersection<GenericKindHandler extends import("../common").KindHandler<import("../common").KindDefinition<string, unknown>> ? import("../common").Kind<GenericKindHandler["definition"], GenericKindHandler["definition"]["value"]> : never>>(kind: GenericKindHandler | GenericKindHandler[]): (input: GenericInput) => input is (import("../common").IsEqual<import("../common").IsEqual<false | (GenericInput extends any ? import("../common").IsEqual<GenericInput, DataParser<import("./base").DataParserDefinition<import("./base").DataParserChecker<import("./base").DataParserCheckerDefinition, unknown>>, unknown, unknown>> : never), boolean>, true> extends true ? Extract<DataParser<import("./base").DataParserDefinition<import("./base").DataParserChecker<import("./base").DataParserCheckerDefinition, unknown>>, unknown, unknown>, GenericGroupedKind> | Extract<import("./parsers").DataParserString<import("./parsers").DataParserDefinitionString>, GenericGroupedKind> | Extract<import("./parsers").DataParserObject<import("./parsers").DataParserDefinitionObject>, GenericGroupedKind> | Extract<import("./parsers").DataParserNumber<import("./parsers").DataParserDefinitionNumber>, GenericGroupedKind> | Extract<import("./parsers").DataParserLiteral<import("./parsers").DataParserDefinitionLiteral>, GenericGroupedKind> | Extract<import("./parsers").DataParserUnion<import("./parsers").DataParserDefinitionUnion>, GenericGroupedKind> | Extract<import("./parsers").DataParserArray<import("./parsers").DataParserDefinitionArray>, GenericGroupedKind> | Extract<import("./parsers").DataParserBigInt<import("./parsers").DataParserDefinitionBigInt>, GenericGroupedKind> | Extract<import("./parsers").DataParserTuple<import("./parsers").DataParserDefinitionTuple>, GenericGroupedKind> | Extract<import("./parsers").DataParserTransform<import("./parsers").DataParserDefinitionTransform>, GenericGroupedKind> | Extract<import("./parsers").DataParserBoolean<import("./parsers").DataParserDefinitionBoolean>, GenericGroupedKind> | Extract<import("./parsers").DataParserDate<import("./parsers").DataParserDefinitionDate>, GenericGroupedKind> | Extract<import("./parsers").DataParserTime<import("./parsers").DataParserDefinitionTime>, GenericGroupedKind> | Extract<import("./parsers").DataParserNil<import("./parsers").DataParserDefinitionNil>, GenericGroupedKind> | Extract<import("./parsers").DataParserEmpty<import("./parsers").DataParserDefinitionEmpty>, GenericGroupedKind> | Extract<import("./parsers").DataParserTemplateLiteral<import("./parsers").DataParserDefinitionTemplateLiteral>, GenericGroupedKind> | Extract<import("./parsers").DataParserPipe<import("./parsers").DataParserDefinitionPipe>, GenericGroupedKind> | Extract<import("./parsers").DataParserNullable<import("./parsers").DataParserDefinitionNullable<unknown>>, GenericGroupedKind> | Extract<import("./parsers").DataParserOptional<import("./parsers").DataParserDefinitionOptional<unknown>>, GenericGroupedKind> | Extract<import("./parsers").DataParserLazy<import("./parsers").DataParserDefinitionLazy>, GenericGroupedKind> | Extract<import("./parsers").DataParserUnknown<import("./parsers").DataParserDefinitionUnknown>, GenericGroupedKind> | Extract<import("./parsers").DataParserRecord<import("./parsers").DataParserDefinitionRecord>, GenericGroupedKind> | Extract<import("./parsers").DataParserRecover<import("./parsers").DataParserDefinitionRecover>, GenericGroupedKind> | Extract<import("./baseExtended").DataParserExtended<import("./base").DataParserDefinition<import("./base").DataParserChecker<import("./base").DataParserCheckerDefinition, unknown>>, unknown, unknown>, GenericGroupedKind> | Extract<import("./extended").DataParserStringExtended<import("./parsers").DataParserDefinitionString>, GenericGroupedKind> | Extract<import("./extended").DataParserObjectExtended<import("./parsers").DataParserDefinitionObject>, GenericGroupedKind> | Extract<import("./extended").DataParserNumberExtended<import("./parsers").DataParserDefinitionNumber>, GenericGroupedKind> | Extract<import("./extended").DataParserLiteralExtended<import("./parsers").DataParserDefinitionLiteral>, GenericGroupedKind> | Extract<import("./extended").DataParserUnionExtended<import("./parsers").DataParserDefinitionUnion>, GenericGroupedKind> | Extract<import("./extended").DataParserArrayExtended<import("./parsers").DataParserDefinitionArray>, GenericGroupedKind> | Extract<import("./extended").DataParserBigIntExtended<import("./parsers").DataParserDefinitionBigInt>, GenericGroupedKind> | Extract<import("./extended").DataParserTupleExtended<import("./parsers").DataParserDefinitionTuple>, GenericGroupedKind> | Extract<import("./extended").DataParserTransformExtended<import("./parsers").DataParserDefinitionTransform>, GenericGroupedKind> | Extract<import("./extended").DataParserBooleanExtended<import("./parsers").DataParserDefinitionBoolean>, GenericGroupedKind> | Extract<import("./extended").DataParserDateExtended<import("./parsers").DataParserDefinitionDate>, GenericGroupedKind> | Extract<import("./extended").DataParserTimeExtended<import("./parsers").DataParserDefinitionTime>, GenericGroupedKind> | Extract<import("./extended").DataParserNilExtended<import("./parsers").DataParserDefinitionNil>, GenericGroupedKind> | Extract<import("./extended").DataParserEmptyExtended<import("./parsers").DataParserDefinitionEmpty>, GenericGroupedKind> | Extract<import("./extended").DataParserTemplateLiteralExtended<import("./parsers").DataParserDefinitionTemplateLiteral>, GenericGroupedKind> | Extract<import("./extended").DataParserPipeExtended<import("./parsers").DataParserDefinitionPipe>, GenericGroupedKind> | Extract<import("./extended").DataParserNullableExtended<import("./parsers").DataParserDefinitionNullable<unknown>>, GenericGroupedKind> | Extract<import("./extended").DataParserOptionalExtended<import("./parsers").DataParserDefinitionOptional<unknown>>, GenericGroupedKind> | Extract<import("./extended").DataParserLazyExtended<import("./parsers").DataParserDefinitionLazy>, GenericGroupedKind> | Extract<import("./extended").DataParserUnknownExtended<import("./parsers").DataParserDefinitionUnknown>, GenericGroupedKind> | Extract<import("./extended").DataParserRecordExtended<import("./parsers").DataParserDefinitionRecord>, GenericGroupedKind> | Extract<import("./extended").DataParserRecoverExtended<import("./parsers").DataParserDefinitionRecover>, GenericGroupedKind> : never) | Extract<GenericInput, GenericGroupedKind>;
|
|
69
63
|
<GenericKindHandler extends import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/bigint", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/extended", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/boolean", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/date", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/time", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/empty", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/nil", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/number", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/string", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/array", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/transform", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/union", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/pipe", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/nullable", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/optional", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/recover", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/lazy", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/literal", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/object", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/record", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/template-literal", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/tuple", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/unknown", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
|
|
70
64
|
input: string;
|
|
@@ -100,10 +94,10 @@ export declare const identifier: {
|
|
|
100
94
|
input: boolean;
|
|
101
95
|
output: boolean;
|
|
102
96
|
}>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
|
|
103
|
-
input: `date${number}-` | `date${number}
|
|
97
|
+
input: `date${number}-` | `date${number}+`;
|
|
104
98
|
output: `date${number}-` | `date${number}+`;
|
|
105
99
|
}>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
|
|
106
|
-
input:
|
|
100
|
+
input: `time${number}-` | `time${number}+`;
|
|
107
101
|
output: `time${number}-` | `time${number}+`;
|
|
108
102
|
}>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
|
|
109
103
|
input: null;
|
|
@@ -117,11 +111,5 @@ export declare const identifier: {
|
|
|
117
111
|
}>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
|
|
118
112
|
input: unknown[];
|
|
119
113
|
output: unknown[];
|
|
120
|
-
}>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
|
|
121
|
-
input: `date${number}-` | `date${number}+`;
|
|
122
|
-
output: `date${number}-` | `date${number}+`;
|
|
123
|
-
}>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
|
|
124
|
-
input: `time${number}-` | `time${number}+`;
|
|
125
|
-
output: `time${number}-` | `time${number}+`;
|
|
126
114
|
}>>, GenericInput extends unknown, GenericGroupedKind extends import("../common").UnionToIntersection<GenericKindHandler extends import("../common").KindHandler<import("../common").KindDefinition<string, unknown>> ? import("../common").Kind<GenericKindHandler["definition"], GenericKindHandler["definition"]["value"]> : never>>(input: GenericInput, kind: GenericKindHandler | GenericKindHandler[]): input is (import("../common").IsEqual<import("../common").IsEqual<false | (GenericInput extends any ? import("../common").IsEqual<GenericInput, DataParser<import("./base").DataParserDefinition<import("./base").DataParserChecker<import("./base").DataParserCheckerDefinition, unknown>>, unknown, unknown>> : never), boolean>, true> extends true ? Extract<DataParser<import("./base").DataParserDefinition<import("./base").DataParserChecker<import("./base").DataParserCheckerDefinition, unknown>>, unknown, unknown>, GenericGroupedKind> | Extract<import("./parsers").DataParserString<import("./parsers").DataParserDefinitionString>, GenericGroupedKind> | Extract<import("./parsers").DataParserObject<import("./parsers").DataParserDefinitionObject>, GenericGroupedKind> | Extract<import("./parsers").DataParserNumber<import("./parsers").DataParserDefinitionNumber>, GenericGroupedKind> | Extract<import("./parsers").DataParserLiteral<import("./parsers").DataParserDefinitionLiteral>, GenericGroupedKind> | Extract<import("./parsers").DataParserUnion<import("./parsers").DataParserDefinitionUnion>, GenericGroupedKind> | Extract<import("./parsers").DataParserArray<import("./parsers").DataParserDefinitionArray>, GenericGroupedKind> | Extract<import("./parsers").DataParserBigInt<import("./parsers").DataParserDefinitionBigInt>, GenericGroupedKind> | Extract<import("./parsers").DataParserTuple<import("./parsers").DataParserDefinitionTuple>, GenericGroupedKind> | Extract<import("./parsers").DataParserTransform<import("./parsers").DataParserDefinitionTransform>, GenericGroupedKind> | Extract<import("./parsers").DataParserBoolean<import("./parsers").DataParserDefinitionBoolean>, GenericGroupedKind> | Extract<import("./parsers").DataParserDate<import("./parsers").DataParserDefinitionDate>, GenericGroupedKind> | Extract<import("./parsers").DataParserTime<import("./parsers").DataParserDefinitionTime>, GenericGroupedKind> | Extract<import("./parsers").DataParserNil<import("./parsers").DataParserDefinitionNil>, GenericGroupedKind> | Extract<import("./parsers").DataParserEmpty<import("./parsers").DataParserDefinitionEmpty>, GenericGroupedKind> | Extract<import("./parsers").DataParserTemplateLiteral<import("./parsers").DataParserDefinitionTemplateLiteral>, GenericGroupedKind> | Extract<import("./parsers").DataParserPipe<import("./parsers").DataParserDefinitionPipe>, GenericGroupedKind> | Extract<import("./parsers").DataParserNullable<import("./parsers").DataParserDefinitionNullable<unknown>>, GenericGroupedKind> | Extract<import("./parsers").DataParserOptional<import("./parsers").DataParserDefinitionOptional<unknown>>, GenericGroupedKind> | Extract<import("./parsers").DataParserLazy<import("./parsers").DataParserDefinitionLazy>, GenericGroupedKind> | Extract<import("./parsers").DataParserUnknown<import("./parsers").DataParserDefinitionUnknown>, GenericGroupedKind> | Extract<import("./parsers").DataParserRecord<import("./parsers").DataParserDefinitionRecord>, GenericGroupedKind> | Extract<import("./parsers").DataParserRecover<import("./parsers").DataParserDefinitionRecover>, GenericGroupedKind> | Extract<import("./baseExtended").DataParserExtended<import("./base").DataParserDefinition<import("./base").DataParserChecker<import("./base").DataParserCheckerDefinition, unknown>>, unknown, unknown>, GenericGroupedKind> | Extract<import("./extended").DataParserStringExtended<import("./parsers").DataParserDefinitionString>, GenericGroupedKind> | Extract<import("./extended").DataParserObjectExtended<import("./parsers").DataParserDefinitionObject>, GenericGroupedKind> | Extract<import("./extended").DataParserNumberExtended<import("./parsers").DataParserDefinitionNumber>, GenericGroupedKind> | Extract<import("./extended").DataParserLiteralExtended<import("./parsers").DataParserDefinitionLiteral>, GenericGroupedKind> | Extract<import("./extended").DataParserUnionExtended<import("./parsers").DataParserDefinitionUnion>, GenericGroupedKind> | Extract<import("./extended").DataParserArrayExtended<import("./parsers").DataParserDefinitionArray>, GenericGroupedKind> | Extract<import("./extended").DataParserBigIntExtended<import("./parsers").DataParserDefinitionBigInt>, GenericGroupedKind> | Extract<import("./extended").DataParserTupleExtended<import("./parsers").DataParserDefinitionTuple>, GenericGroupedKind> | Extract<import("./extended").DataParserTransformExtended<import("./parsers").DataParserDefinitionTransform>, GenericGroupedKind> | Extract<import("./extended").DataParserBooleanExtended<import("./parsers").DataParserDefinitionBoolean>, GenericGroupedKind> | Extract<import("./extended").DataParserDateExtended<import("./parsers").DataParserDefinitionDate>, GenericGroupedKind> | Extract<import("./extended").DataParserTimeExtended<import("./parsers").DataParserDefinitionTime>, GenericGroupedKind> | Extract<import("./extended").DataParserNilExtended<import("./parsers").DataParserDefinitionNil>, GenericGroupedKind> | Extract<import("./extended").DataParserEmptyExtended<import("./parsers").DataParserDefinitionEmpty>, GenericGroupedKind> | Extract<import("./extended").DataParserTemplateLiteralExtended<import("./parsers").DataParserDefinitionTemplateLiteral>, GenericGroupedKind> | Extract<import("./extended").DataParserPipeExtended<import("./parsers").DataParserDefinitionPipe>, GenericGroupedKind> | Extract<import("./extended").DataParserNullableExtended<import("./parsers").DataParserDefinitionNullable<unknown>>, GenericGroupedKind> | Extract<import("./extended").DataParserOptionalExtended<import("./parsers").DataParserDefinitionOptional<unknown>>, GenericGroupedKind> | Extract<import("./extended").DataParserLazyExtended<import("./parsers").DataParserDefinitionLazy>, GenericGroupedKind> | Extract<import("./extended").DataParserUnknownExtended<import("./parsers").DataParserDefinitionUnknown>, GenericGroupedKind> | Extract<import("./extended").DataParserRecordExtended<import("./parsers").DataParserDefinitionRecord>, GenericGroupedKind> | Extract<import("./extended").DataParserRecoverExtended<import("./parsers").DataParserDefinitionRecover>, GenericGroupedKind> : never) | Extract<GenericInput, GenericGroupedKind>;
|
|
127
115
|
};
|
|
@@ -19,6 +19,13 @@ function date(definition) {
|
|
|
19
19
|
coerce: definition?.coerce ?? false,
|
|
20
20
|
}, (data, _error, self) => {
|
|
21
21
|
if (self.definition.coerce) {
|
|
22
|
+
if (data instanceof Date) {
|
|
23
|
+
const timestamp = data.getTime();
|
|
24
|
+
if (!isSafeTimestamp.isSafeTimestamp(timestamp)) {
|
|
25
|
+
return error.SymbolDataParserErrorIssue;
|
|
26
|
+
}
|
|
27
|
+
return createTheDate.createTheDate(timestamp);
|
|
28
|
+
}
|
|
22
29
|
if (typeof data === "number") {
|
|
23
30
|
if (!isSafeTimestamp.isSafeTimestamp(data)) {
|
|
24
31
|
return error.SymbolDataParserErrorIssue;
|
|
@@ -36,13 +43,6 @@ function date(definition) {
|
|
|
36
43
|
if (typeof data === "string" && is.is(data)) {
|
|
37
44
|
return data;
|
|
38
45
|
}
|
|
39
|
-
if (data instanceof Date) {
|
|
40
|
-
const timestamp = data.getTime();
|
|
41
|
-
if (!isSafeTimestamp.isSafeTimestamp(timestamp)) {
|
|
42
|
-
return error.SymbolDataParserErrorIssue;
|
|
43
|
-
}
|
|
44
|
-
return createTheDate.createTheDate(timestamp);
|
|
45
|
-
}
|
|
46
46
|
return error.SymbolDataParserErrorIssue;
|
|
47
47
|
}, date.overrideHandler);
|
|
48
48
|
return self;
|
|
@@ -11,7 +11,7 @@ export interface DataParserDefinitionDate extends DataParserDefinition<DataParse
|
|
|
11
11
|
readonly coerce: boolean;
|
|
12
12
|
}
|
|
13
13
|
export declare const dateKind: import("../../common").KindHandler<import("../../common").KindDefinition<"@DuplojsUtilsDataParser/date", unknown>>;
|
|
14
|
-
type _DataParserDate<GenericDefinition extends DataParserDefinitionDate> = (DataParser<GenericDefinition, TheDate, TheDate
|
|
14
|
+
type _DataParserDate<GenericDefinition extends DataParserDefinitionDate> = (DataParser<GenericDefinition, TheDate, TheDate> & Kind<typeof dateKind.definition>);
|
|
15
15
|
export interface DataParserDate<GenericDefinition extends DataParserDefinitionDate = DataParserDefinitionDate> extends _DataParserDate<GenericDefinition> {
|
|
16
16
|
addChecker<GenericChecker extends readonly [
|
|
17
17
|
DataParserDateCheckers,
|
|
@@ -22,17 +22,17 @@ export interface DataParserDate<GenericDefinition extends DataParserDefinitionDa
|
|
|
22
22
|
], GenericChecker>): DataParserDate<AddCheckersToDefinition<GenericDefinition, GenericChecker>>;
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
|
-
* Creates a data parser for TheDate values
|
|
25
|
+
* Creates a data parser for TheDate values.
|
|
26
26
|
*
|
|
27
27
|
* **Supported call styles:**
|
|
28
28
|
* - Classic: `DP.date(definition?)` -> returns a date parser
|
|
29
29
|
* - Curried: not available
|
|
30
30
|
*
|
|
31
|
-
* Validates that the input is a TheDate
|
|
31
|
+
* Validates that the input is a TheDate, optionally applies coerce, and runs the configured checkers.
|
|
32
32
|
*
|
|
33
33
|
* ```ts
|
|
34
34
|
* const parser = DP.date();
|
|
35
|
-
* const result = parser.parse(
|
|
35
|
+
* const result = parser.parse("date0+");
|
|
36
36
|
* if (E.isRight(result)) {
|
|
37
37
|
* const value = unwrap(result);
|
|
38
38
|
* // value: TheDate
|
|
@@ -17,6 +17,13 @@ function date(definition) {
|
|
|
17
17
|
coerce: definition?.coerce ?? false,
|
|
18
18
|
}, (data, _error, self) => {
|
|
19
19
|
if (self.definition.coerce) {
|
|
20
|
+
if (data instanceof Date) {
|
|
21
|
+
const timestamp = data.getTime();
|
|
22
|
+
if (!isSafeTimestamp(timestamp)) {
|
|
23
|
+
return SymbolDataParserErrorIssue;
|
|
24
|
+
}
|
|
25
|
+
return createTheDate(timestamp);
|
|
26
|
+
}
|
|
20
27
|
if (typeof data === "number") {
|
|
21
28
|
if (!isSafeTimestamp(data)) {
|
|
22
29
|
return SymbolDataParserErrorIssue;
|
|
@@ -34,13 +41,6 @@ function date(definition) {
|
|
|
34
41
|
if (typeof data === "string" && is(data)) {
|
|
35
42
|
return data;
|
|
36
43
|
}
|
|
37
|
-
if (data instanceof Date) {
|
|
38
|
-
const timestamp = data.getTime();
|
|
39
|
-
if (!isSafeTimestamp(timestamp)) {
|
|
40
|
-
return SymbolDataParserErrorIssue;
|
|
41
|
-
}
|
|
42
|
-
return createTheDate(timestamp);
|
|
43
|
-
}
|
|
44
44
|
return SymbolDataParserErrorIssue;
|
|
45
45
|
}, date.overrideHandler);
|
|
46
46
|
return self;
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
var base = require('../../base.cjs');
|
|
4
4
|
var error = require('../../error.cjs');
|
|
5
5
|
var kind = require('../../kind.cjs');
|
|
6
|
+
var isSafeTimeValue = require('../../../date/isSafeTimeValue.cjs');
|
|
7
|
+
var createTheTime = require('../../../date/createTheTime.cjs');
|
|
6
8
|
var constants = require('../../../date/constants.cjs');
|
|
7
9
|
var createTime = require('../../../date/createTime.cjs');
|
|
8
10
|
var is = require('../../../either/left/is.cjs');
|
|
9
11
|
var unwrap = require('../../../common/unwrap.cjs');
|
|
10
12
|
var isTime = require('../../../date/isTime.cjs');
|
|
11
|
-
var isSafeTimeValue = require('../../../date/isSafeTimeValue.cjs');
|
|
12
|
-
var createTheTime = require('../../../date/createTheTime.cjs');
|
|
13
13
|
var override = require('../../../common/override.cjs');
|
|
14
14
|
|
|
15
15
|
const timeKind = kind.createDataParserKind("time");
|
|
@@ -23,6 +23,12 @@ function time(definition) {
|
|
|
23
23
|
coerce: definition?.coerce ?? false,
|
|
24
24
|
}, (data, _error, self) => {
|
|
25
25
|
if (self.definition.coerce) {
|
|
26
|
+
if (typeof data === "number") {
|
|
27
|
+
if (!isSafeTimeValue.isSafeTimeValue(data)) {
|
|
28
|
+
return error.SymbolDataParserErrorIssue;
|
|
29
|
+
}
|
|
30
|
+
return createTheTime.createTheTime(data);
|
|
31
|
+
}
|
|
26
32
|
if (typeof data === "string" && constants.isoTimeRegex.test(data)) {
|
|
27
33
|
const result = createTime.createTime({ value: data });
|
|
28
34
|
if (is.isLeft(result)) {
|
|
@@ -34,12 +40,6 @@ function time(definition) {
|
|
|
34
40
|
if (typeof data === "string" && isTime.isTime(data)) {
|
|
35
41
|
return data;
|
|
36
42
|
}
|
|
37
|
-
if (typeof data === "number") {
|
|
38
|
-
if (!isSafeTimeValue.isSafeTimeValue(data)) {
|
|
39
|
-
return error.SymbolDataParserErrorIssue;
|
|
40
|
-
}
|
|
41
|
-
return createTheTime.createTheTime(data);
|
|
42
|
-
}
|
|
43
43
|
return error.SymbolDataParserErrorIssue;
|
|
44
44
|
}, time.overrideHandler);
|
|
45
45
|
return self;
|
|
@@ -13,7 +13,7 @@ export interface DataParserDefinitionTime extends DataParserDefinition<DataParse
|
|
|
13
13
|
readonly coerce: boolean;
|
|
14
14
|
}
|
|
15
15
|
export declare const timeKind: import("../../../common").KindHandler<import("../../../common").KindDefinition<"@DuplojsUtilsDataParser/time", unknown>>;
|
|
16
|
-
type _DataParserTime<GenericDefinition extends DataParserDefinitionTime> = (DataParser<GenericDefinition, TheTime, TheTime
|
|
16
|
+
type _DataParserTime<GenericDefinition extends DataParserDefinitionTime> = (DataParser<GenericDefinition, TheTime, TheTime> & Kind<typeof timeKind.definition>);
|
|
17
17
|
export interface DataParserTime<GenericDefinition extends DataParserDefinitionTime = DataParserDefinitionTime> extends _DataParserTime<GenericDefinition> {
|
|
18
18
|
addChecker<GenericChecker extends readonly [
|
|
19
19
|
DataParserTimeCheckers,
|
|
@@ -24,17 +24,17 @@ export interface DataParserTime<GenericDefinition extends DataParserDefinitionTi
|
|
|
24
24
|
], GenericChecker>): DataParserTime<AddCheckersToDefinition<GenericDefinition, GenericChecker>>;
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
|
-
* Creates a data parser for TheTime values
|
|
27
|
+
* Creates a data parser for TheTime values.
|
|
28
28
|
*
|
|
29
29
|
* **Supported call styles:**
|
|
30
30
|
* - Classic: `DP.time(definition?)` -> returns a time parser
|
|
31
31
|
* - Curried: not available
|
|
32
32
|
*
|
|
33
|
-
* Validates that the input is a TheTime
|
|
33
|
+
* Validates that the input is a TheTime, optionally applies coerce, and runs the configured checkers.
|
|
34
34
|
*
|
|
35
35
|
* ```ts
|
|
36
36
|
* const parser = DP.time();
|
|
37
|
-
* const result = parser.parse(
|
|
37
|
+
* const result = parser.parse("time0+");
|
|
38
38
|
* if (E.isRight(result)) {
|
|
39
39
|
* const value = unwrap(result);
|
|
40
40
|
* // value: TheTime
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { dataParserInit } from '../../base.mjs';
|
|
2
2
|
import { SymbolDataParserErrorIssue } from '../../error.mjs';
|
|
3
3
|
import { createDataParserKind } from '../../kind.mjs';
|
|
4
|
+
import { isSafeTimeValue } from '../../../date/isSafeTimeValue.mjs';
|
|
5
|
+
import { createTheTime } from '../../../date/createTheTime.mjs';
|
|
4
6
|
import { isoTimeRegex } from '../../../date/constants.mjs';
|
|
5
7
|
import { createTime } from '../../../date/createTime.mjs';
|
|
6
8
|
import { isLeft } from '../../../either/left/is.mjs';
|
|
7
9
|
import { unwrap } from '../../../common/unwrap.mjs';
|
|
8
10
|
import { isTime } from '../../../date/isTime.mjs';
|
|
9
|
-
import { isSafeTimeValue } from '../../../date/isSafeTimeValue.mjs';
|
|
10
|
-
import { createTheTime } from '../../../date/createTheTime.mjs';
|
|
11
11
|
import { createOverride } from '../../../common/override.mjs';
|
|
12
12
|
|
|
13
13
|
const timeKind = createDataParserKind("time");
|
|
@@ -21,6 +21,12 @@ function time(definition) {
|
|
|
21
21
|
coerce: definition?.coerce ?? false,
|
|
22
22
|
}, (data, _error, self) => {
|
|
23
23
|
if (self.definition.coerce) {
|
|
24
|
+
if (typeof data === "number") {
|
|
25
|
+
if (!isSafeTimeValue(data)) {
|
|
26
|
+
return SymbolDataParserErrorIssue;
|
|
27
|
+
}
|
|
28
|
+
return createTheTime(data);
|
|
29
|
+
}
|
|
24
30
|
if (typeof data === "string" && isoTimeRegex.test(data)) {
|
|
25
31
|
const result = createTime({ value: data });
|
|
26
32
|
if (isLeft(result)) {
|
|
@@ -32,12 +38,6 @@ function time(definition) {
|
|
|
32
38
|
if (typeof data === "string" && isTime(data)) {
|
|
33
39
|
return data;
|
|
34
40
|
}
|
|
35
|
-
if (typeof data === "number") {
|
|
36
|
-
if (!isSafeTimeValue(data)) {
|
|
37
|
-
return SymbolDataParserErrorIssue;
|
|
38
|
-
}
|
|
39
|
-
return createTheTime(data);
|
|
40
|
-
}
|
|
41
41
|
return SymbolDataParserErrorIssue;
|
|
42
42
|
}, time.overrideHandler);
|
|
43
43
|
return self;
|
|
@@ -5,7 +5,7 @@ export declare const failKind: import("../../common/kind").KindHandler<import(".
|
|
|
5
5
|
* @deprecated use failKind
|
|
6
6
|
*/
|
|
7
7
|
export declare const eitherFailKind: import("../../common/kind").KindHandler<import("../../common/kind").KindDefinition<"@DuplojsUtilsEither/fail", unknown>>;
|
|
8
|
-
type _Fail = (Left<"fail",
|
|
8
|
+
type _Fail = (Left<"fail", void> & Kind<typeof failKind.definition>);
|
|
9
9
|
export interface Fail extends _Fail {
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
@@ -13,7 +13,7 @@ export interface Fail extends _Fail {
|
|
|
13
13
|
*/
|
|
14
14
|
export type EitherFail = Fail;
|
|
15
15
|
/**
|
|
16
|
-
* Returns an Left<"fail",
|
|
16
|
+
* Returns an Left<"fail", void>: perfect to signal a failure without carrying extra data.
|
|
17
17
|
*
|
|
18
18
|
* Signature: `fail()` → returns a value
|
|
19
19
|
*
|
|
@@ -5,7 +5,7 @@ export declare const okKind: import("../../common/kind").KindHandler<import("../
|
|
|
5
5
|
* @deprecated use okKind
|
|
6
6
|
*/
|
|
7
7
|
export declare const eitherOkKind: import("../../common/kind").KindHandler<import("../../common/kind").KindDefinition<"@DuplojsUtilsEither/ok", unknown>>;
|
|
8
|
-
type _Ok = (Right<"ok",
|
|
8
|
+
type _Ok = (Right<"ok", void> & Kind<typeof okKind.definition>);
|
|
9
9
|
export interface Ok extends _Ok {
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
@@ -13,7 +13,7 @@ export interface Ok extends _Ok {
|
|
|
13
13
|
*/
|
|
14
14
|
export type EitherOk = Ok;
|
|
15
15
|
/**
|
|
16
|
-
* Returns an Right<"ok",
|
|
16
|
+
* Returns an Right<"ok", void>: an empty success that confirms an operation went fine without extra data.
|
|
17
17
|
*
|
|
18
18
|
* Signature: `ok()` → returns a value
|
|
19
19
|
*
|