@duplojs/utils 1.1.9 → 1.1.11
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/array/reduce.cjs +1 -0
- package/dist/array/reduce.mjs +1 -0
- package/dist/array/reduceRight.cjs +1 -0
- package/dist/array/reduceRight.mjs +1 -0
- package/dist/common/builder.cjs +70 -0
- package/dist/common/builder.d.ts +34 -0
- package/dist/common/builder.mjs +66 -0
- package/dist/common/index.d.ts +1 -0
- package/dist/common/instanceOf.cjs +1 -0
- package/dist/common/instanceOf.mjs +1 -0
- package/dist/common/kind.d.ts +3 -2
- package/dist/common/types/index.d.ts +1 -0
- package/dist/common/types/removeFromUnion.d.ts +2 -0
- package/dist/common/types/unionContain.d.ts +1 -1
- package/dist/dataParser/base.cjs +4 -3
- package/dist/dataParser/base.d.ts +4 -4
- package/dist/dataParser/base.mjs +4 -3
- package/dist/dataParser/baseExtended.cjs +4 -3
- package/dist/dataParser/baseExtended.d.ts +5 -5
- package/dist/dataParser/baseExtended.mjs +4 -3
- package/dist/dataParser/error.cjs +9 -9
- package/dist/dataParser/error.d.ts +10 -9
- package/dist/dataParser/error.mjs +7 -7
- package/dist/dataParser/extended/array.cjs +1 -0
- package/dist/dataParser/extended/array.d.ts +3 -2
- package/dist/dataParser/extended/array.mjs +1 -0
- package/dist/dataParser/extended/bigint.cjs +1 -0
- package/dist/dataParser/extended/bigint.mjs +1 -0
- package/dist/dataParser/extended/boolean.cjs +1 -0
- package/dist/dataParser/extended/boolean.mjs +1 -0
- package/dist/dataParser/extended/coerce/bigint.cjs +1 -0
- package/dist/dataParser/extended/coerce/bigint.mjs +1 -0
- package/dist/dataParser/extended/coerce/boolean.cjs +1 -0
- package/dist/dataParser/extended/coerce/boolean.mjs +1 -0
- package/dist/dataParser/extended/coerce/empty.cjs +1 -0
- package/dist/dataParser/extended/coerce/empty.mjs +1 -0
- package/dist/dataParser/extended/coerce/nil.cjs +1 -0
- package/dist/dataParser/extended/coerce/nil.mjs +1 -0
- package/dist/dataParser/extended/coerce/number.cjs +1 -0
- package/dist/dataParser/extended/coerce/number.mjs +1 -0
- package/dist/dataParser/extended/coerce/string.cjs +1 -0
- package/dist/dataParser/extended/coerce/string.mjs +1 -0
- package/dist/dataParser/extended/empty.cjs +1 -0
- package/dist/dataParser/extended/empty.mjs +1 -0
- package/dist/dataParser/extended/lazy.cjs +1 -0
- package/dist/dataParser/extended/lazy.d.ts +3 -2
- package/dist/dataParser/extended/lazy.mjs +1 -0
- package/dist/dataParser/extended/literal.cjs +1 -0
- package/dist/dataParser/extended/literal.mjs +1 -0
- package/dist/dataParser/extended/nil.cjs +1 -0
- package/dist/dataParser/extended/nil.mjs +1 -0
- package/dist/dataParser/extended/nullable.cjs +1 -0
- package/dist/dataParser/extended/nullable.d.ts +3 -2
- package/dist/dataParser/extended/nullable.mjs +1 -0
- package/dist/dataParser/extended/number.cjs +1 -0
- package/dist/dataParser/extended/number.mjs +1 -0
- package/dist/dataParser/extended/object.cjs +1 -0
- package/dist/dataParser/extended/object.mjs +1 -0
- package/dist/dataParser/extended/optional.cjs +1 -0
- package/dist/dataParser/extended/optional.d.ts +3 -2
- package/dist/dataParser/extended/optional.mjs +1 -0
- package/dist/dataParser/extended/pipe.cjs +1 -0
- package/dist/dataParser/extended/pipe.d.ts +3 -2
- package/dist/dataParser/extended/pipe.mjs +1 -0
- package/dist/dataParser/extended/record.cjs +1 -0
- package/dist/dataParser/extended/record.d.ts +3 -2
- package/dist/dataParser/extended/record.mjs +1 -0
- package/dist/dataParser/extended/string.cjs +1 -0
- package/dist/dataParser/extended/string.mjs +1 -0
- package/dist/dataParser/extended/templateLiteral.cjs +1 -0
- package/dist/dataParser/extended/templateLiteral.mjs +1 -0
- package/dist/dataParser/extended/transform.cjs +1 -0
- package/dist/dataParser/extended/transform.d.ts +3 -3
- package/dist/dataParser/extended/transform.mjs +1 -0
- package/dist/dataParser/extended/tuple.cjs +1 -0
- package/dist/dataParser/extended/tuple.mjs +1 -0
- package/dist/dataParser/extended/union.cjs +1 -0
- package/dist/dataParser/extended/union.mjs +1 -0
- package/dist/dataParser/extended/unknown.cjs +1 -0
- package/dist/dataParser/extended/unknown.mjs +1 -0
- package/dist/dataParser/identifier.cjs +32 -0
- package/dist/dataParser/identifier.d.ts +9 -0
- package/dist/dataParser/identifier.mjs +30 -0
- package/dist/dataParser/index.cjs +26 -24
- package/dist/dataParser/index.d.ts +1 -0
- package/dist/dataParser/index.mjs +23 -22
- package/dist/dataParser/kind.cjs +2 -1
- package/dist/dataParser/kind.d.ts +1 -1
- package/dist/dataParser/kind.mjs +2 -1
- package/dist/dataParser/parsers/array/checkers/max.d.ts +1 -1
- package/dist/dataParser/parsers/array/checkers/min.d.ts +1 -1
- package/dist/dataParser/parsers/array/index.cjs +3 -3
- package/dist/dataParser/parsers/array/index.d.ts +5 -5
- package/dist/dataParser/parsers/array/index.mjs +3 -3
- package/dist/dataParser/parsers/bigint/checkers/max.d.ts +1 -1
- package/dist/dataParser/parsers/bigint/checkers/min.d.ts +1 -1
- package/dist/dataParser/parsers/bigint/index.cjs +3 -3
- package/dist/dataParser/parsers/bigint/index.d.ts +2 -2
- package/dist/dataParser/parsers/bigint/index.mjs +3 -3
- package/dist/dataParser/parsers/boolean.cjs +3 -3
- package/dist/dataParser/parsers/boolean.d.ts +2 -2
- package/dist/dataParser/parsers/boolean.mjs +3 -3
- package/dist/dataParser/parsers/coerce/bigint.cjs +1 -0
- package/dist/dataParser/parsers/coerce/bigint.mjs +1 -0
- package/dist/dataParser/parsers/coerce/boolean.cjs +1 -0
- package/dist/dataParser/parsers/coerce/boolean.mjs +1 -0
- package/dist/dataParser/parsers/coerce/empty.cjs +1 -0
- package/dist/dataParser/parsers/coerce/empty.mjs +1 -0
- package/dist/dataParser/parsers/coerce/nil.cjs +1 -0
- package/dist/dataParser/parsers/coerce/nil.mjs +1 -0
- package/dist/dataParser/parsers/coerce/number.cjs +1 -0
- package/dist/dataParser/parsers/coerce/number.mjs +1 -0
- package/dist/dataParser/parsers/coerce/string.cjs +1 -0
- package/dist/dataParser/parsers/coerce/string.mjs +1 -0
- package/dist/dataParser/parsers/empty.cjs +3 -3
- package/dist/dataParser/parsers/empty.d.ts +2 -2
- package/dist/dataParser/parsers/empty.mjs +3 -3
- package/dist/dataParser/parsers/lazy.cjs +3 -3
- package/dist/dataParser/parsers/lazy.d.ts +5 -5
- package/dist/dataParser/parsers/lazy.mjs +3 -3
- package/dist/dataParser/parsers/literal.cjs +4 -3
- package/dist/dataParser/parsers/literal.d.ts +2 -2
- package/dist/dataParser/parsers/literal.mjs +4 -3
- package/dist/dataParser/parsers/nil.cjs +3 -3
- package/dist/dataParser/parsers/nil.d.ts +2 -2
- package/dist/dataParser/parsers/nil.mjs +3 -3
- package/dist/dataParser/parsers/nullable.cjs +3 -3
- package/dist/dataParser/parsers/nullable.d.ts +5 -5
- package/dist/dataParser/parsers/nullable.mjs +3 -3
- package/dist/dataParser/parsers/number/checkers/int.d.ts +1 -1
- package/dist/dataParser/parsers/number/checkers/max.d.ts +1 -1
- package/dist/dataParser/parsers/number/checkers/min.d.ts +1 -1
- package/dist/dataParser/parsers/number/index.cjs +3 -3
- package/dist/dataParser/parsers/number/index.d.ts +2 -2
- package/dist/dataParser/parsers/number/index.mjs +3 -3
- package/dist/dataParser/parsers/object.cjs +4 -3
- package/dist/dataParser/parsers/object.d.ts +5 -5
- package/dist/dataParser/parsers/object.mjs +4 -3
- package/dist/dataParser/parsers/optional.cjs +3 -3
- package/dist/dataParser/parsers/optional.d.ts +5 -5
- package/dist/dataParser/parsers/optional.mjs +3 -3
- package/dist/dataParser/parsers/pipe.cjs +3 -3
- package/dist/dataParser/parsers/pipe.d.ts +6 -6
- package/dist/dataParser/parsers/pipe.mjs +3 -3
- package/dist/dataParser/parsers/record.cjs +3 -3
- package/dist/dataParser/parsers/record.d.ts +7 -7
- package/dist/dataParser/parsers/record.mjs +3 -3
- package/dist/dataParser/parsers/string/checkers/email.d.ts +1 -1
- package/dist/dataParser/parsers/string/checkers/max.d.ts +1 -1
- package/dist/dataParser/parsers/string/checkers/min.d.ts +1 -1
- package/dist/dataParser/parsers/string/checkers/regex.d.ts +1 -1
- package/dist/dataParser/parsers/string/checkers/url.d.ts +1 -1
- package/dist/dataParser/parsers/string/index.cjs +3 -3
- package/dist/dataParser/parsers/string/index.d.ts +2 -2
- package/dist/dataParser/parsers/string/index.mjs +3 -3
- package/dist/dataParser/parsers/templateLiteral.cjs +5 -4
- package/dist/dataParser/parsers/templateLiteral.d.ts +2 -2
- package/dist/dataParser/parsers/templateLiteral.mjs +12 -11
- package/dist/dataParser/parsers/transform.cjs +3 -3
- package/dist/dataParser/parsers/transform.d.ts +5 -5
- package/dist/dataParser/parsers/transform.mjs +3 -3
- package/dist/dataParser/parsers/tuple.cjs +3 -3
- package/dist/dataParser/parsers/tuple.d.ts +11 -11
- package/dist/dataParser/parsers/tuple.mjs +3 -3
- package/dist/dataParser/parsers/union.cjs +3 -3
- package/dist/dataParser/parsers/union.d.ts +4 -4
- package/dist/dataParser/parsers/union.mjs +3 -3
- package/dist/dataParser/parsers/unknown.cjs +3 -3
- package/dist/dataParser/parsers/unknown.d.ts +2 -2
- package/dist/dataParser/parsers/unknown.mjs +3 -3
- package/dist/dataParser/types/checkers.d.ts +5 -1
- package/dist/dataParser/types/dataParsers.d.ts +9 -1
- package/dist/either/bool/base.d.ts +1 -1
- package/dist/either/bool/falsy.cjs +1 -0
- package/dist/either/bool/falsy.d.ts +1 -1
- package/dist/either/bool/falsy.mjs +1 -0
- package/dist/either/bool/truthy.cjs +1 -0
- package/dist/either/bool/truthy.d.ts +1 -1
- package/dist/either/bool/truthy.mjs +1 -0
- package/dist/either/future/base.d.ts +1 -1
- package/dist/either/future/create.cjs +1 -0
- package/dist/either/future/create.mjs +1 -0
- package/dist/either/future/error.cjs +1 -0
- package/dist/either/future/error.d.ts +1 -1
- package/dist/either/future/error.mjs +1 -0
- package/dist/either/future/success.cjs +1 -0
- package/dist/either/future/success.d.ts +1 -1
- package/dist/either/future/success.mjs +1 -0
- package/dist/either/kind.cjs +2 -1
- package/dist/either/kind.d.ts +2 -2
- package/dist/either/kind.mjs +2 -1
- package/dist/either/left/create.d.ts +1 -1
- package/dist/either/left/error.d.ts +1 -1
- package/dist/either/left/fail.d.ts +1 -1
- package/dist/either/left/when.cjs +1 -0
- package/dist/either/left/when.mjs +1 -0
- package/dist/either/nullable/base.d.ts +1 -1
- package/dist/either/nullable/empty.cjs +1 -0
- package/dist/either/nullable/empty.d.ts +1 -1
- package/dist/either/nullable/empty.mjs +1 -0
- package/dist/either/nullable/filled.cjs +1 -0
- package/dist/either/nullable/filled.d.ts +1 -1
- package/dist/either/nullable/filled.mjs +1 -0
- package/dist/either/nullish/base.d.ts +1 -1
- package/dist/either/nullish/empty.cjs +1 -0
- package/dist/either/nullish/empty.d.ts +1 -1
- package/dist/either/nullish/empty.mjs +1 -0
- package/dist/either/nullish/filled.cjs +1 -0
- package/dist/either/nullish/filled.d.ts +1 -1
- package/dist/either/nullish/filled.mjs +1 -0
- package/dist/either/optional/base.d.ts +1 -1
- package/dist/either/optional/empty.cjs +1 -0
- package/dist/either/optional/empty.d.ts +1 -1
- package/dist/either/optional/empty.mjs +1 -0
- package/dist/either/optional/filled.cjs +1 -0
- package/dist/either/optional/filled.d.ts +1 -1
- package/dist/either/optional/filled.mjs +1 -0
- package/dist/either/right/asyncPipe.cjs +1 -0
- package/dist/either/right/asyncPipe.mjs +1 -0
- package/dist/either/right/create.d.ts +1 -1
- package/dist/either/right/ok.d.ts +1 -1
- package/dist/either/right/pipe.cjs +1 -0
- package/dist/either/right/pipe.mjs +1 -0
- package/dist/either/right/success.d.ts +1 -1
- package/dist/either/right/when.cjs +1 -0
- package/dist/either/right/when.mjs +1 -0
- package/dist/either/whenHasInformation.cjs +1 -0
- package/dist/either/whenHasInformation.mjs +1 -0
- package/dist/generator/asyncReduce.cjs +1 -0
- package/dist/generator/asyncReduce.mjs +1 -0
- package/dist/generator/reduce.cjs +1 -0
- package/dist/generator/reduce.mjs +1 -0
- package/dist/index.cjs +4 -0
- package/dist/index.mjs +1 -0
- package/dist/number/index.cjs +4 -0
- package/dist/number/index.d.ts +2 -0
- package/dist/number/index.mjs +2 -0
- package/dist/number/sqrt.cjs +7 -0
- package/dist/number/sqrt.d.ts +1 -0
- package/dist/number/sqrt.mjs +5 -0
- package/dist/number/toFixed.cjs +12 -0
- package/dist/number/toFixed.d.ts +2 -0
- package/dist/number/toFixed.mjs +10 -0
- package/dist/object/deepDiscriminate.cjs +1 -0
- package/dist/object/deepDiscriminate.mjs +1 -0
- package/dist/object/discriminate.cjs +1 -0
- package/dist/object/discriminate.mjs +1 -0
- package/dist/object/entries.cjs +1 -0
- package/dist/object/entries.mjs +1 -0
- package/dist/object/keys.cjs +1 -0
- package/dist/object/keys.mjs +1 -0
- package/dist/pattern/exhaustive.cjs +1 -0
- package/dist/pattern/exhaustive.mjs +1 -0
- package/dist/pattern/otherwise.cjs +1 -0
- package/dist/pattern/otherwise.mjs +1 -0
- package/dist/pattern/result.cjs +1 -0
- package/dist/pattern/result.mjs +1 -0
- package/dist/string/types/forbiddenString.d.ts +0 -1
- package/package.json +1 -1
package/dist/array/reduce.cjs
CHANGED
|
@@ -4,6 +4,7 @@ var kind = require('../common/kind.cjs');
|
|
|
4
4
|
var wrapValue = require('../common/wrapValue.cjs');
|
|
5
5
|
var unwrap = require('../common/unwrap.cjs');
|
|
6
6
|
require('../common/globalStore.cjs');
|
|
7
|
+
require('../common/builder.cjs');
|
|
7
8
|
var override = require('../object/override.cjs');
|
|
8
9
|
|
|
9
10
|
const arrayReduceFromKind = kind.createKind("array-reduce-from");
|
package/dist/array/reduce.mjs
CHANGED
|
@@ -2,6 +2,7 @@ import { createKind } from '../common/kind.mjs';
|
|
|
2
2
|
import { wrapValue } from '../common/wrapValue.mjs';
|
|
3
3
|
import { unwrap } from '../common/unwrap.mjs';
|
|
4
4
|
import '../common/globalStore.mjs';
|
|
5
|
+
import '../common/builder.mjs';
|
|
5
6
|
import { override } from '../object/override.mjs';
|
|
6
7
|
|
|
7
8
|
const arrayReduceFromKind = createKind("array-reduce-from");
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var globalStore = require('./globalStore.cjs');
|
|
4
|
+
var kind$1 = require('./kind.cjs');
|
|
5
|
+
var wrapValue = require('./wrapValue.cjs');
|
|
6
|
+
var unwrap = require('./unwrap.cjs');
|
|
7
|
+
|
|
8
|
+
const SymbolBuilderStore = Symbol.for("@duplojs/utils/builder");
|
|
9
|
+
const builderStore = globalStore.createGlobalStore(SymbolBuilderStore, {});
|
|
10
|
+
const createBuilderKind = kind$1.createKindNamespace(
|
|
11
|
+
// @ts-expect-error reserved kind
|
|
12
|
+
"DuplojsUtilsBuilder");
|
|
13
|
+
const builderKind = createBuilderKind("base");
|
|
14
|
+
const builderNextKind = createBuilderKind("next");
|
|
15
|
+
const kind = "kind-missing-builder-methods-error";
|
|
16
|
+
class MissingBuilderMethodsError extends Error {
|
|
17
|
+
method;
|
|
18
|
+
constructor(method) {
|
|
19
|
+
super(`Missing builder method: ${method}`);
|
|
20
|
+
this.method = method;
|
|
21
|
+
}
|
|
22
|
+
[kind] = null;
|
|
23
|
+
static instanceof(value) {
|
|
24
|
+
return typeof value === "object"
|
|
25
|
+
&& value?.constructor?.name === "MissingBuilderMethodsError"
|
|
26
|
+
&& kind in value;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function createBuilder(builderName) {
|
|
30
|
+
const store = builderStore.value[builderName] ?? {};
|
|
31
|
+
builderStore.set({
|
|
32
|
+
...builderStore.value,
|
|
33
|
+
[builderName]: store,
|
|
34
|
+
});
|
|
35
|
+
const builderHandler = {
|
|
36
|
+
set(method, theFunction) {
|
|
37
|
+
store[method] = theFunction;
|
|
38
|
+
return builderHandler;
|
|
39
|
+
},
|
|
40
|
+
use(accumulator) {
|
|
41
|
+
return new Proxy(builderKind.addTo(store, accumulator), {
|
|
42
|
+
get(target, prop) {
|
|
43
|
+
if (prop === builderKind.runTimeKey) {
|
|
44
|
+
return target[prop];
|
|
45
|
+
}
|
|
46
|
+
if (!target[prop]) {
|
|
47
|
+
throw new MissingBuilderMethodsError(prop);
|
|
48
|
+
}
|
|
49
|
+
const theFunction = target[prop];
|
|
50
|
+
return (...args) => {
|
|
51
|
+
const result = theFunction({
|
|
52
|
+
args,
|
|
53
|
+
accumulator,
|
|
54
|
+
next: (newAccumulator) => builderNextKind.addTo(wrapValue.wrapValue(newAccumulator)),
|
|
55
|
+
});
|
|
56
|
+
if (builderNextKind.has(result)) {
|
|
57
|
+
return builderHandler.use(unwrap.unwrap(result));
|
|
58
|
+
}
|
|
59
|
+
return result;
|
|
60
|
+
};
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
return builderHandler;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
exports.MissingBuilderMethodsError = MissingBuilderMethodsError;
|
|
69
|
+
exports.builderKind = builderKind;
|
|
70
|
+
exports.createBuilder = createBuilder;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type GetPropsWithValueExtends } from "../object";
|
|
2
|
+
import { type Adaptor, type AnyFunction } from "./types";
|
|
3
|
+
import { type Kind, type GetKindValue } from "./kind";
|
|
4
|
+
import { type WrappedValue } from "./wrapValue";
|
|
5
|
+
declare const SymbolBuilderStore: unique symbol;
|
|
6
|
+
declare module "./globalStore" {
|
|
7
|
+
interface GlobalStore {
|
|
8
|
+
[SymbolBuilderStore]: Record<string, Record<string, Parameters<BuilderHandler["set"]>[1]>>;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export declare const builderKind: import("./kind").KindHandler<import("./kind").KindDefinition<"@DuplojsUtilsBuilder/base", object>>;
|
|
12
|
+
export interface Builder<GenericAccumulator extends object = object> extends Kind<typeof builderKind.definition, GenericAccumulator> {
|
|
13
|
+
}
|
|
14
|
+
declare const builderNextKind: import("./kind").KindHandler<import("./kind").KindDefinition<"@DuplojsUtilsBuilder/next", unknown>>;
|
|
15
|
+
interface BuilderNext<GenericValue extends object = object> extends WrappedValue<GenericValue>, Kind<typeof builderNextKind.definition> {
|
|
16
|
+
}
|
|
17
|
+
export interface BuilderHandlerSetFunctionParams<GenericArgs extends unknown[], GenericValue extends object> {
|
|
18
|
+
args: GenericArgs;
|
|
19
|
+
accumulator: GenericValue;
|
|
20
|
+
next(newAccumulator: GenericValue): BuilderNext<GenericValue>;
|
|
21
|
+
}
|
|
22
|
+
export interface BuilderHandler<GenericBuilder extends Builder = Builder> {
|
|
23
|
+
set<GenericMethodName extends GetPropsWithValueExtends<GenericBuilder, AnyFunction>, GenericMethod extends Adaptor<GenericBuilder[GenericMethodName], AnyFunction>>(method: GenericMethodName, theFunction: (params: BuilderHandlerSetFunctionParams<Parameters<GenericMethod>, GetKindValue<typeof builderKind, GenericBuilder>>) => ReturnType<GenericMethod> extends GenericBuilder ? BuilderNext<GetKindValue<typeof builderKind, GenericBuilder>> : ReturnType<GenericMethod>): BuilderHandler<GenericBuilder>;
|
|
24
|
+
use<GenericCurrentBuilder extends GenericBuilder>(accumulator: GetKindValue<typeof builderKind, GenericBuilder>): GenericCurrentBuilder;
|
|
25
|
+
}
|
|
26
|
+
declare const kind = "kind-missing-builder-methods-error";
|
|
27
|
+
export declare class MissingBuilderMethodsError extends Error {
|
|
28
|
+
method: string;
|
|
29
|
+
constructor(method: string);
|
|
30
|
+
[kind]: unknown;
|
|
31
|
+
static instanceof(value: unknown): value is MissingBuilderMethodsError;
|
|
32
|
+
}
|
|
33
|
+
export declare function createBuilder<GenericBuilder extends Builder>(builderName: string): BuilderHandler<GenericBuilder>;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { createGlobalStore } from './globalStore.mjs';
|
|
2
|
+
import { createKindNamespace } from './kind.mjs';
|
|
3
|
+
import { wrapValue } from './wrapValue.mjs';
|
|
4
|
+
import { unwrap } from './unwrap.mjs';
|
|
5
|
+
|
|
6
|
+
const SymbolBuilderStore = Symbol.for("@duplojs/utils/builder");
|
|
7
|
+
const builderStore = createGlobalStore(SymbolBuilderStore, {});
|
|
8
|
+
const createBuilderKind = createKindNamespace(
|
|
9
|
+
// @ts-expect-error reserved kind
|
|
10
|
+
"DuplojsUtilsBuilder");
|
|
11
|
+
const builderKind = createBuilderKind("base");
|
|
12
|
+
const builderNextKind = createBuilderKind("next");
|
|
13
|
+
const kind = "kind-missing-builder-methods-error";
|
|
14
|
+
class MissingBuilderMethodsError extends Error {
|
|
15
|
+
method;
|
|
16
|
+
constructor(method) {
|
|
17
|
+
super(`Missing builder method: ${method}`);
|
|
18
|
+
this.method = method;
|
|
19
|
+
}
|
|
20
|
+
[kind] = null;
|
|
21
|
+
static instanceof(value) {
|
|
22
|
+
return typeof value === "object"
|
|
23
|
+
&& value?.constructor?.name === "MissingBuilderMethodsError"
|
|
24
|
+
&& kind in value;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function createBuilder(builderName) {
|
|
28
|
+
const store = builderStore.value[builderName] ?? {};
|
|
29
|
+
builderStore.set({
|
|
30
|
+
...builderStore.value,
|
|
31
|
+
[builderName]: store,
|
|
32
|
+
});
|
|
33
|
+
const builderHandler = {
|
|
34
|
+
set(method, theFunction) {
|
|
35
|
+
store[method] = theFunction;
|
|
36
|
+
return builderHandler;
|
|
37
|
+
},
|
|
38
|
+
use(accumulator) {
|
|
39
|
+
return new Proxy(builderKind.addTo(store, accumulator), {
|
|
40
|
+
get(target, prop) {
|
|
41
|
+
if (prop === builderKind.runTimeKey) {
|
|
42
|
+
return target[prop];
|
|
43
|
+
}
|
|
44
|
+
if (!target[prop]) {
|
|
45
|
+
throw new MissingBuilderMethodsError(prop);
|
|
46
|
+
}
|
|
47
|
+
const theFunction = target[prop];
|
|
48
|
+
return (...args) => {
|
|
49
|
+
const result = theFunction({
|
|
50
|
+
args,
|
|
51
|
+
accumulator,
|
|
52
|
+
next: (newAccumulator) => builderNextKind.addTo(wrapValue(newAccumulator)),
|
|
53
|
+
});
|
|
54
|
+
if (builderNextKind.has(result)) {
|
|
55
|
+
return builderHandler.use(unwrap(result));
|
|
56
|
+
}
|
|
57
|
+
return result;
|
|
58
|
+
};
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
return builderHandler;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export { MissingBuilderMethodsError, builderKind, createBuilder };
|
package/dist/common/index.d.ts
CHANGED
package/dist/common/kind.d.ts
CHANGED
|
@@ -40,8 +40,9 @@ export declare const keyKindPrefix = "@duplojs/utils/kind/";
|
|
|
40
40
|
type ForbiddenKindCharacters<GenericValue extends string> = ForbiddenString<GenericValue, "@" | "/">;
|
|
41
41
|
export declare function createKind<GenericName extends string, GenericKindValue extends unknown = unknown>(name: GenericName & ForbiddenKindCharacters<GenericName>): KindHandler<KindDefinition<GenericName, GenericKindValue>>;
|
|
42
42
|
export interface ReservedKindNamespace {
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
DuplojsUtilsEither: true;
|
|
44
|
+
DuplojsUtilsDataParser: true;
|
|
45
|
+
DuplojsUtilsBuilder: true;
|
|
45
46
|
}
|
|
46
47
|
type ForbiddenKindNamespace<GenericValue extends string> = (ForbiddenKindCharacters<GenericValue> & ForbiddenString<GenericValue, GetPropsWithValue<ReservedKindNamespace, true>>);
|
|
47
48
|
export declare function createKindNamespace<GenericNamespace extends string>(namespace: GenericNamespace & ForbiddenKindNamespace<GenericNamespace>): <GenericName extends string, GenericKindValue extends unknown = unknown>(name: GenericName & ForbiddenKindCharacters<GenericName>) => KindHandler<KindDefinition<`@${GenericNamespace}/${GenericName}`, GenericKindValue>>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { type IsEqual } from "./isEqual";
|
|
2
|
-
export type UnionContain<GenericUnion extends unknown, GenericValue extends unknown> = IsEqual<(GenericUnion extends any ? IsEqual<GenericUnion, GenericValue> : never) | false, boolean>;
|
|
2
|
+
export type UnionContain<GenericUnion extends unknown, GenericValue extends unknown> = IsEqual<GenericValue extends any ? IsEqual<(GenericUnion extends any ? IsEqual<GenericUnion, GenericValue> : never) | false, boolean> : never, true>;
|
package/dist/dataParser/base.cjs
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var simpleClone = require('../common/simpleClone.cjs');
|
|
4
4
|
require('../common/globalStore.cjs');
|
|
5
|
+
require('../common/builder.cjs');
|
|
5
6
|
var error = require('./error.cjs');
|
|
6
7
|
var error$1 = require('../either/left/error.cjs');
|
|
7
8
|
var success = require('../either/right/success.cjs');
|
|
@@ -9,9 +10,9 @@ var kind = require('./kind.cjs');
|
|
|
9
10
|
|
|
10
11
|
const SymbolDataParserErrorLabel = "SymbolDataParserError";
|
|
11
12
|
const SymbolDataParserError = Symbol.for(SymbolDataParserErrorLabel);
|
|
12
|
-
const
|
|
13
|
+
const checkerKind = kind.createDataParserKind("checker");
|
|
13
14
|
function dataParserCheckerInit(kind, params, exec) {
|
|
14
|
-
return kind.setTo(
|
|
15
|
+
return kind.setTo(checkerKind.setTo({
|
|
15
16
|
...params,
|
|
16
17
|
exec,
|
|
17
18
|
}));
|
|
@@ -111,7 +112,7 @@ function dataParserInit(kind, params, exec) {
|
|
|
111
112
|
|
|
112
113
|
exports.SymbolDataParserError = SymbolDataParserError;
|
|
113
114
|
exports.SymbolDataParserErrorLabel = SymbolDataParserErrorLabel;
|
|
115
|
+
exports.checkerKind = checkerKind;
|
|
114
116
|
exports.dataParserCheckerInit = dataParserCheckerInit;
|
|
115
|
-
exports.dataParserCheckerKind = dataParserCheckerKind;
|
|
116
117
|
exports.dataParserInit = dataParserInit;
|
|
117
118
|
exports.dataParserKind = dataParserKind;
|
|
@@ -4,16 +4,16 @@ import * as DEither from "../either";
|
|
|
4
4
|
export declare const SymbolDataParserErrorLabel = "SymbolDataParserError";
|
|
5
5
|
export declare const SymbolDataParserError: unique symbol;
|
|
6
6
|
export type SymbolDataParserError = typeof SymbolDataParserError;
|
|
7
|
-
export declare const
|
|
7
|
+
export declare const checkerKind: KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/checker", unknown>>;
|
|
8
8
|
export interface DataParserCheckerDefinition {
|
|
9
9
|
readonly errorMessage?: string;
|
|
10
10
|
}
|
|
11
|
-
export interface DataParserChecker<GenericDefinition extends DataParserCheckerDefinition = DataParserCheckerDefinition, GenericInput extends AnyValue = AnyValue> extends Kind<typeof
|
|
11
|
+
export interface DataParserChecker<GenericDefinition extends DataParserCheckerDefinition = DataParserCheckerDefinition, GenericInput extends AnyValue = AnyValue> extends Kind<typeof checkerKind.definition, GenericInput> {
|
|
12
12
|
readonly definition: GenericDefinition;
|
|
13
13
|
exec(data: GenericInput, self: this): GenericInput | SymbolDataParserErrorIssue;
|
|
14
14
|
}
|
|
15
|
-
export declare function dataParserCheckerInit<GenericDataParserChecker extends DataParserChecker>(kind: Exclude<GetKindHandler<GenericDataParserChecker>, typeof
|
|
16
|
-
export declare const dataParserKind: KindHandler<import("../common").KindDefinition<"@
|
|
15
|
+
export declare function dataParserCheckerInit<GenericDataParserChecker extends DataParserChecker>(kind: Exclude<GetKindHandler<GenericDataParserChecker>, typeof checkerKind>, params: NoInfer<Omit<RemoveKind<GenericDataParserChecker>, "exec">>, exec: (...args: Parameters<GenericDataParserChecker["exec"]>) => GetKindValue<typeof checkerKind, GenericDataParserChecker> | SymbolDataParserErrorIssue): GenericDataParserChecker;
|
|
16
|
+
export declare const dataParserKind: KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
|
|
17
17
|
input: unknown;
|
|
18
18
|
output: unknown;
|
|
19
19
|
}>>;
|
package/dist/dataParser/base.mjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { simpleClone } from '../common/simpleClone.mjs';
|
|
2
2
|
import '../common/globalStore.mjs';
|
|
3
|
+
import '../common/builder.mjs';
|
|
3
4
|
import { createError, SymbolDataParserErrorIssue, addIssue, SymbolDataParserErrorPromiseIssue, addPromiseIssue } from './error.mjs';
|
|
4
5
|
import { error } from '../either/left/error.mjs';
|
|
5
6
|
import { success } from '../either/right/success.mjs';
|
|
@@ -7,9 +8,9 @@ import { createDataParserKind } from './kind.mjs';
|
|
|
7
8
|
|
|
8
9
|
const SymbolDataParserErrorLabel = "SymbolDataParserError";
|
|
9
10
|
const SymbolDataParserError = Symbol.for(SymbolDataParserErrorLabel);
|
|
10
|
-
const
|
|
11
|
+
const checkerKind = createDataParserKind("checker");
|
|
11
12
|
function dataParserCheckerInit(kind, params, exec) {
|
|
12
|
-
return kind.setTo(
|
|
13
|
+
return kind.setTo(checkerKind.setTo({
|
|
13
14
|
...params,
|
|
14
15
|
exec,
|
|
15
16
|
}));
|
|
@@ -107,4 +108,4 @@ function dataParserInit(kind, params, exec) {
|
|
|
107
108
|
return dataParser;
|
|
108
109
|
}
|
|
109
110
|
|
|
110
|
-
export { SymbolDataParserError, SymbolDataParserErrorLabel,
|
|
111
|
+
export { SymbolDataParserError, SymbolDataParserErrorLabel, checkerKind, dataParserCheckerInit, dataParserInit, dataParserKind };
|
|
@@ -6,6 +6,7 @@ var fromEntries = require('../object/fromEntries.cjs');
|
|
|
6
6
|
var entry = require('../object/entry.cjs');
|
|
7
7
|
var map = require('../array/map.cjs');
|
|
8
8
|
require('../common/globalStore.cjs');
|
|
9
|
+
require('../common/builder.cjs');
|
|
9
10
|
var kind = require('./kind.cjs');
|
|
10
11
|
require('../pattern/result.cjs');
|
|
11
12
|
var array = require('./extended/array.cjs');
|
|
@@ -15,9 +16,9 @@ var nullable = require('./extended/nullable.cjs');
|
|
|
15
16
|
var optional = require('./extended/optional.cjs');
|
|
16
17
|
var pipe$1 = require('./extended/pipe.cjs');
|
|
17
18
|
|
|
18
|
-
const
|
|
19
|
+
const extendedKind = kind.createDataParserKind("extended");
|
|
19
20
|
function dataParserExtendedInit(dataParser, rest) {
|
|
20
|
-
const self =
|
|
21
|
+
const self = extendedKind.setTo({
|
|
21
22
|
...dataParser,
|
|
22
23
|
...pipe.pipe(rest, entries.entries, map.map(([key, value]) => entry.entry(key, typeof value === "function"
|
|
23
24
|
? (...args) => value(self, ...args)
|
|
@@ -53,4 +54,4 @@ function dataParserExtendedInit(dataParser, rest) {
|
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
exports.dataParserExtendedInit = dataParserExtendedInit;
|
|
56
|
-
exports.
|
|
57
|
+
exports.extendedKind = extendedKind;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { type Kind, type NeverCoalescing, type AnyFunction, type SimplifyTopLevel, type AnyValue } from "../common";
|
|
2
|
-
import { type
|
|
2
|
+
import { type MergeDefinition } from "./types";
|
|
3
3
|
import { type Output, type DataParser } from "./base";
|
|
4
4
|
import type * as dataParsers from "./parsers";
|
|
5
5
|
import * as dataParsersExtended from "./extended";
|
|
6
6
|
import { type DataParserError } from "./error";
|
|
7
|
-
export declare const
|
|
8
|
-
type _DataParserExtended = (DataParser & Kind<typeof
|
|
7
|
+
export declare const extendedKind: import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/extended", unknown>>;
|
|
8
|
+
type _DataParserExtended = (DataParser & Kind<typeof extendedKind.definition>);
|
|
9
9
|
export interface DataParserExtended extends _DataParserExtended {
|
|
10
10
|
array<GenericThis extends this = this, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionArray, "element">> = never>(definition?: GenericDefinition): dataParsersExtended.DataParserArrayExtended<MergeDefinition<dataParsers.DataParserDefinitionArray, NeverCoalescing<GenericDefinition, {}> & {
|
|
11
11
|
element: GenericThis;
|
|
@@ -25,7 +25,7 @@ export interface DataParserExtended extends _DataParserExtended {
|
|
|
25
25
|
}>>
|
|
26
26
|
];
|
|
27
27
|
}>>;
|
|
28
|
-
pipe<GenericThis extends this = this, GenericOutput extends
|
|
28
|
+
pipe<GenericThis extends this = this, GenericOutput extends DataParser = DataParser, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionPipe, "input" | "output">> = never>(output: GenericOutput, definition?: GenericDefinition): dataParsersExtended.DataParserPipeExtended<MergeDefinition<dataParsers.DataParserDefinitionPipe, NeverCoalescing<GenericDefinition, {}> & {
|
|
29
29
|
input: GenericThis;
|
|
30
30
|
output: GenericOutput;
|
|
31
31
|
}>>;
|
|
@@ -35,7 +35,7 @@ export interface DataParserExtended extends _DataParserExtended {
|
|
|
35
35
|
optional<GenericThis extends this = this, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionOptional, "inner">> = never>(definition?: GenericDefinition): dataParsersExtended.DataParserOptionalExtended<MergeDefinition<dataParsers.DataParserDefinitionOptional, NeverCoalescing<GenericDefinition, {}> & {
|
|
36
36
|
inner: GenericThis;
|
|
37
37
|
}>>;
|
|
38
|
-
or<GenericThis extends this = this, GenericDataParser extends
|
|
38
|
+
or<GenericThis extends this = this, GenericDataParser extends DataParser = DataParser, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionUnion, "options">> = never>(option: GenericDataParser, definition?: GenericDefinition): dataParsersExtended.DataParserUnionExtended<MergeDefinition<dataParsers.DataParserDefinitionUnion, NeverCoalescing<GenericDefinition, {}> & {
|
|
39
39
|
options: [GenericThis, GenericDataParser];
|
|
40
40
|
}>>;
|
|
41
41
|
}
|
|
@@ -4,6 +4,7 @@ import { fromEntries } from '../object/fromEntries.mjs';
|
|
|
4
4
|
import { entry } from '../object/entry.mjs';
|
|
5
5
|
import { map } from '../array/map.mjs';
|
|
6
6
|
import '../common/globalStore.mjs';
|
|
7
|
+
import '../common/builder.mjs';
|
|
7
8
|
import { createDataParserKind } from './kind.mjs';
|
|
8
9
|
import '../pattern/result.mjs';
|
|
9
10
|
import { array } from './extended/array.mjs';
|
|
@@ -13,9 +14,9 @@ import { nullable } from './extended/nullable.mjs';
|
|
|
13
14
|
import { optional } from './extended/optional.mjs';
|
|
14
15
|
import { pipe as pipe$1 } from './extended/pipe.mjs';
|
|
15
16
|
|
|
16
|
-
const
|
|
17
|
+
const extendedKind = createDataParserKind("extended");
|
|
17
18
|
function dataParserExtendedInit(dataParser, rest) {
|
|
18
|
-
const self =
|
|
19
|
+
const self = extendedKind.setTo({
|
|
19
20
|
...dataParser,
|
|
20
21
|
...pipe(rest, entries, map(([key, value]) => entry(key, typeof value === "function"
|
|
21
22
|
? (...args) => value(self, ...args)
|
|
@@ -50,4 +51,4 @@ function dataParserExtendedInit(dataParser, rest) {
|
|
|
50
51
|
return self;
|
|
51
52
|
}
|
|
52
53
|
|
|
53
|
-
export { dataParserExtendedInit,
|
|
54
|
+
export { dataParserExtendedInit, extendedKind };
|
|
@@ -4,19 +4,19 @@ var kind = require('./kind.cjs');
|
|
|
4
4
|
|
|
5
5
|
const SymbolDataParserErrorIssueLabel = "SymbolDataParserErrorIssue";
|
|
6
6
|
const SymbolDataParserErrorIssue = Symbol.for(SymbolDataParserErrorIssueLabel);
|
|
7
|
-
const
|
|
7
|
+
const errorIssueKind = kind.createDataParserKind("error-issue");
|
|
8
8
|
const SymbolDataParserErrorPromiseIssueLabel = "SymbolDataParserErrorPromiseIssue";
|
|
9
9
|
const SymbolDataParserErrorPromiseIssue = Symbol.for(SymbolDataParserErrorPromiseIssueLabel);
|
|
10
|
-
const
|
|
11
|
-
const
|
|
10
|
+
const errorPromiseIssueKind = kind.createDataParserKind("error-issue-promise");
|
|
11
|
+
const errorKind = kind.createDataParserKind("error");
|
|
12
12
|
function createError() {
|
|
13
|
-
return
|
|
13
|
+
return errorKind.setTo({
|
|
14
14
|
issues: [],
|
|
15
15
|
currentPath: [],
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
function addIssue(error, source, data) {
|
|
19
|
-
error.issues.push(
|
|
19
|
+
error.issues.push(errorIssueKind.setTo({
|
|
20
20
|
source,
|
|
21
21
|
path: error.currentPath.join("."),
|
|
22
22
|
data,
|
|
@@ -24,7 +24,7 @@ function addIssue(error, source, data) {
|
|
|
24
24
|
return error;
|
|
25
25
|
}
|
|
26
26
|
function addPromiseIssue(error, source, data) {
|
|
27
|
-
error.issues.push(
|
|
27
|
+
error.issues.push(errorPromiseIssueKind.setTo({
|
|
28
28
|
source,
|
|
29
29
|
path: error.currentPath.join("."),
|
|
30
30
|
data,
|
|
@@ -47,8 +47,8 @@ exports.SymbolDataParserErrorPromiseIssueLabel = SymbolDataParserErrorPromiseIss
|
|
|
47
47
|
exports.addIssue = addIssue;
|
|
48
48
|
exports.addPromiseIssue = addPromiseIssue;
|
|
49
49
|
exports.createError = createError;
|
|
50
|
-
exports.
|
|
51
|
-
exports.
|
|
52
|
-
exports.
|
|
50
|
+
exports.errorIssueKind = errorIssueKind;
|
|
51
|
+
exports.errorKind = errorKind;
|
|
52
|
+
exports.errorPromiseIssueKind = errorPromiseIssueKind;
|
|
53
53
|
exports.popErrorPath = popErrorPath;
|
|
54
54
|
exports.setErrorPath = setErrorPath;
|
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
import { type Kind } from "../common";
|
|
2
|
-
import { type DataParsers, type Checkers } from "./types";
|
|
3
2
|
import { type DataParserTransform } from "./parsers";
|
|
3
|
+
import { type DataParser } from "./base";
|
|
4
|
+
import { type DataParserCheckers } from "./types";
|
|
4
5
|
export declare const SymbolDataParserErrorIssueLabel = "SymbolDataParserErrorIssue";
|
|
5
6
|
export declare const SymbolDataParserErrorIssue: unique symbol;
|
|
6
7
|
export type SymbolDataParserErrorIssue = typeof SymbolDataParserErrorIssue;
|
|
7
|
-
export declare const
|
|
8
|
-
export interface DataParserErrorIssue extends Kind<typeof
|
|
9
|
-
readonly source:
|
|
8
|
+
export declare const errorIssueKind: import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/error-issue", unknown>>;
|
|
9
|
+
export interface DataParserErrorIssue extends Kind<typeof errorIssueKind.definition> {
|
|
10
|
+
readonly source: DataParser | DataParserCheckers;
|
|
10
11
|
readonly path: string;
|
|
11
12
|
readonly data: unknown;
|
|
12
13
|
}
|
|
13
14
|
export declare const SymbolDataParserErrorPromiseIssueLabel = "SymbolDataParserErrorPromiseIssue";
|
|
14
15
|
export declare const SymbolDataParserErrorPromiseIssue: unique symbol;
|
|
15
16
|
export type SymbolDataParserErrorPromiseIssue = typeof SymbolDataParserErrorPromiseIssue;
|
|
16
|
-
export declare const
|
|
17
|
-
export interface DataParserErrorPromiseIssue extends Kind<typeof
|
|
17
|
+
export declare const errorPromiseIssueKind: import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/error-issue-promise", unknown>>;
|
|
18
|
+
export interface DataParserErrorPromiseIssue extends Kind<typeof errorPromiseIssueKind.definition> {
|
|
18
19
|
readonly source: DataParserTransform;
|
|
19
20
|
readonly path: string;
|
|
20
21
|
readonly data: unknown;
|
|
21
22
|
}
|
|
22
|
-
export declare const
|
|
23
|
-
export interface DataParserError extends Kind<typeof
|
|
23
|
+
export declare const errorKind: import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/error", unknown>>;
|
|
24
|
+
export interface DataParserError extends Kind<typeof errorKind.definition> {
|
|
24
25
|
readonly issues: (DataParserErrorIssue | DataParserErrorPromiseIssue)[];
|
|
25
26
|
readonly currentPath: string[];
|
|
26
27
|
}
|
|
27
28
|
export declare function createError(): DataParserError;
|
|
28
|
-
export declare function addIssue(error: DataParserError, source:
|
|
29
|
+
export declare function addIssue(error: DataParserError, source: DataParser | DataParserCheckers, data: unknown): DataParserError;
|
|
29
30
|
export declare function addPromiseIssue(error: DataParserError, source: DataParserTransform, data: unknown): DataParserError;
|
|
30
31
|
export declare function setErrorPath(error: DataParserError, value: string, index: number): DataParserError;
|
|
31
32
|
export declare function popErrorPath(error: DataParserError): DataParserError;
|
|
@@ -2,19 +2,19 @@ import { createDataParserKind } from './kind.mjs';
|
|
|
2
2
|
|
|
3
3
|
const SymbolDataParserErrorIssueLabel = "SymbolDataParserErrorIssue";
|
|
4
4
|
const SymbolDataParserErrorIssue = Symbol.for(SymbolDataParserErrorIssueLabel);
|
|
5
|
-
const
|
|
5
|
+
const errorIssueKind = createDataParserKind("error-issue");
|
|
6
6
|
const SymbolDataParserErrorPromiseIssueLabel = "SymbolDataParserErrorPromiseIssue";
|
|
7
7
|
const SymbolDataParserErrorPromiseIssue = Symbol.for(SymbolDataParserErrorPromiseIssueLabel);
|
|
8
|
-
const
|
|
9
|
-
const
|
|
8
|
+
const errorPromiseIssueKind = createDataParserKind("error-issue-promise");
|
|
9
|
+
const errorKind = createDataParserKind("error");
|
|
10
10
|
function createError() {
|
|
11
|
-
return
|
|
11
|
+
return errorKind.setTo({
|
|
12
12
|
issues: [],
|
|
13
13
|
currentPath: [],
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
16
|
function addIssue(error, source, data) {
|
|
17
|
-
error.issues.push(
|
|
17
|
+
error.issues.push(errorIssueKind.setTo({
|
|
18
18
|
source,
|
|
19
19
|
path: error.currentPath.join("."),
|
|
20
20
|
data,
|
|
@@ -22,7 +22,7 @@ function addIssue(error, source, data) {
|
|
|
22
22
|
return error;
|
|
23
23
|
}
|
|
24
24
|
function addPromiseIssue(error, source, data) {
|
|
25
|
-
error.issues.push(
|
|
25
|
+
error.issues.push(errorPromiseIssueKind.setTo({
|
|
26
26
|
source,
|
|
27
27
|
path: error.currentPath.join("."),
|
|
28
28
|
data,
|
|
@@ -38,4 +38,4 @@ function popErrorPath(error) {
|
|
|
38
38
|
return error;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
export { SymbolDataParserErrorIssue, SymbolDataParserErrorIssueLabel, SymbolDataParserErrorPromiseIssue, SymbolDataParserErrorPromiseIssueLabel, addIssue, addPromiseIssue, createError,
|
|
41
|
+
export { SymbolDataParserErrorIssue, SymbolDataParserErrorIssueLabel, SymbolDataParserErrorPromiseIssue, SymbolDataParserErrorPromiseIssueLabel, addIssue, addPromiseIssue, createError, errorIssueKind, errorKind, errorPromiseIssueKind, popErrorPath, setErrorPath };
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var baseExtended = require('../baseExtended.cjs');
|
|
4
4
|
require('../../common/globalStore.cjs');
|
|
5
|
+
require('../../common/builder.cjs');
|
|
5
6
|
var index = require('../parsers/array/index.cjs');
|
|
6
7
|
require('../../pattern/result.cjs');
|
|
7
8
|
var max = require('../parsers/array/checkers/max.cjs');
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type NeverCoalescing } from "../../common";
|
|
2
2
|
import { type DataParserExtended } from "../baseExtended";
|
|
3
|
-
import { type AddCheckersToDefinition, type
|
|
3
|
+
import { type AddCheckersToDefinition, type MergeDefinition } from "../types";
|
|
4
4
|
import * as dataParsers from "../parsers";
|
|
5
|
+
import { type DataParser } from "../base";
|
|
5
6
|
type _DataParserArrayExtended<GenericDefinition extends dataParsers.DataParserDefinitionArray> = (dataParsers.DataParserArray<GenericDefinition> & DataParserExtended);
|
|
6
7
|
export interface DataParserArrayExtended<GenericDefinition extends dataParsers.DataParserDefinitionArray = dataParsers.DataParserDefinitionArray> extends _DataParserArrayExtended<GenericDefinition> {
|
|
7
8
|
addChecker<GenericChecker extends readonly [
|
|
@@ -15,7 +16,7 @@ export interface DataParserArrayExtended<GenericDefinition extends dataParsers.D
|
|
|
15
16
|
dataParsers.DataParserCheckerArrayMax
|
|
16
17
|
]>>;
|
|
17
18
|
}
|
|
18
|
-
export declare function array<GenericElement extends
|
|
19
|
+
export declare function array<GenericElement extends DataParser, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionArray, "element">> = never>(element: GenericElement, definition?: GenericDefinition): DataParserArrayExtended<MergeDefinition<dataParsers.DataParserDefinitionArray, NeverCoalescing<GenericDefinition, {}> & {
|
|
19
20
|
element: GenericElement;
|
|
20
21
|
}>>;
|
|
21
22
|
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { dataParserExtendedInit } from '../baseExtended.mjs';
|
|
2
2
|
import '../../common/globalStore.mjs';
|
|
3
|
+
import '../../common/builder.mjs';
|
|
3
4
|
import { array as array$1 } from '../parsers/array/index.mjs';
|
|
4
5
|
import '../../pattern/result.mjs';
|
|
5
6
|
import { checkerArrayMax } from '../parsers/array/checkers/max.mjs';
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var baseExtended = require('../baseExtended.cjs');
|
|
4
4
|
require('../../common/globalStore.cjs');
|
|
5
|
+
require('../../common/builder.cjs');
|
|
5
6
|
var index = require('../parsers/bigint/index.cjs');
|
|
6
7
|
require('../../pattern/result.cjs');
|
|
7
8
|
var max = require('../parsers/bigint/checkers/max.cjs');
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { dataParserExtendedInit } from '../baseExtended.mjs';
|
|
2
2
|
import '../../common/globalStore.mjs';
|
|
3
|
+
import '../../common/builder.mjs';
|
|
3
4
|
import { bigint as bigint$1 } from '../parsers/bigint/index.mjs';
|
|
4
5
|
import '../../pattern/result.mjs';
|
|
5
6
|
import { checkerBigIntMax } from '../parsers/bigint/checkers/max.mjs';
|