@duplojs/utils 1.4.48 → 1.4.49

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.
@@ -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 or native Date instances.
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 (or Date instances) and can coerce from ISO strings or timestamps when enabled.
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(new Date("2024-01-01T00:00:00.000Z"));
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 or safe millisecond numbers.
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 (or safe millisecond numbers) and exposes time-specific methods like min and max.
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(10);
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}+` | Date;
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: number | `time${number}-` | `time${number}+`;
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}+` | Date;
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: number | `time${number}-` | `time${number}+`;
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 | Date> & Kind<typeof dateKind.definition>);
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 or native Date instances.
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 (or a Date instance), optionally applies number/ISO string coercion, and runs the configured checkers.
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(new Date("2024-01-01T00:00:00.000Z"));
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 | number> & Kind<typeof timeKind.definition>);
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 or safe millisecond numbers.
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 (or a safe millisecond number), optionally applies ISO string coercion, and runs the configured checkers.
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(60000);
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duplojs/utils",
3
- "version": "1.4.48",
3
+ "version": "1.4.49",
4
4
  "author": {
5
5
  "name": "mathcovax",
6
6
  "url": "https://github.com/mathcovax"