@duplojs/utils 1.4.52 → 1.4.54
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/clean/constraint/base.cjs +5 -2
- package/dist/clean/constraint/base.d.ts +3 -0
- package/dist/clean/constraint/base.mjs +5 -2
- package/dist/clean/constraint/defaultConstraint/number.cjs +8 -0
- package/dist/clean/constraint/defaultConstraint/number.d.ts +29 -0
- package/dist/clean/constraint/defaultConstraint/number.mjs +8 -1
- package/dist/clean/constraint/set.cjs +5 -3
- package/dist/clean/constraint/set.d.ts +4 -1
- package/dist/clean/constraint/set.mjs +5 -3
- package/dist/clean/entity.cjs +5 -3
- package/dist/clean/entity.d.ts +3 -0
- package/dist/clean/entity.mjs +5 -3
- package/dist/clean/flag.cjs +5 -2
- package/dist/clean/flag.d.ts +3 -0
- package/dist/clean/flag.mjs +5 -2
- package/dist/clean/index.cjs +4 -0
- package/dist/clean/index.d.ts +1 -0
- package/dist/clean/index.mjs +2 -1
- package/dist/clean/maybe.cjs +21 -0
- package/dist/clean/maybe.d.ts +135 -0
- package/dist/clean/maybe.mjs +18 -0
- package/dist/clean/newType.cjs +5 -3
- package/dist/clean/newType.d.ts +3 -0
- package/dist/clean/newType.mjs +5 -3
- package/dist/clean/primitive/base.cjs +5 -2
- package/dist/clean/primitive/base.mjs +5 -2
- package/dist/clean/repository.cjs +5 -2
- package/dist/clean/repository.d.ts +3 -0
- package/dist/clean/repository.mjs +5 -2
- package/dist/clean/useCase.cjs +10 -5
- package/dist/clean/useCase.d.ts +14 -7
- package/dist/clean/useCase.mjs +10 -5
- package/dist/dataParser/base.d.ts +2 -2
- package/dist/dataParser/baseExtended.cjs +5 -5
- package/dist/dataParser/baseExtended.d.ts +3 -3
- package/dist/dataParser/baseExtended.mjs +5 -5
- package/dist/dataParser/extended/array.cjs +2 -2
- package/dist/dataParser/extended/array.mjs +2 -2
- package/dist/dataParser/extended/bigint.cjs +2 -2
- package/dist/dataParser/extended/bigint.mjs +2 -2
- package/dist/dataParser/extended/boolean.cjs +2 -2
- package/dist/dataParser/extended/boolean.mjs +2 -2
- package/dist/dataParser/extended/date.cjs +2 -2
- package/dist/dataParser/extended/date.mjs +2 -2
- package/dist/dataParser/extended/empty.cjs +2 -2
- package/dist/dataParser/extended/empty.mjs +2 -2
- package/dist/dataParser/extended/lazy.cjs +2 -2
- package/dist/dataParser/extended/lazy.mjs +2 -2
- package/dist/dataParser/extended/literal.cjs +2 -2
- package/dist/dataParser/extended/literal.mjs +2 -2
- package/dist/dataParser/extended/nil.cjs +2 -2
- package/dist/dataParser/extended/nil.mjs +2 -2
- package/dist/dataParser/extended/nullable.cjs +2 -2
- package/dist/dataParser/extended/nullable.mjs +2 -2
- package/dist/dataParser/extended/number.cjs +2 -2
- package/dist/dataParser/extended/number.mjs +2 -2
- package/dist/dataParser/extended/object.cjs +2 -2
- package/dist/dataParser/extended/object.mjs +2 -2
- package/dist/dataParser/extended/optional.cjs +2 -2
- package/dist/dataParser/extended/optional.mjs +2 -2
- package/dist/dataParser/extended/pipe.cjs +2 -2
- package/dist/dataParser/extended/pipe.mjs +2 -2
- package/dist/dataParser/extended/record.cjs +2 -2
- package/dist/dataParser/extended/record.mjs +2 -2
- package/dist/dataParser/extended/recover.cjs +2 -2
- package/dist/dataParser/extended/recover.mjs +2 -2
- package/dist/dataParser/extended/string.cjs +2 -2
- package/dist/dataParser/extended/string.mjs +2 -2
- package/dist/dataParser/extended/templateLiteral.cjs +2 -2
- package/dist/dataParser/extended/templateLiteral.mjs +2 -2
- package/dist/dataParser/extended/time.cjs +2 -2
- package/dist/dataParser/extended/time.mjs +2 -2
- package/dist/dataParser/extended/transform.cjs +2 -2
- package/dist/dataParser/extended/transform.mjs +2 -2
- package/dist/dataParser/extended/tuple.cjs +2 -2
- package/dist/dataParser/extended/tuple.mjs +2 -2
- package/dist/dataParser/extended/union.cjs +2 -2
- package/dist/dataParser/extended/union.mjs +2 -2
- package/dist/dataParser/extended/unknown.cjs +2 -2
- package/dist/dataParser/extended/unknown.mjs +2 -2
- package/dist/metadata.json +9 -0
- package/dist/string/types/forbiddenString.d.ts +1 -2
- package/package.json +1 -1
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
var kind = require('../kind.cjs');
|
|
4
4
|
var kind$1 = require('../../common/kind.cjs');
|
|
5
5
|
var coalescing = require('../../array/coalescing.cjs');
|
|
6
|
+
var pipe = require('../../common/pipe.cjs');
|
|
6
7
|
var errorKindNamespace = require('../../common/errorKindNamespace.cjs');
|
|
8
|
+
var override = require('../../common/override.cjs');
|
|
7
9
|
var is = require('../../either/left/is.cjs');
|
|
8
10
|
var unwrap = require('../../common/unwrap.cjs');
|
|
9
11
|
var create = require('../../either/left/create.cjs');
|
|
@@ -62,7 +64,7 @@ function createConstraint(name, primitiveHandler, checker) {
|
|
|
62
64
|
}
|
|
63
65
|
return false;
|
|
64
66
|
}
|
|
65
|
-
return
|
|
67
|
+
return pipe.pipe({
|
|
66
68
|
name,
|
|
67
69
|
primitiveHandler,
|
|
68
70
|
checkers,
|
|
@@ -71,8 +73,9 @@ function createConstraint(name, primitiveHandler, checker) {
|
|
|
71
73
|
createWithUnknown: create$2,
|
|
72
74
|
createWithUnknownOrThrow: createOrThrow,
|
|
73
75
|
is: is$1,
|
|
74
|
-
});
|
|
76
|
+
}, constraintHandlerKind.setTo, createConstraint.overrideHandler.apply);
|
|
75
77
|
}
|
|
78
|
+
createConstraint.overrideHandler = override.createOverride("@duplojs/utils/clean/constraint");
|
|
76
79
|
|
|
77
80
|
exports.CreateConstrainedTypeError = CreateConstrainedTypeError;
|
|
78
81
|
exports.constrainedTypeKind = constrainedTypeKind;
|
|
@@ -138,5 +138,8 @@ export declare function createConstraint<GenericName extends string, GenericPrim
|
|
|
138
138
|
DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, GenericPrimitiveValue>,
|
|
139
139
|
...DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, GenericPrimitiveValue>[]
|
|
140
140
|
]) = never>(name: GenericName, primitiveHandler: PrimitiveHandler<GenericPrimitiveValue>, checker: GenericChecker): ConstraintHandler<GenericName, GenericPrimitiveValue, DArray.ArrayCoalescing<GenericChecker>>;
|
|
141
|
+
export declare namespace createConstraint {
|
|
142
|
+
var overrideHandler: import("../..").OverrideHandler<ConstraintHandler<string, EligiblePrimitive, readonly DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, unknown>[]>>;
|
|
143
|
+
}
|
|
141
144
|
export type GetConstraint<GenericConstrainHandler extends ConstraintHandler, GenericValue extends DDataParser.InputChecker<GenericConstrainHandler["checkers"][number]> = DDataParser.InputChecker<GenericConstrainHandler["checkers"][number]>> = Extract<ConstrainedType<GenericConstrainHandler["name"], GenericValue>, any>;
|
|
142
145
|
export {};
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { createCleanKind } from '../kind.mjs';
|
|
2
2
|
import { kindHeritage } from '../../common/kind.mjs';
|
|
3
3
|
import { coalescing } from '../../array/coalescing.mjs';
|
|
4
|
+
import { pipe } from '../../common/pipe.mjs';
|
|
4
5
|
import { createErrorKind } from '../../common/errorKindNamespace.mjs';
|
|
6
|
+
import { createOverride } from '../../common/override.mjs';
|
|
5
7
|
import { isLeft } from '../../either/left/is.mjs';
|
|
6
8
|
import { unwrap } from '../../common/unwrap.mjs';
|
|
7
9
|
import { left } from '../../either/left/create.mjs';
|
|
@@ -60,7 +62,7 @@ function createConstraint(name, primitiveHandler, checker) {
|
|
|
60
62
|
}
|
|
61
63
|
return false;
|
|
62
64
|
}
|
|
63
|
-
return
|
|
65
|
+
return pipe({
|
|
64
66
|
name,
|
|
65
67
|
primitiveHandler,
|
|
66
68
|
checkers,
|
|
@@ -69,7 +71,8 @@ function createConstraint(name, primitiveHandler, checker) {
|
|
|
69
71
|
createWithUnknown: create,
|
|
70
72
|
createWithUnknownOrThrow: createOrThrow,
|
|
71
73
|
is,
|
|
72
|
-
});
|
|
74
|
+
}, constraintHandlerKind.setTo, createConstraint.overrideHandler.apply);
|
|
73
75
|
}
|
|
76
|
+
createConstraint.overrideHandler = createOverride("@duplojs/utils/clean/constraint");
|
|
74
77
|
|
|
75
78
|
export { CreateConstrainedTypeError, constrainedTypeKind, constraintHandlerKind, createConstraint };
|
|
@@ -30,9 +30,17 @@ function NumberMin(value) {
|
|
|
30
30
|
function NumberMax(value) {
|
|
31
31
|
return base.createConstraint(`number-max-${value}`, base$1.Number, max.checkerNumberMax(value));
|
|
32
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* {@include clean/PositiveInt/index.md}
|
|
35
|
+
*/
|
|
36
|
+
const PositiveInt = base.createConstraint("positive-int", base$1.Number, [
|
|
37
|
+
int.checkerInt(),
|
|
38
|
+
min.checkerNumberMin(1),
|
|
39
|
+
]);
|
|
33
40
|
|
|
34
41
|
exports.Int = Int;
|
|
35
42
|
exports.Negative = Negative;
|
|
36
43
|
exports.NumberMax = NumberMax;
|
|
37
44
|
exports.NumberMin = NumberMin;
|
|
38
45
|
exports.Positive = Positive;
|
|
46
|
+
exports.PositiveInt = PositiveInt;
|
|
@@ -148,3 +148,32 @@ export type NumberMin<GenericValue extends number> = ReturnType<typeof NumberMin
|
|
|
148
148
|
*/
|
|
149
149
|
export declare function NumberMax<GenericValue extends number>(value: GenericValue & OnlyLiteralNumber<GenericValue>): import("..").ConstraintHandler<`number-max-${GenericValue & OnlyLiteralNumber<GenericValue>}`, number, readonly [DDataParser.DataParserCheckerNumberMax]>;
|
|
150
150
|
export type NumberMax<GenericValue extends number> = ReturnType<typeof NumberMax<GenericValue>>;
|
|
151
|
+
/**
|
|
152
|
+
* Constraint handler that validates strictly positive integers (>= 1).
|
|
153
|
+
*
|
|
154
|
+
* **Supported call styles:**
|
|
155
|
+
* - Classic: `PositiveInt.create(value)` -> returns Either
|
|
156
|
+
*
|
|
157
|
+
* Use it as a reusable rule to validate inputs and to constrain NewTypes to positive integer numbers.
|
|
158
|
+
*
|
|
159
|
+
* ```ts
|
|
160
|
+
* const result = C.PositiveInt.create(4);
|
|
161
|
+
*
|
|
162
|
+
* if (E.isRight(result)) {
|
|
163
|
+
* // result: E.Right<"createConstrainedType", C.ConstrainedType<"positive-int", 4>>
|
|
164
|
+
* }
|
|
165
|
+
*
|
|
166
|
+
* const value = C.PositiveInt.createOrThrow(10);
|
|
167
|
+
* // value: C.ConstrainedType<"positive-int", 10>
|
|
168
|
+
*
|
|
169
|
+
* C.PositiveInt.is(value); // type guard
|
|
170
|
+
*
|
|
171
|
+
* ```
|
|
172
|
+
*
|
|
173
|
+
* @see https://utils.duplojs.dev/en/v1/api/clean/constraints
|
|
174
|
+
*
|
|
175
|
+
* @namespace C
|
|
176
|
+
*
|
|
177
|
+
*/
|
|
178
|
+
export declare const PositiveInt: import("..").ConstraintHandler<"positive-int", number, readonly [DDataParser.DataParserCheckerInt, DDataParser.DataParserCheckerNumberMin]>;
|
|
179
|
+
export type PositiveInt = GetConstraint<typeof PositiveInt>;
|
|
@@ -28,5 +28,12 @@ function NumberMin(value) {
|
|
|
28
28
|
function NumberMax(value) {
|
|
29
29
|
return createConstraint(`number-max-${value}`, Number, checkerNumberMax(value));
|
|
30
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* {@include clean/PositiveInt/index.md}
|
|
33
|
+
*/
|
|
34
|
+
const PositiveInt = createConstraint("positive-int", Number, [
|
|
35
|
+
checkerInt(),
|
|
36
|
+
checkerNumberMin(1),
|
|
37
|
+
]);
|
|
31
38
|
|
|
32
|
-
export { Int, Negative, NumberMax, NumberMin, Positive };
|
|
39
|
+
export { Int, Negative, NumberMax, NumberMin, Positive, PositiveInt };
|
|
@@ -9,12 +9,13 @@ var pipe = require('../../common/pipe.cjs');
|
|
|
9
9
|
var map = require('../../array/map.cjs');
|
|
10
10
|
var entry = require('../../object/entry.cjs');
|
|
11
11
|
var errorKindNamespace = require('../../common/errorKindNamespace.cjs');
|
|
12
|
+
var fromEntries = require('../../object/fromEntries.cjs');
|
|
13
|
+
var override = require('../../common/override.cjs');
|
|
12
14
|
var is = require('../../either/left/is.cjs');
|
|
13
15
|
var unwrap = require('../../common/unwrap.cjs');
|
|
14
16
|
var create = require('../../either/left/create.cjs');
|
|
15
17
|
var create$1 = require('../../either/right/create.cjs');
|
|
16
18
|
var wrapValue = require('../../common/wrapValue.cjs');
|
|
17
|
-
var fromEntries = require('../../object/fromEntries.cjs');
|
|
18
19
|
|
|
19
20
|
const constraintsSetHandlerKind = kind.createCleanKind("constraints-set-handler");
|
|
20
21
|
class CreateConstraintsSetError extends kind$1.kindHeritage("create-constraint-set-error", errorKindNamespace.createErrorKind("create-constraint-set-error"), Error) {
|
|
@@ -76,7 +77,7 @@ function createConstraintsSet(primitiveHandler, constraint) {
|
|
|
76
77
|
}
|
|
77
78
|
return true;
|
|
78
79
|
}
|
|
79
|
-
return
|
|
80
|
+
return pipe.pipe({
|
|
80
81
|
primitiveHandler,
|
|
81
82
|
constrains: constraints,
|
|
82
83
|
getConstraint,
|
|
@@ -85,8 +86,9 @@ function createConstraintsSet(primitiveHandler, constraint) {
|
|
|
85
86
|
createWithUnknown: create$2,
|
|
86
87
|
createWithUnknownOrThrow: createOrThrow,
|
|
87
88
|
is: is$1,
|
|
88
|
-
});
|
|
89
|
+
}, constraintsSetHandlerKind.setTo, createConstraintsSet.overrideHandler.apply);
|
|
89
90
|
}
|
|
91
|
+
createConstraintsSet.overrideHandler = override.createOverride("@duplojs/utils/clean/constraints-set");
|
|
90
92
|
|
|
91
93
|
exports.CreateConstraintsSetError = CreateConstraintsSetError;
|
|
92
94
|
exports.constraintsSetHandlerKind = constraintsSetHandlerKind;
|
|
@@ -140,5 +140,8 @@ export declare function createConstraintsSet<GenericPrimitiveValue extends Eligi
|
|
|
140
140
|
ConstraintHandler<string, EligiblePrimitive, readonly DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, GenericPrimitiveValue>[]>,
|
|
141
141
|
...ConstraintHandler<string, EligiblePrimitive, readonly DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, GenericPrimitiveValue>[]>[]
|
|
142
142
|
]) = never>(primitiveHandler: PrimitiveHandler<GenericPrimitiveValue>, constraint: GenericConstrainHandler): ConstraintsSetHandler<GenericPrimitiveValue, DArray.ArrayCoalescing<GenericConstrainHandler>>;
|
|
143
|
-
export
|
|
143
|
+
export declare namespace createConstraintsSet {
|
|
144
|
+
var overrideHandler: import("../..").OverrideHandler<ConstraintsSetHandler<EligiblePrimitive, readonly []>>;
|
|
145
|
+
}
|
|
146
|
+
export type GetConstraints<GenericHandler extends ConstraintsSetHandler<EligiblePrimitive, readonly any[]>> = Extract<GenericHandler extends any ? UnionToIntersection<GenericHandler["constrains"][number] extends infer InferredConstraint ? InferredConstraint extends ConstraintHandler ? GetConstraint<InferredConstraint> : never : never> : never, any>;
|
|
144
147
|
export {};
|
|
@@ -7,12 +7,13 @@ import { pipe } from '../../common/pipe.mjs';
|
|
|
7
7
|
import { map } from '../../array/map.mjs';
|
|
8
8
|
import { entry } from '../../object/entry.mjs';
|
|
9
9
|
import { createErrorKind } from '../../common/errorKindNamespace.mjs';
|
|
10
|
+
import { fromEntries } from '../../object/fromEntries.mjs';
|
|
11
|
+
import { createOverride } from '../../common/override.mjs';
|
|
10
12
|
import { isLeft } from '../../either/left/is.mjs';
|
|
11
13
|
import { unwrap } from '../../common/unwrap.mjs';
|
|
12
14
|
import { left } from '../../either/left/create.mjs';
|
|
13
15
|
import { right } from '../../either/right/create.mjs';
|
|
14
16
|
import { wrapValue } from '../../common/wrapValue.mjs';
|
|
15
|
-
import { fromEntries } from '../../object/fromEntries.mjs';
|
|
16
17
|
|
|
17
18
|
const constraintsSetHandlerKind = createCleanKind("constraints-set-handler");
|
|
18
19
|
class CreateConstraintsSetError extends kindHeritage("create-constraint-set-error", createErrorKind("create-constraint-set-error"), Error) {
|
|
@@ -74,7 +75,7 @@ function createConstraintsSet(primitiveHandler, constraint) {
|
|
|
74
75
|
}
|
|
75
76
|
return true;
|
|
76
77
|
}
|
|
77
|
-
return
|
|
78
|
+
return pipe({
|
|
78
79
|
primitiveHandler,
|
|
79
80
|
constrains: constraints,
|
|
80
81
|
getConstraint,
|
|
@@ -83,7 +84,8 @@ function createConstraintsSet(primitiveHandler, constraint) {
|
|
|
83
84
|
createWithUnknown: create,
|
|
84
85
|
createWithUnknownOrThrow: createOrThrow,
|
|
85
86
|
is,
|
|
86
|
-
});
|
|
87
|
+
}, constraintsSetHandlerKind.setTo, createConstraintsSet.overrideHandler.apply);
|
|
87
88
|
}
|
|
89
|
+
createConstraintsSet.overrideHandler = createOverride("@duplojs/utils/clean/constraints-set");
|
|
88
90
|
|
|
89
91
|
export { CreateConstraintsSetError, constraintsSetHandlerKind, createConstraintsSet };
|
package/dist/clean/entity.cjs
CHANGED
|
@@ -31,11 +31,12 @@ var otherwise = require('../pattern/otherwise.cjs');
|
|
|
31
31
|
var justReturn = require('../common/justReturn.cjs');
|
|
32
32
|
var union = require('../dataParser/parsers/union.cjs');
|
|
33
33
|
var minElements = require('../array/minElements.cjs');
|
|
34
|
+
var index$1 = require('../dataParser/parsers/object/index.cjs');
|
|
35
|
+
var override = require('../common/override.cjs');
|
|
34
36
|
var is = require('../either/left/is.cjs');
|
|
35
37
|
var unwrap = require('../common/unwrap.cjs');
|
|
36
38
|
var create = require('../either/left/create.cjs');
|
|
37
39
|
var create$1 = require('../either/right/create.cjs');
|
|
38
|
-
var index$1 = require('../dataParser/parsers/object/index.cjs');
|
|
39
40
|
|
|
40
41
|
const entityKind = kind.createCleanKind("entity");
|
|
41
42
|
const entityHandlerKind = kind.createCleanKind("entity-handler");
|
|
@@ -125,7 +126,7 @@ function createEntity(name, getPropertiesDefinition) {
|
|
|
125
126
|
}
|
|
126
127
|
return entityKind.setTo(updatedEntity, name);
|
|
127
128
|
}
|
|
128
|
-
return
|
|
129
|
+
return pipe.pipe({
|
|
129
130
|
name,
|
|
130
131
|
propertiesDefinition,
|
|
131
132
|
mapDataParser,
|
|
@@ -134,8 +135,9 @@ function createEntity(name, getPropertiesDefinition) {
|
|
|
134
135
|
mapOrThrow,
|
|
135
136
|
is: is$1,
|
|
136
137
|
update,
|
|
137
|
-
});
|
|
138
|
+
}, entityHandlerKind.setTo, createEntity.overrideHandler.apply);
|
|
138
139
|
}
|
|
140
|
+
createEntity.overrideHandler = override.createOverride("@duplojs/utils/clean/entity");
|
|
139
141
|
|
|
140
142
|
exports.CreateEntityError = CreateEntityError;
|
|
141
143
|
exports.createEntity = createEntity;
|
package/dist/clean/entity.d.ts
CHANGED
|
@@ -224,5 +224,8 @@ export interface PropertiesDefinitionParams {
|
|
|
224
224
|
*
|
|
225
225
|
*/
|
|
226
226
|
export declare function createEntity<GenericName extends string, const GenericPropertiesDefinition extends EntityPropertiesDefinition>(name: GenericName, getPropertiesDefinition: (params: PropertiesDefinitionParams) => GenericPropertiesDefinition & DObject.ForbiddenKey<GenericPropertiesDefinition, "_entityName" | "_flags">): EntityHandler<GenericName, GenericPropertiesDefinition>;
|
|
227
|
+
export declare namespace createEntity {
|
|
228
|
+
var overrideHandler: import("../common").OverrideHandler<EntityHandler<string, Readonly<Record<string, EntityPropertyDefinition>>>>;
|
|
229
|
+
}
|
|
227
230
|
export type GetEntity<GenericEntityHandler extends EntityHandler<string, any>> = Extract<ReturnType<GenericEntityHandler["new"]>, any>;
|
|
228
231
|
export {};
|
package/dist/clean/entity.mjs
CHANGED
|
@@ -29,11 +29,12 @@ import { otherwise } from '../pattern/otherwise.mjs';
|
|
|
29
29
|
import { justReturn } from '../common/justReturn.mjs';
|
|
30
30
|
import { union } from '../dataParser/parsers/union.mjs';
|
|
31
31
|
import { minElements } from '../array/minElements.mjs';
|
|
32
|
+
import { object } from '../dataParser/parsers/object/index.mjs';
|
|
33
|
+
import { createOverride } from '../common/override.mjs';
|
|
32
34
|
import { isLeft } from '../either/left/is.mjs';
|
|
33
35
|
import { unwrap } from '../common/unwrap.mjs';
|
|
34
36
|
import { left } from '../either/left/create.mjs';
|
|
35
37
|
import { right } from '../either/right/create.mjs';
|
|
36
|
-
import { object } from '../dataParser/parsers/object/index.mjs';
|
|
37
38
|
|
|
38
39
|
const entityKind = createCleanKind("entity");
|
|
39
40
|
const entityHandlerKind = createCleanKind("entity-handler");
|
|
@@ -123,7 +124,7 @@ function createEntity(name, getPropertiesDefinition) {
|
|
|
123
124
|
}
|
|
124
125
|
return entityKind.setTo(updatedEntity, name);
|
|
125
126
|
}
|
|
126
|
-
return
|
|
127
|
+
return pipe({
|
|
127
128
|
name,
|
|
128
129
|
propertiesDefinition,
|
|
129
130
|
mapDataParser,
|
|
@@ -132,7 +133,8 @@ function createEntity(name, getPropertiesDefinition) {
|
|
|
132
133
|
mapOrThrow,
|
|
133
134
|
is,
|
|
134
135
|
update,
|
|
135
|
-
});
|
|
136
|
+
}, entityHandlerKind.setTo, createEntity.overrideHandler.apply);
|
|
136
137
|
}
|
|
138
|
+
createEntity.overrideHandler = createOverride("@duplojs/utils/clean/entity");
|
|
137
139
|
|
|
138
140
|
export { CreateEntityError, createEntity, entityKind };
|
package/dist/clean/flag.cjs
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var kind = require('./kind.cjs');
|
|
4
|
+
var pipe = require('../common/pipe.cjs');
|
|
5
|
+
var override = require('../common/override.cjs');
|
|
4
6
|
|
|
5
7
|
const flagHandlerKind = kind.createCleanKind("flag-handler");
|
|
6
8
|
const flagKind = kind.createCleanKind("flag");
|
|
@@ -8,7 +10,7 @@ const flagKind = kind.createCleanKind("flag");
|
|
|
8
10
|
* {@include clean/createFlag/index.md}
|
|
9
11
|
*/
|
|
10
12
|
function createFlag(name) {
|
|
11
|
-
return
|
|
13
|
+
return pipe.pipe({
|
|
12
14
|
name,
|
|
13
15
|
append(entity, value) {
|
|
14
16
|
const flagValue = flagKind.has(entity)
|
|
@@ -26,8 +28,9 @@ function createFlag(name) {
|
|
|
26
28
|
return flagKind.has(entity)
|
|
27
29
|
&& name in flagKind.getValue(entity);
|
|
28
30
|
},
|
|
29
|
-
});
|
|
31
|
+
}, flagHandlerKind.setTo, createFlag.overrideHandler.apply);
|
|
30
32
|
}
|
|
33
|
+
createFlag.overrideHandler = override.createOverride("@duplojs/utils/clean/flag");
|
|
31
34
|
|
|
32
35
|
exports.createFlag = createFlag;
|
|
33
36
|
exports.flagKind = flagKind;
|
package/dist/clean/flag.d.ts
CHANGED
|
@@ -110,5 +110,8 @@ export declare function createFlag<GenericEntity extends Entity = never, Generic
|
|
|
110
110
|
IsEqual<GenericEntity, never>,
|
|
111
111
|
IsEqual<GenericName, never>
|
|
112
112
|
]> extends true ? never : NoInfer<GenericName>): FlagHandler<GenericEntity, GenericName, GenericValue>;
|
|
113
|
+
export declare namespace createFlag {
|
|
114
|
+
var overrideHandler: import("../common").OverrideHandler<FlagHandler<Entity<string>, string, never>>;
|
|
115
|
+
}
|
|
113
116
|
export type GetFlag<GenericHandler extends FlagHandler<any, any, any>> = Extract<Flag<GenericHandler["name"], ReturnType<GenericHandler["getValue"]>>, any>;
|
|
114
117
|
export {};
|
package/dist/clean/flag.mjs
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { createCleanKind } from './kind.mjs';
|
|
2
|
+
import { pipe } from '../common/pipe.mjs';
|
|
3
|
+
import { createOverride } from '../common/override.mjs';
|
|
2
4
|
|
|
3
5
|
const flagHandlerKind = createCleanKind("flag-handler");
|
|
4
6
|
const flagKind = createCleanKind("flag");
|
|
@@ -6,7 +8,7 @@ const flagKind = createCleanKind("flag");
|
|
|
6
8
|
* {@include clean/createFlag/index.md}
|
|
7
9
|
*/
|
|
8
10
|
function createFlag(name) {
|
|
9
|
-
return
|
|
11
|
+
return pipe({
|
|
10
12
|
name,
|
|
11
13
|
append(entity, value) {
|
|
12
14
|
const flagValue = flagKind.has(entity)
|
|
@@ -24,7 +26,8 @@ function createFlag(name) {
|
|
|
24
26
|
return flagKind.has(entity)
|
|
25
27
|
&& name in flagKind.getValue(entity);
|
|
26
28
|
},
|
|
27
|
-
});
|
|
29
|
+
}, flagHandlerKind.setTo, createFlag.overrideHandler.apply);
|
|
28
30
|
}
|
|
31
|
+
createFlag.overrideHandler = createOverride("@duplojs/utils/clean/flag");
|
|
29
32
|
|
|
30
33
|
export { createFlag, flagKind };
|
package/dist/clean/index.cjs
CHANGED
|
@@ -7,6 +7,7 @@ var repository = require('./repository.cjs');
|
|
|
7
7
|
var useCase = require('./useCase.cjs');
|
|
8
8
|
var flag = require('./flag.cjs');
|
|
9
9
|
var unwrapEntity = require('./unwrapEntity.cjs');
|
|
10
|
+
var maybe = require('./maybe.cjs');
|
|
10
11
|
var base = require('./constraint/base.cjs');
|
|
11
12
|
var number = require('./constraint/defaultConstraint/number.cjs');
|
|
12
13
|
var string = require('./constraint/defaultConstraint/string.cjs');
|
|
@@ -58,6 +59,8 @@ exports.useCaseInstances = useCase.useCaseInstances;
|
|
|
58
59
|
exports.createFlag = flag.createFlag;
|
|
59
60
|
exports.flagKind = flag.flagKind;
|
|
60
61
|
exports.unwrapEntity = unwrapEntity.unwrapEntity;
|
|
62
|
+
exports.none = maybe.none;
|
|
63
|
+
exports.some = maybe.some;
|
|
61
64
|
exports.CreateConstrainedTypeError = base.CreateConstrainedTypeError;
|
|
62
65
|
exports.constrainedTypeKind = base.constrainedTypeKind;
|
|
63
66
|
exports.constraintHandlerKind = base.constraintHandlerKind;
|
|
@@ -67,6 +70,7 @@ exports.Negative = number.Negative;
|
|
|
67
70
|
exports.NumberMax = number.NumberMax;
|
|
68
71
|
exports.NumberMin = number.NumberMin;
|
|
69
72
|
exports.Positive = number.Positive;
|
|
73
|
+
exports.PositiveInt = number.PositiveInt;
|
|
70
74
|
exports.Email = string.Email;
|
|
71
75
|
exports.StringMax = string.StringMax;
|
|
72
76
|
exports.StringMin = string.StringMin;
|
package/dist/clean/index.d.ts
CHANGED
package/dist/clean/index.mjs
CHANGED
|
@@ -5,8 +5,9 @@ export { createRepository, repositoryHandlerKind } from './repository.mjs';
|
|
|
5
5
|
export { createUseCase, useCaseHandlerKind, useCaseInstances } from './useCase.mjs';
|
|
6
6
|
export { createFlag, flagKind } from './flag.mjs';
|
|
7
7
|
export { unwrapEntity } from './unwrapEntity.mjs';
|
|
8
|
+
export { none, some } from './maybe.mjs';
|
|
8
9
|
export { CreateConstrainedTypeError, constrainedTypeKind, constraintHandlerKind, createConstraint } from './constraint/base.mjs';
|
|
9
|
-
export { Int, Negative, NumberMax, NumberMin, Positive } from './constraint/defaultConstraint/number.mjs';
|
|
10
|
+
export { Int, Negative, NumberMax, NumberMin, Positive, PositiveInt } from './constraint/defaultConstraint/number.mjs';
|
|
10
11
|
export { Email, StringMax, StringMin, Url } from './constraint/defaultConstraint/string.mjs';
|
|
11
12
|
export { CreateConstraintsSetError, constraintsSetHandlerKind, createConstraintsSet } from './constraint/set.mjs';
|
|
12
13
|
export { BigInt, Boolean, CreatePrimitiveError, Date, Number, String, Time, primitiveHandlerKind } from './primitive/base.mjs';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var entity = require('./entity.cjs');
|
|
4
|
+
var create = require('../either/right/create.cjs');
|
|
5
|
+
var create$1 = require('../either/left/create.cjs');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* {@include clean/some/index.md}
|
|
9
|
+
*/
|
|
10
|
+
function some(entity$1) {
|
|
11
|
+
return create.right(`some-${entity.entityKind.getValue(entity$1)}`, entity$1);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* {@include clean/none/index.md}
|
|
15
|
+
*/
|
|
16
|
+
function none(entityName) {
|
|
17
|
+
return create$1.left(`none-${entityName}`, null);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
exports.none = none;
|
|
21
|
+
exports.some = some;
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import * as DEither from "../either";
|
|
2
|
+
import { type Entity, entityKind } from "./entity";
|
|
3
|
+
import { type GetKindValue } from "../common";
|
|
4
|
+
export interface Some<GenericEntity extends Entity = Entity> extends DEither.Right<`some-${GetKindValue<typeof entityKind, GenericEntity>}`, GenericEntity> {
|
|
5
|
+
}
|
|
6
|
+
export interface None<GenericEntityName extends string = string> extends DEither.Left<`none-${GenericEntityName}`, null> {
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Union type that represents an optional entity in business flows.
|
|
10
|
+
*
|
|
11
|
+
* **Supported usage style:**
|
|
12
|
+
* - Type contract: `Maybe<Entity>`
|
|
13
|
+
*
|
|
14
|
+
* Use `Maybe` to define a business contract before implementation details. Then produce values with `some(entity)` when data exists, or `none(entityName)` when it does not.
|
|
15
|
+
*
|
|
16
|
+
* ```ts
|
|
17
|
+
* const UserId = C.createNewType("userId", DPE.number());
|
|
18
|
+
* const User = C.createEntity("User", () => ({
|
|
19
|
+
* id: UserId,
|
|
20
|
+
* }));
|
|
21
|
+
*
|
|
22
|
+
* type UserMaybe = C.Maybe<
|
|
23
|
+
* C.GetEntity<typeof User>
|
|
24
|
+
* >;
|
|
25
|
+
*
|
|
26
|
+
* const availableUser = User.new({
|
|
27
|
+
* id: UserId.createOrThrow(1 as number),
|
|
28
|
+
* });
|
|
29
|
+
*
|
|
30
|
+
* const foundUser: UserMaybe = C.some(availableUser);
|
|
31
|
+
* const missingUser: UserMaybe = C.none("User");
|
|
32
|
+
*
|
|
33
|
+
* type checkFound = ExpectType<
|
|
34
|
+
* typeof foundUser,
|
|
35
|
+
* C.Some<typeof availableUser>,
|
|
36
|
+
* "strict"
|
|
37
|
+
* >;
|
|
38
|
+
*
|
|
39
|
+
* type checkMissing = ExpectType<
|
|
40
|
+
* typeof missingUser,
|
|
41
|
+
* C.None<"User">,
|
|
42
|
+
* "strict"
|
|
43
|
+
* >;
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @remarks
|
|
47
|
+
* `Maybe` helps keep use-case signatures explicit: a function can return a typed optional entity without exposing null/undefined at the domain boundary.
|
|
48
|
+
*
|
|
49
|
+
* @see https://utils.duplojs.dev/en/v1/api/clean/maybe
|
|
50
|
+
*
|
|
51
|
+
* @namespace C
|
|
52
|
+
*
|
|
53
|
+
*/
|
|
54
|
+
export type Maybe<GenericEntity extends Entity = Entity> = (Some<GenericEntity> | None<GetKindValue<typeof entityKind, GenericEntity>>);
|
|
55
|
+
/**
|
|
56
|
+
* Constructor that creates a `Maybe` success branch from an entity.
|
|
57
|
+
*
|
|
58
|
+
* **Supported call styles:**
|
|
59
|
+
* - Classic: `some(entity)` -> returns `Some<Entity>`
|
|
60
|
+
* - Pipe-compatible: `pipe(entity, some)`
|
|
61
|
+
*
|
|
62
|
+
* Use `some` when the expected entity is available and must satisfy a `Maybe<Entity>` contract.
|
|
63
|
+
*
|
|
64
|
+
* ```ts
|
|
65
|
+
* const UserId = C.createNewType("userId", DPE.number());
|
|
66
|
+
* const User = C.createEntity("User", () => ({
|
|
67
|
+
* id: UserId,
|
|
68
|
+
* }));
|
|
69
|
+
*
|
|
70
|
+
* const firstUser = User.new({
|
|
71
|
+
* id: UserId.createOrThrow(1),
|
|
72
|
+
* });
|
|
73
|
+
* const firstMaybe = C.some(firstUser);
|
|
74
|
+
* // firstMaybe: C.Some<typeof firstUser>
|
|
75
|
+
*
|
|
76
|
+
* const secondUser = User.new({
|
|
77
|
+
* id: UserId.createOrThrow(2),
|
|
78
|
+
* });
|
|
79
|
+
* const secondMaybe = C.some(secondUser);
|
|
80
|
+
* // secondMaybe: C.Some<typeof secondUser>
|
|
81
|
+
*
|
|
82
|
+
* const pipedMaybe = pipe(
|
|
83
|
+
* firstUser,
|
|
84
|
+
* C.some,
|
|
85
|
+
* );
|
|
86
|
+
*
|
|
87
|
+
* type check = ExpectType<
|
|
88
|
+
* typeof pipedMaybe,
|
|
89
|
+
* C.Some<typeof firstUser>,
|
|
90
|
+
* "strict"
|
|
91
|
+
* >;
|
|
92
|
+
*
|
|
93
|
+
* ```
|
|
94
|
+
*
|
|
95
|
+
* @see https://utils.duplojs.dev/en/v1/api/clean/maybe
|
|
96
|
+
*
|
|
97
|
+
* @namespace C
|
|
98
|
+
*
|
|
99
|
+
*/
|
|
100
|
+
export declare function some<GenericEntity extends Entity>(entity: GenericEntity): Some<GenericEntity>;
|
|
101
|
+
/**
|
|
102
|
+
* Constructor that creates a `Maybe` empty branch from an entity name.
|
|
103
|
+
*
|
|
104
|
+
* **Supported call styles:**
|
|
105
|
+
* - Classic: `none(entityName)` -> returns `None<entityName>`
|
|
106
|
+
* - Pipe-compatible: `pipe(entityName, none)`
|
|
107
|
+
*
|
|
108
|
+
* Use `none` when an entity is absent but you still want to keep a precise business contract with `Maybe<Entity>`.
|
|
109
|
+
*
|
|
110
|
+
* ```ts
|
|
111
|
+
* const noUser = C.none("User");
|
|
112
|
+
* // noUser: C.None<"User">
|
|
113
|
+
*
|
|
114
|
+
* const noOrder = C.none("Order");
|
|
115
|
+
* // noOrder: C.None<"Order">
|
|
116
|
+
*
|
|
117
|
+
* const pipedNone = pipe(
|
|
118
|
+
* "Invoice",
|
|
119
|
+
* C.none,
|
|
120
|
+
* );
|
|
121
|
+
*
|
|
122
|
+
* type check = ExpectType<
|
|
123
|
+
* typeof pipedNone,
|
|
124
|
+
* C.None<"Invoice">,
|
|
125
|
+
* "strict"
|
|
126
|
+
* >;
|
|
127
|
+
*
|
|
128
|
+
* ```
|
|
129
|
+
*
|
|
130
|
+
* @see https://utils.duplojs.dev/en/v1/api/clean/maybe
|
|
131
|
+
*
|
|
132
|
+
* @namespace C
|
|
133
|
+
*
|
|
134
|
+
*/
|
|
135
|
+
export declare function none<GenericEntityName extends string>(entityName: GenericEntityName): None<GenericEntityName>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { entityKind } from './entity.mjs';
|
|
2
|
+
import { right } from '../either/right/create.mjs';
|
|
3
|
+
import { left } from '../either/left/create.mjs';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* {@include clean/some/index.md}
|
|
7
|
+
*/
|
|
8
|
+
function some(entity) {
|
|
9
|
+
return right(`some-${entityKind.getValue(entity)}`, entity);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* {@include clean/none/index.md}
|
|
13
|
+
*/
|
|
14
|
+
function none(entityName) {
|
|
15
|
+
return left(`none-${entityName}`, null);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { none, some };
|
package/dist/clean/newType.cjs
CHANGED
|
@@ -8,13 +8,14 @@ var pipe = require('../common/pipe.cjs');
|
|
|
8
8
|
var map = require('../array/map.cjs');
|
|
9
9
|
var entry = require('../object/entry.cjs');
|
|
10
10
|
var errorKindNamespace = require('../common/errorKindNamespace.cjs');
|
|
11
|
+
var fromEntries = require('../object/fromEntries.cjs');
|
|
12
|
+
var override = require('../common/override.cjs');
|
|
11
13
|
var is = require('../either/left/is.cjs');
|
|
12
14
|
var unwrap = require('../common/unwrap.cjs');
|
|
13
15
|
var create = require('../either/left/create.cjs');
|
|
14
16
|
var base = require('./constraint/base.cjs');
|
|
15
17
|
var create$1 = require('../either/right/create.cjs');
|
|
16
18
|
var wrapValue = require('../common/wrapValue.cjs');
|
|
17
|
-
var fromEntries = require('../object/fromEntries.cjs');
|
|
18
19
|
|
|
19
20
|
const newTypeKind = kind.createCleanKind("new-type");
|
|
20
21
|
const newTypeHandlerKind = kind.createCleanKind("new-type-handler");
|
|
@@ -80,7 +81,7 @@ function createNewType(name, dataParser, constraint) {
|
|
|
80
81
|
}
|
|
81
82
|
return true;
|
|
82
83
|
}
|
|
83
|
-
return
|
|
84
|
+
return pipe.pipe({
|
|
84
85
|
name,
|
|
85
86
|
dataParser: dataParserWithCheckers,
|
|
86
87
|
constrains: constraints,
|
|
@@ -90,8 +91,9 @@ function createNewType(name, dataParser, constraint) {
|
|
|
90
91
|
createWithUnknown: create$2,
|
|
91
92
|
createWithUnknownOrThrow: createOrThrow,
|
|
92
93
|
is: is$1,
|
|
93
|
-
});
|
|
94
|
+
}, newTypeHandlerKind.setTo, createNewType.overrideHandler.apply);
|
|
94
95
|
}
|
|
96
|
+
createNewType.overrideHandler = override.createOverride("@duplojs/utils/clean/new-type");
|
|
95
97
|
|
|
96
98
|
exports.CreateNewTypeError = CreateNewTypeError;
|
|
97
99
|
exports.createNewType = createNewType;
|
package/dist/clean/newType.d.ts
CHANGED
|
@@ -151,5 +151,8 @@ export declare function createNewType<GenericName extends string, GenericDataPar
|
|
|
151
151
|
ConstraintHandler<string, EligiblePrimitive, readonly DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, DDataParser.Output<GenericDataParser>>[]>,
|
|
152
152
|
...ConstraintHandler<string, EligiblePrimitive, readonly DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, DDataParser.Output<GenericDataParser>>[]>[]
|
|
153
153
|
]) = never>(name: GenericName, dataParser: GenericDataParser & DataParserContainTransform<GenericDataParser>, constraint?: GenericConstraintsHandler): NewTypeHandler<GenericName, DeepReadonly<DDataParser.Output<GenericDataParser>>, DArray.ArrayCoalescing<NeverCoalescing<GenericConstraintsHandler, readonly []>>>;
|
|
154
|
+
export declare namespace createNewType {
|
|
155
|
+
var overrideHandler: import("..").OverrideHandler<NewTypeHandler<string, unknown, readonly []>>;
|
|
156
|
+
}
|
|
154
157
|
export type GetNewType<GenericHandler extends NewTypeHandler<string, unknown, readonly any[]>> = Extract<GenericHandler extends any ? NewType<GenericHandler["name"], DDataParser.Output<GenericHandler["dataParser"]>, GenericHandler["constrains"][number]["name"]> : never, any>;
|
|
155
158
|
export {};
|