@duplojs/utils 1.4.45 → 1.4.47
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/dataParser/base.cjs +4 -0
- package/dist/dataParser/base.d.ts +34 -0
- package/dist/dataParser/base.mjs +4 -0
- package/dist/dataParser/extended/nullable.d.ts +1 -1
- package/dist/dataParser/extended/optional.d.ts +1 -1
- package/dist/dataParser/extended/recover.d.ts +1 -1
- package/dist/dataParser/parsers/array/index.cjs +1 -0
- package/dist/dataParser/parsers/array/index.d.ts +1 -1
- package/dist/dataParser/parsers/array/index.mjs +1 -0
- package/dist/dataParser/parsers/lazy.cjs +1 -0
- package/dist/dataParser/parsers/lazy.d.ts +1 -1
- package/dist/dataParser/parsers/lazy.mjs +1 -0
- package/dist/dataParser/parsers/literal.d.ts +1 -1
- package/dist/dataParser/parsers/nullable.cjs +1 -0
- package/dist/dataParser/parsers/nullable.d.ts +2 -2
- package/dist/dataParser/parsers/nullable.mjs +1 -0
- package/dist/dataParser/parsers/object/index.cjs +2 -0
- package/dist/dataParser/parsers/object/index.d.ts +3 -3
- package/dist/dataParser/parsers/object/index.mjs +2 -0
- package/dist/dataParser/parsers/optional.cjs +1 -0
- package/dist/dataParser/parsers/optional.d.ts +3 -3
- package/dist/dataParser/parsers/optional.mjs +1 -0
- package/dist/dataParser/parsers/pipe.cjs +1 -0
- package/dist/dataParser/parsers/pipe.d.ts +1 -1
- package/dist/dataParser/parsers/pipe.mjs +1 -0
- package/dist/dataParser/parsers/record/index.cjs +1 -0
- package/dist/dataParser/parsers/record/index.d.ts +1 -1
- package/dist/dataParser/parsers/record/index.mjs +1 -0
- package/dist/dataParser/parsers/recover.cjs +1 -0
- package/dist/dataParser/parsers/recover.d.ts +3 -3
- package/dist/dataParser/parsers/recover.mjs +1 -0
- package/dist/dataParser/parsers/templateLiteral/index.d.ts +1 -1
- package/dist/dataParser/parsers/transform.cjs +1 -0
- package/dist/dataParser/parsers/transform.d.ts +1 -1
- package/dist/dataParser/parsers/transform.mjs +1 -0
- package/dist/dataParser/parsers/tuple.cjs +2 -0
- package/dist/dataParser/parsers/tuple.d.ts +1 -1
- package/dist/dataParser/parsers/tuple.mjs +2 -0
- package/dist/dataParser/parsers/union.cjs +2 -0
- package/dist/dataParser/parsers/union.d.ts +1 -1
- package/dist/dataParser/parsers/union.mjs +2 -0
- package/dist/string/isIn.d.ts +2 -2
- package/dist/string/slice.d.ts +1 -1
- package/package.json +1 -1
package/dist/dataParser/base.cjs
CHANGED
|
@@ -42,6 +42,7 @@ function dataParserInit(kind, definition, exec, specificOverrideHandler) {
|
|
|
42
42
|
: {
|
|
43
43
|
sync: exec,
|
|
44
44
|
async: exec,
|
|
45
|
+
isAsynchronous: () => false,
|
|
45
46
|
};
|
|
46
47
|
function middleExec(data, error$1) {
|
|
47
48
|
let result = formattedExec.sync(data, error$1, self);
|
|
@@ -163,6 +164,9 @@ function dataParserInit(kind, definition, exec, specificOverrideHandler) {
|
|
|
163
164
|
}
|
|
164
165
|
return result;
|
|
165
166
|
},
|
|
167
|
+
isAsynchronous() {
|
|
168
|
+
return formattedExec.isAsynchronous(self);
|
|
169
|
+
},
|
|
166
170
|
}, (value) => dataParserKind.setTo(value, null), kind.setTo, (value) => dataParserInit.overrideHandler.apply(value), (value) => specificOverrideHandler.apply(value));
|
|
167
171
|
return self;
|
|
168
172
|
}
|
|
@@ -204,10 +204,44 @@ export interface DataParser<GenericDefinition extends DataParserDefinition = Dat
|
|
|
204
204
|
*
|
|
205
205
|
*/
|
|
206
206
|
asyncParseOrThrow(data: unknown): Promise<GenericOutput>;
|
|
207
|
+
/**
|
|
208
|
+
* The isAsynchronous() method tells whether a data parser requires async execution.
|
|
209
|
+
*
|
|
210
|
+
* **Supported call styles:**
|
|
211
|
+
* - Method: `dataParser.isAsynchronous()` -> returns a boolean
|
|
212
|
+
*
|
|
213
|
+
* It checks the parser definition (and nested parsers when relevant) and does not run any parsing.
|
|
214
|
+
*
|
|
215
|
+
* ```ts
|
|
216
|
+
* const syncParser = DDataParser.string();
|
|
217
|
+
* syncParser.isAsynchronous(); // false
|
|
218
|
+
*
|
|
219
|
+
* const asyncTransform = DDataParser.transform(
|
|
220
|
+
* DDataParser.number(),
|
|
221
|
+
* async(value) => {
|
|
222
|
+
* const result = await Promise.resolve(value);
|
|
223
|
+
*
|
|
224
|
+
* return result;
|
|
225
|
+
* },
|
|
226
|
+
* );
|
|
227
|
+
* asyncTransform.isAsynchronous(); // true
|
|
228
|
+
*
|
|
229
|
+
* const asyncArray = DDataParser.array(asyncTransform);
|
|
230
|
+
* asyncArray.isAsynchronous(); // true
|
|
231
|
+
*
|
|
232
|
+
* ```
|
|
233
|
+
*
|
|
234
|
+
* @see https://utils.duplojs.dev/en/v1/api/dataParser/isAsynchronous
|
|
235
|
+
*
|
|
236
|
+
* @namespace DP
|
|
237
|
+
*
|
|
238
|
+
*/
|
|
239
|
+
isAsynchronous(): boolean;
|
|
207
240
|
}
|
|
208
241
|
interface DataParserInitExecParams<GenericDataParser extends DataParser> {
|
|
209
242
|
sync(...args: [...Parameters<GenericDataParser["exec"]>, self: GenericDataParser]): (GetKindValue<typeof dataParserKind, GenericDataParser>["output"] | SymbolDataParserErrorIssue | SymbolDataParserErrorPromiseIssue);
|
|
210
243
|
async(...args: [...Parameters<GenericDataParser["exec"]>, self: GenericDataParser]): Promise<GetKindValue<typeof dataParserKind, GenericDataParser>["output"] | SymbolDataParserErrorIssue | SymbolDataParserErrorPromiseIssue>;
|
|
244
|
+
isAsynchronous(self: GenericDataParser): boolean;
|
|
211
245
|
}
|
|
212
246
|
declare const DataParserThrowError_base: new (params: {
|
|
213
247
|
"@DuplojsUtilsError/dataParserThrowError"?: unknown;
|
package/dist/dataParser/base.mjs
CHANGED
|
@@ -40,6 +40,7 @@ function dataParserInit(kind, definition, exec, specificOverrideHandler) {
|
|
|
40
40
|
: {
|
|
41
41
|
sync: exec,
|
|
42
42
|
async: exec,
|
|
43
|
+
isAsynchronous: () => false,
|
|
43
44
|
};
|
|
44
45
|
function middleExec(data, error) {
|
|
45
46
|
let result = formattedExec.sync(data, error, self);
|
|
@@ -161,6 +162,9 @@ function dataParserInit(kind, definition, exec, specificOverrideHandler) {
|
|
|
161
162
|
}
|
|
162
163
|
return result;
|
|
163
164
|
},
|
|
165
|
+
isAsynchronous() {
|
|
166
|
+
return formattedExec.isAsynchronous(self);
|
|
167
|
+
},
|
|
164
168
|
}, (value) => dataParserKind.setTo(value, null), kind.setTo, (value) => dataParserInit.overrideHandler.apply(value), (value) => specificOverrideHandler.apply(value));
|
|
165
169
|
return self;
|
|
166
170
|
}
|
|
@@ -42,7 +42,7 @@ export interface DataParserNullableExtended<GenericDefinition extends dataParser
|
|
|
42
42
|
* @namespace DPE
|
|
43
43
|
*
|
|
44
44
|
*/
|
|
45
|
-
export declare function nullable<GenericDataParser extends DataParser, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionNullable<Output<GenericDataParser
|
|
45
|
+
export declare function nullable<GenericDataParser extends DataParser, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionNullable<Output<GenericDataParser>>, "inner">> = never>(inner: GenericDataParser, definition?: GenericDefinition): DataParserNullableExtended<MergeDefinition<dataParsers.DataParserDefinitionNullable, NeverCoalescing<GenericDefinition, {}> & {
|
|
46
46
|
inner: GenericDataParser;
|
|
47
47
|
}>>;
|
|
48
48
|
export declare namespace nullable {
|
|
@@ -42,7 +42,7 @@ export interface DataParserOptionalExtended<GenericDefinition extends dataParser
|
|
|
42
42
|
* @namespace DPE
|
|
43
43
|
*
|
|
44
44
|
*/
|
|
45
|
-
export declare function optional<GenericDataParser extends DataParser, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionOptional<Output<GenericDataParser
|
|
45
|
+
export declare function optional<GenericDataParser extends DataParser, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionOptional<Output<GenericDataParser>>, "inner">> = never>(inner: GenericDataParser, definition?: GenericDefinition): DataParserOptionalExtended<MergeDefinition<dataParsers.DataParserDefinitionOptional, NeverCoalescing<GenericDefinition, {}> & {
|
|
46
46
|
inner: GenericDataParser;
|
|
47
47
|
}>>;
|
|
48
48
|
export declare namespace optional {
|
|
@@ -41,7 +41,7 @@ export interface DataParserRecoverExtended<GenericDefinition extends dataParsers
|
|
|
41
41
|
* @namespace DPE
|
|
42
42
|
*
|
|
43
43
|
*/
|
|
44
|
-
export declare function recover<GenericDataParser extends DataParser, GenericRecoveredValue extends
|
|
44
|
+
export declare function recover<GenericDataParser extends DataParser, GenericRecoveredValue extends Output<GenericDataParser>, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionRecover, "inner" | "recoveredValue">> = never>(inner: GenericDataParser, recoveredValue: GenericRecoveredValue, definition?: GenericDefinition): DataParserRecoverExtended<MergeDefinition<dataParsers.DataParserDefinitionRecover, NeverCoalescing<GenericDefinition, {}> & {
|
|
45
45
|
inner: GenericDataParser;
|
|
46
46
|
recoveredValue: GenericRecoveredValue;
|
|
47
47
|
}>>;
|
|
@@ -8,7 +8,7 @@ export * from "./checkers";
|
|
|
8
8
|
export interface DataParserArrayCheckerCustom<GenericInput extends unknown[] = unknown[]> {
|
|
9
9
|
}
|
|
10
10
|
export type DataParserArrayCheckers<GenericInput extends unknown[] = unknown[]> = (DataParserArrayCheckerCustom<GenericInput>[GetPropsWithValueExtends<DataParserArrayCheckerCustom<GenericInput>, DataParserChecker>] | DataParserCheckerArrayMin | DataParserCheckerArrayMax | CheckerRefineImplementation<GenericInput>);
|
|
11
|
-
export interface DataParserDefinitionArray extends DataParserDefinition<DataParserArrayCheckers
|
|
11
|
+
export interface DataParserDefinitionArray extends DataParserDefinition<DataParserArrayCheckers<unknown[]>> {
|
|
12
12
|
readonly element: DataParser;
|
|
13
13
|
}
|
|
14
14
|
export declare const arrayKind: import("../../../common").KindHandler<import("../../../common").KindDefinition<"@DuplojsUtilsDataParser/array", unknown>>;
|
|
@@ -17,6 +17,7 @@ function lazy(getter, definition) {
|
|
|
17
17
|
}, {
|
|
18
18
|
sync: (data, _error, self) => self.definition.getter.value.exec(data, _error),
|
|
19
19
|
async: (data, _error, self) => self.definition.getter.value.asyncExec(data, _error),
|
|
20
|
+
isAsynchronous: (self) => self.definition.getter.value.isAsynchronous(),
|
|
20
21
|
}, lazy.overrideHandler);
|
|
21
22
|
return self;
|
|
22
23
|
}
|
|
@@ -6,7 +6,7 @@ import { type GetPropsWithValueExtends } from "../../object";
|
|
|
6
6
|
export interface DataParserLazyCheckerCustom<GenericInput extends unknown = unknown> {
|
|
7
7
|
}
|
|
8
8
|
export type DataParserLazyCheckers<GenericInput extends unknown = unknown> = (DataParserLazyCheckerCustom<GenericInput>[GetPropsWithValueExtends<DataParserLazyCheckerCustom<GenericInput>, DataParserChecker>] | CheckerRefineImplementation<GenericInput>);
|
|
9
|
-
export interface DataParserDefinitionLazy extends DataParserDefinition<DataParserLazyCheckers
|
|
9
|
+
export interface DataParserDefinitionLazy extends DataParserDefinition<DataParserLazyCheckers<unknown>> {
|
|
10
10
|
getter: Memoized<DataParser>;
|
|
11
11
|
}
|
|
12
12
|
export declare const lazyKind: import("../../common").KindHandler<import("../../common").KindDefinition<"@DuplojsUtilsDataParser/lazy", unknown>>;
|
|
@@ -15,6 +15,7 @@ function lazy(getter, definition) {
|
|
|
15
15
|
}, {
|
|
16
16
|
sync: (data, _error, self) => self.definition.getter.value.exec(data, _error),
|
|
17
17
|
async: (data, _error, self) => self.definition.getter.value.asyncExec(data, _error),
|
|
18
|
+
isAsynchronous: (self) => self.definition.getter.value.isAsynchronous(),
|
|
18
19
|
}, lazy.overrideHandler);
|
|
19
20
|
return self;
|
|
20
21
|
}
|
|
@@ -7,7 +7,7 @@ export type LiteralValue = string | number | bigint | undefined | null | boolean
|
|
|
7
7
|
export interface DataParserLiteralCheckerCustom<GenericInput extends LiteralValue = LiteralValue> {
|
|
8
8
|
}
|
|
9
9
|
export type DataParserLiteralCheckers<GenericInput extends LiteralValue = LiteralValue> = (DataParserLiteralCheckerCustom<GenericInput>[GetPropsWithValueExtends<DataParserLiteralCheckerCustom<GenericInput>, DataParserChecker>] | CheckerRefineImplementation<GenericInput>);
|
|
10
|
-
export interface DataParserDefinitionLiteral extends DataParserDefinition<DataParserLiteralCheckers
|
|
10
|
+
export interface DataParserDefinitionLiteral extends DataParserDefinition<DataParserLiteralCheckers<LiteralValue>> {
|
|
11
11
|
readonly value: readonly LiteralValue[];
|
|
12
12
|
}
|
|
13
13
|
export declare const literalKind: import("../../common").KindHandler<import("../../common").KindDefinition<"@DuplojsUtilsDataParser/literal", unknown>>;
|
|
@@ -6,9 +6,9 @@ import { type GetPropsWithValueExtends } from "../../object";
|
|
|
6
6
|
export interface DataParserNullableCheckerCustom<GenericInput extends unknown = unknown> {
|
|
7
7
|
}
|
|
8
8
|
export type DataParserNullableCheckers<GenericInput extends unknown = unknown> = (DataParserNullableCheckerCustom<GenericInput>[GetPropsWithValueExtends<DataParserNullableCheckerCustom<GenericInput>, DataParserChecker>] | CheckerRefineImplementation<GenericInput>);
|
|
9
|
-
export interface DataParserDefinitionNullable<
|
|
9
|
+
export interface DataParserDefinitionNullable<GenericOutput extends unknown = unknown> extends DataParserDefinition<DataParserNullableCheckers> {
|
|
10
10
|
readonly inner: DataParser;
|
|
11
|
-
readonly coalescingValue:
|
|
11
|
+
readonly coalescingValue: GenericOutput;
|
|
12
12
|
}
|
|
13
13
|
export declare const nullableKind: import("../../common").KindHandler<import("../../common").KindDefinition<"@DuplojsUtilsDataParser/nullable", unknown>>;
|
|
14
14
|
type _DataParserNullable<GenericDefinition extends DataParserDefinitionNullable> = (DataParser<GenericDefinition, IsEqual<GenericDefinition["coalescingValue"], unknown> extends true ? Output<GenericDefinition["inner"]> | null : Output<GenericDefinition["inner"]>, Input<GenericDefinition["inner"]> | null> & Kind<typeof nullableKind.definition>);
|
|
@@ -4,6 +4,7 @@ var base = require('../../base.cjs');
|
|
|
4
4
|
var error = require('../../error.cjs');
|
|
5
5
|
var kind = require('../../kind.cjs');
|
|
6
6
|
var memo = require('../../../common/memo.cjs');
|
|
7
|
+
var some = require('../../../array/some.cjs');
|
|
7
8
|
var pipe = require('../../../common/pipe.cjs');
|
|
8
9
|
var map = require('../../../array/map.cjs');
|
|
9
10
|
var filter = require('../../../array/filter.cjs');
|
|
@@ -69,6 +70,7 @@ function object(shape, definition) {
|
|
|
69
70
|
void (self.definition.optimizedShape.value.length && error.popErrorPath(error$1));
|
|
70
71
|
return output;
|
|
71
72
|
},
|
|
73
|
+
isAsynchronous: (self) => some.some(self.definition.optimizedShape.value, (element) => element.value.isAsynchronous()),
|
|
72
74
|
}, object.overrideHandler);
|
|
73
75
|
return self;
|
|
74
76
|
}
|
|
@@ -16,10 +16,10 @@ export type DataParserObjectShapeOutput<GenericShape extends DataParserObjectSha
|
|
|
16
16
|
export type DataParserObjectShapeInput<GenericShape extends DataParserObjectShape> = {
|
|
17
17
|
-readonly [Prop in keyof GenericShape as GenericShape[Prop] extends Kind<typeof dataParserKind.definition> ? Prop : never]: Input<GenericShape[Prop]>;
|
|
18
18
|
} extends infer InferredResult extends object ? DObject.PartialKeys<InferredResult, DObject.GetPropsWithValueExtends<InferredResult, undefined>> : never;
|
|
19
|
-
export interface DataParserObjectCheckerCustom<GenericInput extends
|
|
19
|
+
export interface DataParserObjectCheckerCustom<GenericInput extends object = object> {
|
|
20
20
|
}
|
|
21
|
-
export type DataParserObjectCheckers<GenericInput extends
|
|
22
|
-
export interface DataParserDefinitionObject extends DataParserDefinition<DataParserObjectCheckers
|
|
21
|
+
export type DataParserObjectCheckers<GenericInput extends object = object> = (DataParserObjectCheckerCustom<GenericInput>[GetPropsWithValueExtends<DataParserObjectCheckerCustom<GenericInput>, DataParserChecker>] | CheckerRefineImplementation<GenericInput>);
|
|
22
|
+
export interface DataParserDefinitionObject extends DataParserDefinition<DataParserObjectCheckers<object>> {
|
|
23
23
|
readonly shape: DataParserObjectShape;
|
|
24
24
|
readonly optimizedShape: Memoized<{
|
|
25
25
|
readonly key: string;
|
|
@@ -2,6 +2,7 @@ import { dataParserInit, SymbolDataParserError, dataParserKind } from '../../bas
|
|
|
2
2
|
import { SymbolDataParserErrorIssue, setErrorPath, popErrorPath } from '../../error.mjs';
|
|
3
3
|
import { createDataParserKind } from '../../kind.mjs';
|
|
4
4
|
import { memo } from '../../../common/memo.mjs';
|
|
5
|
+
import { some } from '../../../array/some.mjs';
|
|
5
6
|
import { pipe } from '../../../common/pipe.mjs';
|
|
6
7
|
import { map } from '../../../array/map.mjs';
|
|
7
8
|
import { filter } from '../../../array/filter.mjs';
|
|
@@ -67,6 +68,7 @@ function object(shape, definition) {
|
|
|
67
68
|
void (self.definition.optimizedShape.value.length && popErrorPath(error));
|
|
68
69
|
return output;
|
|
69
70
|
},
|
|
71
|
+
isAsynchronous: (self) => some(self.definition.optimizedShape.value, (element) => element.value.isAsynchronous()),
|
|
70
72
|
}, object.overrideHandler);
|
|
71
73
|
return self;
|
|
72
74
|
}
|
|
@@ -6,9 +6,9 @@ import { type GetPropsWithValueExtends } from "../../object";
|
|
|
6
6
|
export interface DataParserOptionalCheckerCustom<GenericInput extends unknown = unknown> {
|
|
7
7
|
}
|
|
8
8
|
export type DataParserOptionalCheckers<GenericInput extends unknown = unknown> = (DataParserOptionalCheckerCustom<GenericInput>[GetPropsWithValueExtends<DataParserOptionalCheckerCustom<GenericInput>, DataParserChecker>] | CheckerRefineImplementation<GenericInput>);
|
|
9
|
-
export interface DataParserDefinitionOptional<
|
|
9
|
+
export interface DataParserDefinitionOptional<GenericOutput extends unknown = unknown> extends DataParserDefinition<DataParserOptionalCheckers> {
|
|
10
10
|
readonly inner: DataParser;
|
|
11
|
-
readonly coalescingValue:
|
|
11
|
+
readonly coalescingValue: GenericOutput;
|
|
12
12
|
}
|
|
13
13
|
export declare const optionalKind: import("../../common").KindHandler<import("../../common").KindDefinition<"@DuplojsUtilsDataParser/optional", unknown>>;
|
|
14
14
|
type _DataParserOptional<GenericDefinition extends DataParserDefinitionOptional> = (DataParser<GenericDefinition, IsEqual<GenericDefinition["coalescingValue"], unknown> extends true ? Output<GenericDefinition["inner"]> | undefined : Output<GenericDefinition["inner"]>, Input<GenericDefinition["inner"]> | undefined> & Kind<typeof optionalKind.definition>);
|
|
@@ -51,7 +51,7 @@ export interface DataParserOptional<GenericDefinition extends DataParserDefiniti
|
|
|
51
51
|
* @namespace DP
|
|
52
52
|
*
|
|
53
53
|
*/
|
|
54
|
-
export declare function optional<GenericDataParser extends DataParser, const GenericDefinition extends Partial<Omit<DataParserDefinitionOptional
|
|
54
|
+
export declare function optional<GenericDataParser extends DataParser, const GenericDefinition extends Partial<Omit<DataParserDefinitionOptional, "inner">> = never>(inner: GenericDataParser, definition?: GenericDefinition): DataParserOptional<MergeDefinition<DataParserDefinitionOptional, NeverCoalescing<GenericDefinition, {}> & {
|
|
55
55
|
inner: GenericDataParser;
|
|
56
56
|
}>>;
|
|
57
57
|
export declare namespace optional {
|
|
@@ -29,6 +29,7 @@ function pipe(input, output, definition) {
|
|
|
29
29
|
}
|
|
30
30
|
return self.definition.output.asyncExec(result, error);
|
|
31
31
|
},
|
|
32
|
+
isAsynchronous: (self) => self.definition.input.isAsynchronous() || self.definition.output.isAsynchronous(),
|
|
32
33
|
}, pipe.overrideHandler);
|
|
33
34
|
return self;
|
|
34
35
|
}
|
|
@@ -6,7 +6,7 @@ import { type GetPropsWithValueExtends } from "../../object";
|
|
|
6
6
|
export interface DataParserPipeCheckerCustom<GenericInput extends unknown = unknown> {
|
|
7
7
|
}
|
|
8
8
|
export type DataParserPipeCheckers<GenericInput extends unknown = unknown> = (DataParserPipeCheckerCustom<GenericInput>[GetPropsWithValueExtends<DataParserPipeCheckerCustom<GenericInput>, DataParserChecker>] | CheckerRefineImplementation<GenericInput>);
|
|
9
|
-
export interface DataParserDefinitionPipe extends DataParserDefinition<DataParserPipeCheckers
|
|
9
|
+
export interface DataParserDefinitionPipe extends DataParserDefinition<DataParserPipeCheckers<unknown>> {
|
|
10
10
|
readonly input: DataParser;
|
|
11
11
|
readonly output: DataParser;
|
|
12
12
|
}
|
|
@@ -27,6 +27,7 @@ function pipe(input, output, definition) {
|
|
|
27
27
|
}
|
|
28
28
|
return self.definition.output.asyncExec(result, error);
|
|
29
29
|
},
|
|
30
|
+
isAsynchronous: (self) => self.definition.input.isAsynchronous() || self.definition.output.isAsynchronous(),
|
|
30
31
|
}, pipe.overrideHandler);
|
|
31
32
|
return self;
|
|
32
33
|
}
|
|
@@ -18,7 +18,7 @@ export type DataParserRecordKey = (DataParserString | DataParserTemplateLiteral
|
|
|
18
18
|
export interface DataParserRecordCheckerCustom<GenericInput extends Record<string, unknown> = Record<string, unknown>> {
|
|
19
19
|
}
|
|
20
20
|
export type DataParserRecordCheckers<GenericInput extends Record<string, unknown> = Record<string, unknown>> = (DataParserRecordCheckerCustom<GenericInput>[GetPropsWithValueExtends<DataParserRecordCheckerCustom<GenericInput>, DataParserChecker>] | CheckerRefineImplementation<GenericInput>);
|
|
21
|
-
export interface DataParserDefinitionRecord extends DataParserDefinition<DataParserRecordCheckers
|
|
21
|
+
export interface DataParserDefinitionRecord extends DataParserDefinition<DataParserRecordCheckers<Record<string, unknown>>> {
|
|
22
22
|
readonly key: DataParserRecordKey;
|
|
23
23
|
readonly value: DataParser;
|
|
24
24
|
readonly requireKey: string[] | null;
|
|
@@ -41,9 +41,9 @@ export interface DataParserRecover<GenericDefinition extends DataParserDefinitio
|
|
|
41
41
|
* const withString = DP.recover(DP.string(), "fallback");
|
|
42
42
|
* const stringResult = withString.parse(123);
|
|
43
43
|
*
|
|
44
|
-
* const withCheckers = DP.recover(DP.string(), "fallback"
|
|
45
|
-
*
|
|
46
|
-
*
|
|
44
|
+
* const withCheckers = DP.recover(DP.string(), "fallback")
|
|
45
|
+
* .addChecker(DP.checkerRefine((value) => value.length > 0));
|
|
46
|
+
*
|
|
47
47
|
* ```
|
|
48
48
|
*
|
|
49
49
|
* @see https://utils.duplojs.dev/en/v1/api/dataParser/recover
|
|
@@ -46,7 +46,7 @@ export type TemplateLiteralShapeInput<GenericTemplate extends TemplateLiteralSha
|
|
|
46
46
|
export interface DataParserTemplateLiteralCheckerCustom<GenericInput extends string = string> {
|
|
47
47
|
}
|
|
48
48
|
export type DataParserTemplateLiteralCheckers<GenericInput extends string = string> = (DataParserTemplateLiteralCheckerCustom<GenericInput>[GetPropsWithValueExtends<DataParserTemplateLiteralCheckerCustom<GenericInput>, DataParserChecker>] | CheckerRefineImplementation<GenericInput>);
|
|
49
|
-
export interface DataParserDefinitionTemplateLiteral extends DataParserDefinition<DataParserTemplateLiteralCheckers
|
|
49
|
+
export interface DataParserDefinitionTemplateLiteral extends DataParserDefinition<DataParserTemplateLiteralCheckers<string>> {
|
|
50
50
|
readonly template: TemplateLiteralShape;
|
|
51
51
|
readonly pattern: RegExp;
|
|
52
52
|
}
|
|
@@ -7,7 +7,7 @@ import { type GetPropsWithValueExtends } from "../../object";
|
|
|
7
7
|
export interface DataParserTransformCheckerCustom<GenericInput extends unknown = unknown> {
|
|
8
8
|
}
|
|
9
9
|
export type DataParserTransformCheckers<GenericInput extends unknown = unknown> = (DataParserTransformCheckerCustom<GenericInput>[GetPropsWithValueExtends<DataParserTransformCheckerCustom<GenericInput>, DataParserChecker>] | CheckerRefineImplementation<GenericInput>);
|
|
10
|
-
export interface DataParserDefinitionTransform extends DataParserDefinition<DataParserTransformCheckers
|
|
10
|
+
export interface DataParserDefinitionTransform extends DataParserDefinition<DataParserTransformCheckers<unknown>> {
|
|
11
11
|
readonly inner: DataParser;
|
|
12
12
|
theFunction(input: any, error: DataParserError): unknown;
|
|
13
13
|
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
var base = require('../base.cjs');
|
|
4
4
|
var error = require('../error.cjs');
|
|
5
5
|
var kind = require('../kind.cjs');
|
|
6
|
+
var some = require('../../array/some.cjs');
|
|
6
7
|
var override = require('../../common/override.cjs');
|
|
7
8
|
|
|
8
9
|
const tupleKind = kind.createDataParserKind("tuple");
|
|
@@ -78,6 +79,7 @@ function tuple(shape, definition) {
|
|
|
78
79
|
void (self.definition.shape.length && error.popErrorPath(error$1));
|
|
79
80
|
return output;
|
|
80
81
|
},
|
|
82
|
+
isAsynchronous: (self) => some.some(self.definition.shape, (element) => element.isAsynchronous()) || !!self.definition.rest?.isAsynchronous(),
|
|
81
83
|
}, tuple.overrideHandler);
|
|
82
84
|
return self;
|
|
83
85
|
}
|
|
@@ -22,7 +22,7 @@ export type DataParserTupleShapeInput<GenericShape extends TupleShape, GenericRe
|
|
|
22
22
|
export interface DataParserTupleCheckerCustom<GenericInput extends AnyTuple<unknown> = AnyTuple<unknown>> {
|
|
23
23
|
}
|
|
24
24
|
export type DataParserTupleCheckers<GenericInput extends AnyTuple<unknown> = AnyTuple<unknown>> = (DataParserTupleCheckerCustom<GenericInput>[GetPropsWithValueExtends<DataParserTupleCheckerCustom<GenericInput>, DataParserChecker>] | DataParserCheckerArrayMin | DataParserCheckerArrayMax | CheckerRefineImplementation<GenericInput>);
|
|
25
|
-
export interface DataParserDefinitionTuple extends DataParserDefinition<DataParserTupleCheckers
|
|
25
|
+
export interface DataParserDefinitionTuple extends DataParserDefinition<DataParserTupleCheckers<AnyTuple<unknown>>> {
|
|
26
26
|
readonly shape: TupleShape;
|
|
27
27
|
readonly rest?: DataParser;
|
|
28
28
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { dataParserInit, SymbolDataParserError } from '../base.mjs';
|
|
2
2
|
import { SymbolDataParserErrorIssue, setErrorPath, popErrorPath } from '../error.mjs';
|
|
3
3
|
import { createDataParserKind } from '../kind.mjs';
|
|
4
|
+
import { some } from '../../array/some.mjs';
|
|
4
5
|
import { createOverride } from '../../common/override.mjs';
|
|
5
6
|
|
|
6
7
|
const tupleKind = createDataParserKind("tuple");
|
|
@@ -76,6 +77,7 @@ function tuple(shape, definition) {
|
|
|
76
77
|
void (self.definition.shape.length && popErrorPath(error));
|
|
77
78
|
return output;
|
|
78
79
|
},
|
|
80
|
+
isAsynchronous: (self) => some(self.definition.shape, (element) => element.isAsynchronous()) || !!self.definition.rest?.isAsynchronous(),
|
|
79
81
|
}, tuple.overrideHandler);
|
|
80
82
|
return self;
|
|
81
83
|
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
var base = require('../base.cjs');
|
|
4
4
|
var error = require('../error.cjs');
|
|
5
5
|
var kind = require('../kind.cjs');
|
|
6
|
+
var some = require('../../array/some.cjs');
|
|
6
7
|
var override = require('../../common/override.cjs');
|
|
7
8
|
|
|
8
9
|
const unionKind = kind.createDataParserKind("union");
|
|
@@ -33,6 +34,7 @@ function union(options, definition) {
|
|
|
33
34
|
}
|
|
34
35
|
return error.SymbolDataParserErrorIssue;
|
|
35
36
|
},
|
|
37
|
+
isAsynchronous: (self) => some.some(self.definition.options, (element) => element.isAsynchronous()),
|
|
36
38
|
}, union.overrideHandler);
|
|
37
39
|
return self;
|
|
38
40
|
}
|
|
@@ -7,7 +7,7 @@ export type UnionOptions = readonly [DataParser, ...DataParser[]];
|
|
|
7
7
|
export interface DataParserUnionCheckerCustom<GenericInput extends unknown = unknown> {
|
|
8
8
|
}
|
|
9
9
|
export type DataParserUnionCheckers<GenericInput extends unknown = unknown> = (DataParserUnionCheckerCustom<GenericInput>[GetPropsWithValueExtends<DataParserUnionCheckerCustom<GenericInput>, DataParserChecker>] | CheckerRefineImplementation<GenericInput>);
|
|
10
|
-
export interface DataParserDefinitionUnion extends DataParserDefinition<DataParserUnionCheckers
|
|
10
|
+
export interface DataParserDefinitionUnion extends DataParserDefinition<DataParserUnionCheckers<unknown>> {
|
|
11
11
|
readonly options: UnionOptions;
|
|
12
12
|
}
|
|
13
13
|
export declare const unionKind: import("../../common").KindHandler<import("../../common").KindDefinition<"@DuplojsUtilsDataParser/union", unknown>>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { dataParserInit, SymbolDataParserError } from '../base.mjs';
|
|
2
2
|
import { SymbolDataParserErrorIssue } from '../error.mjs';
|
|
3
3
|
import { createDataParserKind } from '../kind.mjs';
|
|
4
|
+
import { some } from '../../array/some.mjs';
|
|
4
5
|
import { createOverride } from '../../common/override.mjs';
|
|
5
6
|
|
|
6
7
|
const unionKind = createDataParserKind("union");
|
|
@@ -31,6 +32,7 @@ function union(options, definition) {
|
|
|
31
32
|
}
|
|
32
33
|
return SymbolDataParserErrorIssue;
|
|
33
34
|
},
|
|
35
|
+
isAsynchronous: (self) => some(self.definition.options, (element) => element.isAsynchronous()),
|
|
34
36
|
}, union.overrideHandler);
|
|
35
37
|
return self;
|
|
36
38
|
}
|
package/dist/string/isIn.d.ts
CHANGED
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
* @namespace S
|
|
44
44
|
*
|
|
45
45
|
*/
|
|
46
|
-
export declare function isIn<
|
|
47
|
-
export declare function isIn<
|
|
46
|
+
export declare function isIn<GenericValue extends string>(array: readonly (GenericValue | string)[]): (input: string) => input is GenericValue;
|
|
47
|
+
export declare function isIn<GenericValue extends string>(input: string, array: readonly (GenericValue | string)[]): input is GenericValue;
|
package/dist/string/slice.d.ts
CHANGED