@duplojs/utils 1.4.51 → 1.4.53
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 +14 -0
- package/dist/clean/constraint/defaultConstraint/number.d.ts +61 -0
- package/dist/clean/constraint/defaultConstraint/number.mjs +13 -1
- package/dist/clean/constraint/defaultConstraint/string.cjs +16 -0
- package/dist/clean/constraint/defaultConstraint/string.d.ts +61 -0
- package/dist/clean/constraint/defaultConstraint/string.mjs +15 -1
- package/dist/clean/constraint/index.d.ts +1 -0
- package/dist/clean/constraint/set.cjs +95 -0
- package/dist/clean/constraint/set.d.ts +147 -0
- package/dist/clean/constraint/set.mjs +91 -0
- 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 +8 -0
- package/dist/clean/index.mjs +3 -2
- package/dist/clean/newType.cjs +17 -10
- package/dist/clean/newType.d.ts +26 -13
- package/dist/clean/newType.mjs +17 -10
- 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/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
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
|
@@ -10,6 +10,7 @@ var unwrapEntity = require('./unwrapEntity.cjs');
|
|
|
10
10
|
var base = require('./constraint/base.cjs');
|
|
11
11
|
var number = require('./constraint/defaultConstraint/number.cjs');
|
|
12
12
|
var string = require('./constraint/defaultConstraint/string.cjs');
|
|
13
|
+
var set = require('./constraint/set.cjs');
|
|
13
14
|
var base$1 = require('./primitive/base.cjs');
|
|
14
15
|
var equal = require('./primitive/operations/equal.cjs');
|
|
15
16
|
var add = require('./primitive/operations/number/add.cjs');
|
|
@@ -63,9 +64,16 @@ exports.constraintHandlerKind = base.constraintHandlerKind;
|
|
|
63
64
|
exports.createConstraint = base.createConstraint;
|
|
64
65
|
exports.Int = number.Int;
|
|
65
66
|
exports.Negative = number.Negative;
|
|
67
|
+
exports.NumberMax = number.NumberMax;
|
|
68
|
+
exports.NumberMin = number.NumberMin;
|
|
66
69
|
exports.Positive = number.Positive;
|
|
67
70
|
exports.Email = string.Email;
|
|
71
|
+
exports.StringMax = string.StringMax;
|
|
72
|
+
exports.StringMin = string.StringMin;
|
|
68
73
|
exports.Url = string.Url;
|
|
74
|
+
exports.CreateConstraintsSetError = set.CreateConstraintsSetError;
|
|
75
|
+
exports.constraintsSetHandlerKind = set.constraintsSetHandlerKind;
|
|
76
|
+
exports.createConstraintsSet = set.createConstraintsSet;
|
|
69
77
|
exports.BigInt = base$1.BigInt;
|
|
70
78
|
exports.Boolean = base$1.Boolean;
|
|
71
79
|
exports.CreatePrimitiveError = base$1.CreatePrimitiveError;
|
package/dist/clean/index.mjs
CHANGED
|
@@ -6,8 +6,9 @@ export { createUseCase, useCaseHandlerKind, useCaseInstances } from './useCase.m
|
|
|
6
6
|
export { createFlag, flagKind } from './flag.mjs';
|
|
7
7
|
export { unwrapEntity } from './unwrapEntity.mjs';
|
|
8
8
|
export { CreateConstrainedTypeError, constrainedTypeKind, constraintHandlerKind, createConstraint } from './constraint/base.mjs';
|
|
9
|
-
export { Int, Negative, Positive } from './constraint/defaultConstraint/number.mjs';
|
|
10
|
-
export { Email, Url } from './constraint/defaultConstraint/string.mjs';
|
|
9
|
+
export { Int, Negative, NumberMax, NumberMin, Positive } from './constraint/defaultConstraint/number.mjs';
|
|
10
|
+
export { Email, StringMax, StringMin, Url } from './constraint/defaultConstraint/string.mjs';
|
|
11
|
+
export { CreateConstraintsSetError, constraintsSetHandlerKind, createConstraintsSet } from './constraint/set.mjs';
|
|
11
12
|
export { BigInt, Boolean, CreatePrimitiveError, Date, Number, String, Time, primitiveHandlerKind } from './primitive/base.mjs';
|
|
12
13
|
export { equal } from './primitive/operations/equal.mjs';
|
|
13
14
|
export { add } from './primitive/operations/number/add.mjs';
|
package/dist/clean/newType.cjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var kind = require('./kind.cjs');
|
|
4
|
-
var base = require('./constraint/base.cjs');
|
|
5
4
|
var kind$1 = require('../common/kind.cjs');
|
|
6
5
|
var flatMap = require('../array/flatMap.cjs');
|
|
7
6
|
var coalescing = require('../array/coalescing.cjs');
|
|
@@ -9,12 +8,14 @@ var pipe = require('../common/pipe.cjs');
|
|
|
9
8
|
var map = require('../array/map.cjs');
|
|
10
9
|
var entry = require('../object/entry.cjs');
|
|
11
10
|
var errorKindNamespace = require('../common/errorKindNamespace.cjs');
|
|
11
|
+
var fromEntries = require('../object/fromEntries.cjs');
|
|
12
|
+
var override = require('../common/override.cjs');
|
|
12
13
|
var is = require('../either/left/is.cjs');
|
|
13
14
|
var unwrap = require('../common/unwrap.cjs');
|
|
14
15
|
var create = require('../either/left/create.cjs');
|
|
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");
|
|
@@ -33,12 +34,16 @@ class CreateNewTypeError extends kind$1.kindHeritage("create-new-type-error", er
|
|
|
33
34
|
* {@include clean/createNewType/index.md}
|
|
34
35
|
*/
|
|
35
36
|
function createNewType(name, dataParser, constraint) {
|
|
36
|
-
const
|
|
37
|
-
const checkers = flatMap.flatMap(
|
|
37
|
+
const constraints = coalescing.coalescing(constraint ?? []);
|
|
38
|
+
const checkers = flatMap.flatMap(constraints, ({ checkers }) => checkers);
|
|
38
39
|
const dataParserWithCheckers = constraint
|
|
39
40
|
? dataParser.addChecker(...checkers)
|
|
40
41
|
: dataParser;
|
|
41
|
-
const constraintKindValue = pipe.pipe(
|
|
42
|
+
const constraintKindValue = pipe.pipe(constraints, map.map(({ name }) => entry.entry(name, null)), fromEntries.fromEntries);
|
|
43
|
+
const wrappedConstraints = pipe.pipe(constraints, map.map((constrain) => entry.entry(constrain.name, constrain)), fromEntries.fromEntries);
|
|
44
|
+
function getConstraint(name) {
|
|
45
|
+
return wrappedConstraints[name];
|
|
46
|
+
}
|
|
42
47
|
function create$2(data) {
|
|
43
48
|
const result = dataParserWithCheckers.parse(unwrap.unwrap(data));
|
|
44
49
|
if (is.isLeft(result)) {
|
|
@@ -69,24 +74,26 @@ function createNewType(name, dataParser, constraint) {
|
|
|
69
74
|
return false;
|
|
70
75
|
}
|
|
71
76
|
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
72
|
-
for (let index = 0; index <
|
|
73
|
-
if (!
|
|
77
|
+
for (let index = 0; index < constraints.length; index++) {
|
|
78
|
+
if (!constraints[index].is(input)) {
|
|
74
79
|
return false;
|
|
75
80
|
}
|
|
76
81
|
}
|
|
77
82
|
return true;
|
|
78
83
|
}
|
|
79
|
-
return
|
|
84
|
+
return pipe.pipe({
|
|
80
85
|
name,
|
|
81
86
|
dataParser: dataParserWithCheckers,
|
|
82
|
-
constrains,
|
|
87
|
+
constrains: constraints,
|
|
88
|
+
getConstraint,
|
|
83
89
|
create: create$2,
|
|
84
90
|
createOrThrow,
|
|
85
91
|
createWithUnknown: create$2,
|
|
86
92
|
createWithUnknownOrThrow: createOrThrow,
|
|
87
93
|
is: is$1,
|
|
88
|
-
});
|
|
94
|
+
}, newTypeHandlerKind.setTo, createNewType.overrideHandler.apply);
|
|
89
95
|
}
|
|
96
|
+
createNewType.overrideHandler = override.createOverride("@duplojs/utils/clean/new-type");
|
|
90
97
|
|
|
91
98
|
exports.CreateNewTypeError = CreateNewTypeError;
|
|
92
99
|
exports.createNewType = createNewType;
|
package/dist/clean/newType.d.ts
CHANGED
|
@@ -6,11 +6,11 @@ import * as DArray from "../array";
|
|
|
6
6
|
import type * as DDataParser from "../dataParser";
|
|
7
7
|
import { type DataParserContainTransform } from "./types";
|
|
8
8
|
export declare const newTypeKind: import("..").KindHandler<import("..").KindDefinition<"@DuplojsUtilsClean/new-type", string>>;
|
|
9
|
-
type _NewType<GenericName extends string, GenericValue extends unknown,
|
|
10
|
-
export interface NewType<GenericName extends string = string, GenericValue extends unknown = unknown,
|
|
9
|
+
type _NewType<GenericName extends string, GenericValue extends unknown, GenericConstraintsName extends string> = (Kind<typeof newTypeKind.definition, GenericName> & Kind<typeof constrainedTypeKind.definition, Record<GenericConstraintsName, unknown>> & WrappedValue<GenericValue>);
|
|
10
|
+
export interface NewType<GenericName extends string = string, GenericValue extends unknown = unknown, GenericConstraintsName extends string = never> extends _NewType<GenericName, GenericValue, GenericConstraintsName> {
|
|
11
11
|
}
|
|
12
12
|
export declare const newTypeHandlerKind: import("..").KindHandler<import("..").KindDefinition<"@DuplojsUtilsClean/new-type-handler", unknown>>;
|
|
13
|
-
export interface NewTypeHandler<GenericName extends string = string, GenericValue extends unknown = unknown,
|
|
13
|
+
export interface NewTypeHandler<GenericName extends string = string, GenericValue extends unknown = unknown, GenericConstraintsHandler extends readonly ConstraintHandler[] = readonly []> extends Kind<typeof newTypeHandlerKind.definition> {
|
|
14
14
|
/**
|
|
15
15
|
* The NewType name used as the brand (for example "userId").
|
|
16
16
|
*
|
|
@@ -25,7 +25,7 @@ export interface NewTypeHandler<GenericName extends string = string, GenericValu
|
|
|
25
25
|
* The list of constraints applied to this NewType.
|
|
26
26
|
*
|
|
27
27
|
*/
|
|
28
|
-
readonly constrains:
|
|
28
|
+
readonly constrains: GenericConstraintsHandler;
|
|
29
29
|
/**
|
|
30
30
|
* Creates a NewType value and returns an Either.
|
|
31
31
|
*
|
|
@@ -34,8 +34,8 @@ export interface NewTypeHandler<GenericName extends string = string, GenericValu
|
|
|
34
34
|
* ```
|
|
35
35
|
*
|
|
36
36
|
*/
|
|
37
|
-
create<const
|
|
38
|
-
create<GenericPrimitive extends Primitive<Extract<GenericValue, EligiblePrimitive>>>(data: GenericPrimitive): (DEither.Right<"createNewType", (GenericPrimitive & NewType<GenericName, Unwrap<GenericPrimitive>,
|
|
37
|
+
create<const GenericInput extends GenericValue>(data: GenericInput): (DEither.Right<"createNewType", NewType<GenericName, GenericInput, GenericConstraintsHandler[number]["name"]>> | DEither.Left<"createNewTypeError", DDataParser.DataParserError>);
|
|
38
|
+
create<GenericPrimitive extends Primitive<Extract<GenericValue, EligiblePrimitive>>>(data: GenericPrimitive): (DEither.Right<"createNewType", (GenericPrimitive & NewType<GenericName, Unwrap<GenericPrimitive>, GenericConstraintsHandler[number]["name"]>)> | DEither.Left<"createNewTypeError", DDataParser.DataParserError>);
|
|
39
39
|
/**
|
|
40
40
|
* Creates a NewType value and throws on error. Works with raw values or primitives.
|
|
41
41
|
*
|
|
@@ -50,8 +50,8 @@ export interface NewTypeHandler<GenericName extends string = string, GenericValu
|
|
|
50
50
|
* ```
|
|
51
51
|
*
|
|
52
52
|
*/
|
|
53
|
-
createOrThrow<const GenericData extends GenericValue>(data: GenericData): NewType<GenericName, GenericData,
|
|
54
|
-
createOrThrow<GenericPrimitive extends Primitive<Extract<GenericValue, EligiblePrimitive>>>(data: GenericPrimitive): (GenericPrimitive & NewType<GenericName, Unwrap<GenericPrimitive>,
|
|
53
|
+
createOrThrow<const GenericData extends GenericValue>(data: GenericData): NewType<GenericName, GenericData, GenericConstraintsHandler[number]["name"]>;
|
|
54
|
+
createOrThrow<GenericPrimitive extends Primitive<Extract<GenericValue, EligiblePrimitive>>>(data: GenericPrimitive): (GenericPrimitive & NewType<GenericName, Unwrap<GenericPrimitive>, GenericConstraintsHandler[number]["name"]>);
|
|
55
55
|
/**
|
|
56
56
|
* Creates a NewType value from an unknown input and returns an Either.
|
|
57
57
|
*
|
|
@@ -65,7 +65,7 @@ export interface NewTypeHandler<GenericName extends string = string, GenericValu
|
|
|
65
65
|
* ```
|
|
66
66
|
*
|
|
67
67
|
*/
|
|
68
|
-
createWithUnknown<
|
|
68
|
+
createWithUnknown<GenericInput extends unknown>(data: GenericInput): (DEither.Right<"createNewType", NewType<GenericName, GenericValue, GenericConstraintsHandler[number]["name"]>> | DEither.Left<"createNewTypeError", DDataParser.DataParserError>);
|
|
69
69
|
/**
|
|
70
70
|
* Creates a NewType value from an unknown input and throws on error.
|
|
71
71
|
*
|
|
@@ -74,7 +74,7 @@ export interface NewTypeHandler<GenericName extends string = string, GenericValu
|
|
|
74
74
|
* ```
|
|
75
75
|
*
|
|
76
76
|
*/
|
|
77
|
-
createWithUnknownOrThrow<
|
|
77
|
+
createWithUnknownOrThrow<GenericInput extends unknown>(data: GenericInput): NewType<GenericName, GenericValue, GenericConstraintsHandler[number]["name"]>;
|
|
78
78
|
/**
|
|
79
79
|
* Checks if a value is a NewType of this handler (type guard).
|
|
80
80
|
*
|
|
@@ -83,7 +83,17 @@ export interface NewTypeHandler<GenericName extends string = string, GenericValu
|
|
|
83
83
|
* ```
|
|
84
84
|
*
|
|
85
85
|
*/
|
|
86
|
-
is<GenericInput extends WrappedValue>(input: GenericInput): input is Extract<GenericInput, NewType<GenericName, GenericValue,
|
|
86
|
+
is<GenericInput extends WrappedValue>(input: GenericInput): input is Extract<GenericInput, NewType<GenericName, GenericValue, GenericConstraintsHandler[number]["name"]>>;
|
|
87
|
+
/**
|
|
88
|
+
* Returns a constraint handler by name from the NewType constraints list.
|
|
89
|
+
*
|
|
90
|
+
* ```ts
|
|
91
|
+
* const constraint = UserId.getConstraint("positive");
|
|
92
|
+
* constraint.createOrThrow(1);
|
|
93
|
+
* ```
|
|
94
|
+
*
|
|
95
|
+
*/
|
|
96
|
+
getConstraint<GenericConstraintName extends GenericConstraintsHandler[number]["name"]>(name: GenericConstraintName): Extract<GenericConstraintsHandler[number], ConstraintHandler<GenericConstraintName>>;
|
|
87
97
|
}
|
|
88
98
|
declare const CreateNewTypeError_base: new (params: {
|
|
89
99
|
"@DuplojsUtilsError/create-new-type-error"?: unknown;
|
|
@@ -137,9 +147,12 @@ export declare class CreateNewTypeError extends CreateNewTypeError_base {
|
|
|
137
147
|
* @namespace C
|
|
138
148
|
*
|
|
139
149
|
*/
|
|
140
|
-
export declare function createNewType<GenericName extends string, GenericDataParser extends DDataParser.DataParser, const
|
|
150
|
+
export declare function createNewType<GenericName extends string, GenericDataParser extends DDataParser.DataParser, const GenericConstraintsHandler extends (ConstraintHandler<string, EligiblePrimitive, readonly DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, DDataParser.Output<GenericDataParser>>[]> | readonly [
|
|
141
151
|
ConstraintHandler<string, EligiblePrimitive, readonly DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, DDataParser.Output<GenericDataParser>>[]>,
|
|
142
152
|
...ConstraintHandler<string, EligiblePrimitive, readonly DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, DDataParser.Output<GenericDataParser>>[]>[]
|
|
143
|
-
]) = never>(name: GenericName, dataParser: GenericDataParser & DataParserContainTransform<GenericDataParser>, constraint?:
|
|
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
|
+
}
|
|
144
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>;
|
|
145
158
|
export {};
|
package/dist/clean/newType.mjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { createCleanKind } from './kind.mjs';
|
|
2
|
-
import { constrainedTypeKind } from './constraint/base.mjs';
|
|
3
2
|
import { kindHeritage } from '../common/kind.mjs';
|
|
4
3
|
import { flatMap } from '../array/flatMap.mjs';
|
|
5
4
|
import { coalescing } from '../array/coalescing.mjs';
|
|
@@ -7,12 +6,14 @@ import { pipe } from '../common/pipe.mjs';
|
|
|
7
6
|
import { map } from '../array/map.mjs';
|
|
8
7
|
import { entry } from '../object/entry.mjs';
|
|
9
8
|
import { createErrorKind } from '../common/errorKindNamespace.mjs';
|
|
9
|
+
import { fromEntries } from '../object/fromEntries.mjs';
|
|
10
|
+
import { createOverride } from '../common/override.mjs';
|
|
10
11
|
import { isLeft } from '../either/left/is.mjs';
|
|
11
12
|
import { unwrap } from '../common/unwrap.mjs';
|
|
12
13
|
import { left } from '../either/left/create.mjs';
|
|
14
|
+
import { constrainedTypeKind } from './constraint/base.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 newTypeKind = createCleanKind("new-type");
|
|
18
19
|
const newTypeHandlerKind = createCleanKind("new-type-handler");
|
|
@@ -31,12 +32,16 @@ class CreateNewTypeError extends kindHeritage("create-new-type-error", createErr
|
|
|
31
32
|
* {@include clean/createNewType/index.md}
|
|
32
33
|
*/
|
|
33
34
|
function createNewType(name, dataParser, constraint) {
|
|
34
|
-
const
|
|
35
|
-
const checkers = flatMap(
|
|
35
|
+
const constraints = coalescing(constraint ?? []);
|
|
36
|
+
const checkers = flatMap(constraints, ({ checkers }) => checkers);
|
|
36
37
|
const dataParserWithCheckers = constraint
|
|
37
38
|
? dataParser.addChecker(...checkers)
|
|
38
39
|
: dataParser;
|
|
39
|
-
const constraintKindValue = pipe(
|
|
40
|
+
const constraintKindValue = pipe(constraints, map(({ name }) => entry(name, null)), fromEntries);
|
|
41
|
+
const wrappedConstraints = pipe(constraints, map((constrain) => entry(constrain.name, constrain)), fromEntries);
|
|
42
|
+
function getConstraint(name) {
|
|
43
|
+
return wrappedConstraints[name];
|
|
44
|
+
}
|
|
40
45
|
function create(data) {
|
|
41
46
|
const result = dataParserWithCheckers.parse(unwrap(data));
|
|
42
47
|
if (isLeft(result)) {
|
|
@@ -67,23 +72,25 @@ function createNewType(name, dataParser, constraint) {
|
|
|
67
72
|
return false;
|
|
68
73
|
}
|
|
69
74
|
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
70
|
-
for (let index = 0; index <
|
|
71
|
-
if (!
|
|
75
|
+
for (let index = 0; index < constraints.length; index++) {
|
|
76
|
+
if (!constraints[index].is(input)) {
|
|
72
77
|
return false;
|
|
73
78
|
}
|
|
74
79
|
}
|
|
75
80
|
return true;
|
|
76
81
|
}
|
|
77
|
-
return
|
|
82
|
+
return pipe({
|
|
78
83
|
name,
|
|
79
84
|
dataParser: dataParserWithCheckers,
|
|
80
|
-
constrains,
|
|
85
|
+
constrains: constraints,
|
|
86
|
+
getConstraint,
|
|
81
87
|
create,
|
|
82
88
|
createOrThrow,
|
|
83
89
|
createWithUnknown: create,
|
|
84
90
|
createWithUnknownOrThrow: createOrThrow,
|
|
85
91
|
is,
|
|
86
|
-
});
|
|
92
|
+
}, newTypeHandlerKind.setTo, createNewType.overrideHandler.apply);
|
|
87
93
|
}
|
|
94
|
+
createNewType.overrideHandler = createOverride("@duplojs/utils/clean/new-type");
|
|
88
95
|
|
|
89
96
|
export { CreateNewTypeError, createNewType, newTypeHandlerKind, newTypeKind };
|
|
@@ -3,12 +3,14 @@
|
|
|
3
3
|
var kind = require('../kind.cjs');
|
|
4
4
|
var kind$1 = require('../../common/kind.cjs');
|
|
5
5
|
var index = require('../../dataParser/parsers/string/index.cjs');
|
|
6
|
+
var pipe = require('../../common/pipe.cjs');
|
|
6
7
|
var index$1 = require('../../dataParser/parsers/number/index.cjs');
|
|
7
8
|
var index$2 = require('../../dataParser/parsers/bigint/index.cjs');
|
|
8
9
|
var boolean = require('../../dataParser/parsers/boolean.cjs');
|
|
9
10
|
var date = require('../../dataParser/parsers/date.cjs');
|
|
10
11
|
var index$3 = require('../../dataParser/parsers/time/index.cjs');
|
|
11
12
|
var errorKindNamespace = require('../../common/errorKindNamespace.cjs');
|
|
13
|
+
var override = require('../../common/override.cjs');
|
|
12
14
|
var unwrap = require('../../common/unwrap.cjs');
|
|
13
15
|
var is = require('../../either/right/is.cjs');
|
|
14
16
|
var is$1 = require('../../either/left/is.cjs');
|
|
@@ -49,15 +51,16 @@ function createPrimitive(dataParser) {
|
|
|
49
51
|
const result = dataParser.parse(unwrap.unwrap(input));
|
|
50
52
|
return is.isRight(result);
|
|
51
53
|
}
|
|
52
|
-
return
|
|
54
|
+
return pipe.pipe({
|
|
53
55
|
dataParser,
|
|
54
56
|
create: create$2,
|
|
55
57
|
createOrThrow,
|
|
56
58
|
createWithUnknown: create$2,
|
|
57
59
|
createWithUnknownOrThrow: createOrThrow,
|
|
58
60
|
is: is$2,
|
|
59
|
-
});
|
|
61
|
+
}, primitiveHandlerKind.setTo, createPrimitive.overrideHandler.apply);
|
|
60
62
|
}
|
|
63
|
+
createPrimitive.overrideHandler = override.createOverride("@duplojs/utils/clean/primitive");
|
|
61
64
|
/**
|
|
62
65
|
* {@include clean/String/index.md}
|
|
63
66
|
*/
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { createCleanKind } from '../kind.mjs';
|
|
2
2
|
import { kindHeritage } from '../../common/kind.mjs';
|
|
3
3
|
import { string } from '../../dataParser/parsers/string/index.mjs';
|
|
4
|
+
import { pipe } from '../../common/pipe.mjs';
|
|
4
5
|
import { number } from '../../dataParser/parsers/number/index.mjs';
|
|
5
6
|
import { bigint } from '../../dataParser/parsers/bigint/index.mjs';
|
|
6
7
|
import { boolean } from '../../dataParser/parsers/boolean.mjs';
|
|
7
8
|
import { date } from '../../dataParser/parsers/date.mjs';
|
|
8
9
|
import { time } from '../../dataParser/parsers/time/index.mjs';
|
|
9
10
|
import { createErrorKind } from '../../common/errorKindNamespace.mjs';
|
|
11
|
+
import { createOverride } from '../../common/override.mjs';
|
|
10
12
|
import { unwrap } from '../../common/unwrap.mjs';
|
|
11
13
|
import { isRight } from '../../either/right/is.mjs';
|
|
12
14
|
import { isLeft } from '../../either/left/is.mjs';
|
|
@@ -47,15 +49,16 @@ function createPrimitive(dataParser) {
|
|
|
47
49
|
const result = dataParser.parse(unwrap(input));
|
|
48
50
|
return isRight(result);
|
|
49
51
|
}
|
|
50
|
-
return
|
|
52
|
+
return pipe({
|
|
51
53
|
dataParser,
|
|
52
54
|
create,
|
|
53
55
|
createOrThrow,
|
|
54
56
|
createWithUnknown: create,
|
|
55
57
|
createWithUnknownOrThrow: createOrThrow,
|
|
56
58
|
is,
|
|
57
|
-
});
|
|
59
|
+
}, primitiveHandlerKind.setTo, createPrimitive.overrideHandler.apply);
|
|
58
60
|
}
|
|
61
|
+
createPrimitive.overrideHandler = createOverride("@duplojs/utils/clean/primitive");
|
|
59
62
|
/**
|
|
60
63
|
* {@include clean/String/index.md}
|
|
61
64
|
*/
|
|
@@ -1,18 +1,21 @@
|
|
|
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 repositoryHandlerKind = kind.createCleanKind("repository-handler");
|
|
6
8
|
/**
|
|
7
9
|
* {@include clean/createRepository/index.md}
|
|
8
10
|
*/
|
|
9
11
|
function createRepository() {
|
|
10
|
-
return
|
|
12
|
+
return pipe.pipe({
|
|
11
13
|
createImplementation(implementation) {
|
|
12
14
|
return implementation;
|
|
13
15
|
},
|
|
14
|
-
});
|
|
16
|
+
}, repositoryHandlerKind.setTo, createRepository.overrideHandler.apply);
|
|
15
17
|
}
|
|
18
|
+
createRepository.overrideHandler = override.createOverride("@duplojs/utils/clean/repository");
|
|
16
19
|
|
|
17
20
|
exports.createRepository = createRepository;
|
|
18
21
|
exports.repositoryHandlerKind = repositoryHandlerKind;
|
|
@@ -93,3 +93,6 @@ export interface RepositoryHandler<GenericRepository extends object = object> ex
|
|
|
93
93
|
*
|
|
94
94
|
*/
|
|
95
95
|
export declare function createRepository<GenericRepository extends object>(): RepositoryHandler<GenericRepository>;
|
|
96
|
+
export declare namespace createRepository {
|
|
97
|
+
var overrideHandler: import("../common").OverrideHandler<RepositoryHandler<object>>;
|
|
98
|
+
}
|
|
@@ -1,15 +1,18 @@
|
|
|
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 repositoryHandlerKind = createCleanKind("repository-handler");
|
|
4
6
|
/**
|
|
5
7
|
* {@include clean/createRepository/index.md}
|
|
6
8
|
*/
|
|
7
9
|
function createRepository() {
|
|
8
|
-
return
|
|
10
|
+
return pipe({
|
|
9
11
|
createImplementation(implementation) {
|
|
10
12
|
return implementation;
|
|
11
13
|
},
|
|
12
|
-
});
|
|
14
|
+
}, repositoryHandlerKind.setTo, createRepository.overrideHandler.apply);
|
|
13
15
|
}
|
|
16
|
+
createRepository.overrideHandler = createOverride("@duplojs/utils/clean/repository");
|
|
14
17
|
|
|
15
18
|
export { createRepository, repositoryHandlerKind };
|
package/dist/clean/useCase.cjs
CHANGED
|
@@ -7,19 +7,24 @@ var entry = require('../object/entry.cjs');
|
|
|
7
7
|
var uncapitalize = require('../string/uncapitalize.cjs');
|
|
8
8
|
var entries = require('../object/entries.cjs');
|
|
9
9
|
var fromEntries = require('../object/fromEntries.cjs');
|
|
10
|
+
var override = require('../common/override.cjs');
|
|
10
11
|
|
|
11
12
|
const useCaseHandlerKind = kind.createCleanKind("use-case-handler");
|
|
12
13
|
/**
|
|
13
14
|
* {@include clean/createUseCase/index.md}
|
|
14
15
|
*/
|
|
15
16
|
function createUseCase(dependencies, getUseCase) {
|
|
16
|
-
return
|
|
17
|
+
return pipe.pipe({
|
|
17
18
|
dependencies,
|
|
18
|
-
getUseCase: (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
getUseCase: (injectedDependencies) => getUseCase(pipe.pipe(dependencies, entries.entries, map.map(([key, value]) => {
|
|
20
|
+
const formattedKey = uncapitalize.uncapitalize(key);
|
|
21
|
+
return entry.entry(formattedKey, useCaseHandlerKind.has(value) && !injectedDependencies[formattedKey]
|
|
22
|
+
? value.getUseCase(injectedDependencies)
|
|
23
|
+
: injectedDependencies[formattedKey]);
|
|
24
|
+
}), fromEntries.fromEntries)),
|
|
25
|
+
}, useCaseHandlerKind.setTo, createUseCase.overrideHandler.apply);
|
|
22
26
|
}
|
|
27
|
+
createUseCase.overrideHandler = override.createOverride("@duplojs/utils/clean/use-case");
|
|
23
28
|
/**
|
|
24
29
|
* {@include clean/useCaseInstances/index.md}
|
|
25
30
|
*/
|
package/dist/clean/useCase.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { type ObjectEntry, type Kind, type SimplifyTopLevel, type UnionToIntersection } from "../common";
|
|
1
|
+
import { type ObjectEntry, type Kind, type SimplifyTopLevel, type UnionToIntersection, type Adaptor } from "../common";
|
|
2
2
|
import { type RepositoryHandler } from "./repository";
|
|
3
3
|
export type UseCaseDependencies = Record<string, RepositoryHandler | UseCaseHandler>;
|
|
4
4
|
export type UseCaseDependenciesValue<GenericDependencies extends UseCaseDependencies> = SimplifyTopLevel<{
|
|
5
|
-
[Prop in keyof GenericDependencies as
|
|
5
|
+
[Prop in keyof GenericDependencies as Uncapitalize<Adaptor<Prop, string>>]: GenericDependencies[Prop] extends RepositoryHandler ? ReturnType<GenericDependencies[Prop]["createImplementation"]> : GenericDependencies[Prop] extends UseCaseHandler ? ReturnType<GenericDependencies[Prop]["getUseCase"]> : never;
|
|
6
6
|
}>;
|
|
7
7
|
export type GetAllRepositories<GenericDependenciesValue extends UseCaseDependencies> = GenericDependenciesValue extends any ? ({
|
|
8
8
|
[Prop in keyof GenericDependenciesValue]: (GenericDependenciesValue[Prop] extends RepositoryHandler ? [
|
|
9
|
-
|
|
9
|
+
Uncapitalize<Adaptor<Prop, string>>,
|
|
10
10
|
ReturnType<GenericDependenciesValue[Prop]["createImplementation"]>
|
|
11
11
|
] : GenericDependenciesValue[Prop] extends UseCaseHandler ? GetAllRepositories<GenericDependenciesValue[Prop]["dependencies"]> : never);
|
|
12
12
|
})[keyof GenericDependenciesValue] : never;
|
|
@@ -26,9 +26,11 @@ export interface UseCaseHandler<GenericDependencies extends UseCaseDependencies
|
|
|
26
26
|
* ```
|
|
27
27
|
*
|
|
28
28
|
*/
|
|
29
|
-
getUseCase(repositories: (GetAllRepositories<GenericDependencies> extends infer InferredEntriesDependenciesValue extends ObjectEntry ? {
|
|
30
|
-
[Entry in InferredEntriesDependenciesValue as
|
|
31
|
-
} : never)
|
|
29
|
+
getUseCase(repositories: ((GetAllRepositories<GenericDependencies> extends infer InferredEntriesDependenciesValue extends ObjectEntry ? {
|
|
30
|
+
[Entry in InferredEntriesDependenciesValue as Entry[0]]: Entry[1];
|
|
31
|
+
} : never) & ({
|
|
32
|
+
[Prop in keyof GenericDependencies as GenericDependencies[Prop] extends UseCaseHandler ? Uncapitalize<Adaptor<Prop, string>> : never]?: GenericDependencies[Prop] extends UseCaseHandler ? ReturnType<GenericDependencies[Prop]["getUseCase"]> : never;
|
|
33
|
+
}))): GenericUseCase;
|
|
32
34
|
}
|
|
33
35
|
/**
|
|
34
36
|
* Creates a use case handler with explicit dependencies.
|
|
@@ -109,6 +111,9 @@ export interface UseCaseHandler<GenericDependencies extends UseCaseDependencies
|
|
|
109
111
|
*
|
|
110
112
|
*/
|
|
111
113
|
export declare function createUseCase<const GenericDependencies extends UseCaseDependencies, GenericUseCase extends (input: any) => any>(dependencies: GenericDependencies, getUseCase: (dependenciesValue: UseCaseDependenciesValue<GenericDependencies>) => GenericUseCase): UseCaseHandler<GenericDependencies, GenericUseCase>;
|
|
114
|
+
export declare namespace createUseCase {
|
|
115
|
+
var overrideHandler: import("../common").OverrideHandler<UseCaseHandler<any, any>>;
|
|
116
|
+
}
|
|
112
117
|
/**
|
|
113
118
|
* Instantiates multiple use cases at once.
|
|
114
119
|
*
|
|
@@ -159,5 +164,7 @@ export declare function createUseCase<const GenericDependencies extends UseCaseD
|
|
|
159
164
|
*
|
|
160
165
|
*/
|
|
161
166
|
export declare function useCaseInstances<GenericUseCases extends Record<string, UseCaseHandler>>(useCases: GenericUseCases, repositories: SimplifyTopLevel<UnionToIntersection<{
|
|
162
|
-
[Prop in keyof GenericUseCases]:
|
|
167
|
+
[Prop in keyof GenericUseCases]: GetAllRepositories<GenericUseCases[Prop]["dependencies"]> extends infer InferredEntriesDependenciesValue extends ObjectEntry ? {
|
|
168
|
+
[Entry in InferredEntriesDependenciesValue as Entry[0]]: Entry[1];
|
|
169
|
+
} : never;
|
|
163
170
|
}[keyof GenericUseCases]>>): UseCaseDependenciesValue<GenericUseCases>;
|