@duplojs/utils 1.5.8 → 1.5.9
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/entity/index.cjs +1 -0
- package/dist/clean/entity/index.d.ts +18 -13
- package/dist/clean/entity/index.mjs +1 -1
- package/dist/clean/entity/property.cjs +7 -1
- package/dist/clean/entity/property.d.ts +8 -4
- package/dist/clean/entity/property.mjs +7 -2
- package/dist/clean/entity/unwrap.cjs +3 -0
- package/dist/clean/entity/unwrap.d.ts +1 -1
- package/dist/clean/entity/unwrap.mjs +3 -0
- package/dist/clean/index.cjs +1 -0
- package/dist/clean/index.mjs +1 -1
- package/package.json +1 -1
|
@@ -86,6 +86,7 @@ createEntity.overrideHandler = override.createOverride("@duplojs/utils/clean/ent
|
|
|
86
86
|
exports.entityPropertyArrayKind = property.entityPropertyArrayKind;
|
|
87
87
|
exports.entityPropertyDefinitionToDataParser = property.entityPropertyDefinitionToDataParser;
|
|
88
88
|
exports.entityPropertyDefinitionTools = property.entityPropertyDefinitionTools;
|
|
89
|
+
exports.entityPropertyIdentifierKind = property.entityPropertyIdentifierKind;
|
|
89
90
|
exports.entityPropertyNullableKind = property.entityPropertyNullableKind;
|
|
90
91
|
exports.entityPropertyStructureKind = property.entityPropertyStructureKind;
|
|
91
92
|
exports.entityPropertyUnionKind = property.entityPropertyUnionKind;
|
|
@@ -35,6 +35,7 @@ export interface EntityHandler<GenericName extends string = string, GenericPrope
|
|
|
35
35
|
* Builds an entity from already typed properties.
|
|
36
36
|
*
|
|
37
37
|
* ```ts
|
|
38
|
+
* nick: nullable(Name),
|
|
38
39
|
* preferences: structure({
|
|
39
40
|
* theme: PreferencesTheme,
|
|
40
41
|
* pinnedNick: nullable(Name),
|
|
@@ -43,7 +44,6 @@ export interface EntityHandler<GenericName extends string = string, GenericPrope
|
|
|
43
44
|
* export type Entity = C.GetEntity<typeof Entity>;
|
|
44
45
|
*
|
|
45
46
|
* const defaultRole = Role.createOrThrow("client");
|
|
46
|
-
*
|
|
47
47
|
* ```
|
|
48
48
|
*
|
|
49
49
|
*/
|
|
@@ -52,15 +52,15 @@ export interface EntityHandler<GenericName extends string = string, GenericPrope
|
|
|
52
52
|
* Validates permissive raw properties and returns an Either with the typed entity.
|
|
53
53
|
*
|
|
54
54
|
* ```ts
|
|
55
|
+
* pinnedNick: null,
|
|
56
|
+
* },
|
|
55
57
|
* });
|
|
56
58
|
* }
|
|
57
59
|
* }
|
|
58
60
|
*
|
|
59
61
|
* const mapped = User.Entity.mapOrThrow({
|
|
62
|
+
* kind: "user",
|
|
60
63
|
* id: 2,
|
|
61
|
-
* name: "Bob",
|
|
62
|
-
* roles: ["client"],
|
|
63
|
-
* nick: "Bobby",
|
|
64
64
|
* ```
|
|
65
65
|
*
|
|
66
66
|
*/
|
|
@@ -69,12 +69,12 @@ export interface EntityHandler<GenericName extends string = string, GenericPrope
|
|
|
69
69
|
* Validates permissive raw properties and throws on error.
|
|
70
70
|
*
|
|
71
71
|
* ```ts
|
|
72
|
+
* name: Name;
|
|
72
73
|
* }) {
|
|
73
74
|
* return Entity.new({
|
|
74
75
|
* ...params,
|
|
76
|
+
* kind: "user",
|
|
75
77
|
* nick: null,
|
|
76
|
-
* roles: [defaultRole],
|
|
77
|
-
* preferences: {
|
|
78
78
|
* ```
|
|
79
79
|
*
|
|
80
80
|
*/
|
|
@@ -83,10 +83,10 @@ export interface EntityHandler<GenericName extends string = string, GenericPrope
|
|
|
83
83
|
* Checks if a value is an entity of this handler (type guard).
|
|
84
84
|
*
|
|
85
85
|
* ```ts
|
|
86
|
+
* preferences: {
|
|
87
|
+
* theme: PreferencesTheme.createOrThrow("light"),
|
|
86
88
|
* pinnedNick: null,
|
|
87
89
|
* },
|
|
88
|
-
* });
|
|
89
|
-
* }
|
|
90
90
|
* ```
|
|
91
91
|
*
|
|
92
92
|
*/
|
|
@@ -95,10 +95,10 @@ export interface EntityHandler<GenericName extends string = string, GenericPrope
|
|
|
95
95
|
* Updates an entity by merging typed properties into an existing entity.
|
|
96
96
|
*
|
|
97
97
|
* ```ts
|
|
98
|
-
*
|
|
98
|
+
* },
|
|
99
|
+
* });
|
|
99
100
|
*
|
|
100
|
-
*
|
|
101
|
-
* // result: C.Entity<"User">
|
|
101
|
+
* const result = true ? mapped : null;
|
|
102
102
|
* ```
|
|
103
103
|
*
|
|
104
104
|
*/
|
|
@@ -133,7 +133,8 @@ export declare class CreateEntityError extends CreateEntityError_base {
|
|
|
133
133
|
* DP.literal(["light", "dark"]),
|
|
134
134
|
* );
|
|
135
135
|
*
|
|
136
|
-
* export const Entity = C.createEntity("User", ({ array, nullable, structure }) => ({
|
|
136
|
+
* export const Entity = C.createEntity("User", ({ array, nullable, structure, identifier }) => ({
|
|
137
|
+
* kind: identifier("user"),
|
|
137
138
|
* id: Id,
|
|
138
139
|
* name: Name,
|
|
139
140
|
* roles: array(Role, { min: 1 }),
|
|
@@ -153,6 +154,7 @@ export declare class CreateEntityError extends CreateEntityError_base {
|
|
|
153
154
|
* }) {
|
|
154
155
|
* return Entity.new({
|
|
155
156
|
* ...params,
|
|
157
|
+
* kind: "user",
|
|
156
158
|
* nick: null,
|
|
157
159
|
* roles: [defaultRole],
|
|
158
160
|
* preferences: {
|
|
@@ -164,6 +166,7 @@ export declare class CreateEntityError extends CreateEntityError_base {
|
|
|
164
166
|
* }
|
|
165
167
|
*
|
|
166
168
|
* const mapped = User.Entity.mapOrThrow({
|
|
169
|
+
* kind: "user",
|
|
167
170
|
* id: 2,
|
|
168
171
|
* name: "Bob",
|
|
169
172
|
* roles: ["client"],
|
|
@@ -181,6 +184,7 @@ export declare class CreateEntityError extends CreateEntityError_base {
|
|
|
181
184
|
* }
|
|
182
185
|
*
|
|
183
186
|
* const mappedResult = User.Entity.map({
|
|
187
|
+
* kind: "user",
|
|
184
188
|
* id: 3,
|
|
185
189
|
* name: "Eve",
|
|
186
190
|
* roles: ["manager"],
|
|
@@ -202,7 +206,8 @@ export declare class CreateEntityError extends CreateEntityError_base {
|
|
|
202
206
|
* ```
|
|
203
207
|
*
|
|
204
208
|
* @remarks
|
|
205
|
-
* - The definition callback can use helpers like `array`, `nullable`, `union`, and `
|
|
209
|
+
* - The definition callback can use helpers like `array`, `nullable`, `union`, `structure`, and `identifier` to enrich properties.
|
|
210
|
+
* - `identifier` is intended for technical string literals (discriminators/tags), not free-form business text values.
|
|
206
211
|
* - Use `map`/`mapOrThrow` to build from raw inputs (with runtime constraint checks); `new` expects already typed values.
|
|
207
212
|
*
|
|
208
213
|
* @see https://utils.duplojs.dev/en/v1/api/clean/entity
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createCleanKind } from '../kind.mjs';
|
|
2
2
|
import { newTypeKind } from '../newType.mjs';
|
|
3
3
|
import { entityPropertyDefinitionTools, entityPropertyDefinitionToDataParser } from './property.mjs';
|
|
4
|
-
export { entityPropertyArrayKind, entityPropertyNullableKind, entityPropertyStructureKind, entityPropertyUnionKind } from './property.mjs';
|
|
4
|
+
export { entityPropertyArrayKind, entityPropertyIdentifierKind, entityPropertyNullableKind, entityPropertyStructureKind, entityPropertyUnionKind } from './property.mjs';
|
|
5
5
|
import { kindHeritage } from '../../common/kind.mjs';
|
|
6
6
|
import { pipe } from '../../common/pipe.mjs';
|
|
7
7
|
import { map } from '../../array/map.mjs';
|
|
@@ -14,6 +14,7 @@ var index = require('../../dataParser/parsers/object/index.cjs');
|
|
|
14
14
|
var index$1 = require('../../dataParser/parsers/array/index.cjs');
|
|
15
15
|
var min = require('../../dataParser/parsers/array/checkers/min.cjs');
|
|
16
16
|
var max = require('../../dataParser/parsers/array/checkers/max.cjs');
|
|
17
|
+
var literal = require('../../dataParser/parsers/literal.cjs');
|
|
17
18
|
var nullable = require('../../dataParser/parsers/nullable.cjs');
|
|
18
19
|
var union = require('../../dataParser/parsers/union.cjs');
|
|
19
20
|
var exhaustive = require('../../pattern/exhaustive.cjs');
|
|
@@ -22,6 +23,7 @@ const entityPropertyUnionKind = kind.createCleanKind("entity-property-union");
|
|
|
22
23
|
const entityPropertyNullableKind = kind.createCleanKind("entity-property-nullable");
|
|
23
24
|
const entityPropertyArrayKind = kind.createCleanKind("entity-property-array");
|
|
24
25
|
const entityPropertyStructureKind = kind.createCleanKind("entity-property-structure");
|
|
26
|
+
const entityPropertyIdentifierKind = kind.createCleanKind("entity-property-identifier");
|
|
25
27
|
const entityPropertyDefinitionTools = {
|
|
26
28
|
union(...definitions) {
|
|
27
29
|
return pipe.pipe(definitions, wrapValue.wrapValue, entityPropertyUnionKind.setTo);
|
|
@@ -35,6 +37,9 @@ const entityPropertyDefinitionTools = {
|
|
|
35
37
|
structure(definition) {
|
|
36
38
|
return pipe.pipe(definition, wrapValue.wrapValue, entityPropertyStructureKind.setTo);
|
|
37
39
|
},
|
|
40
|
+
identifier(definition) {
|
|
41
|
+
return pipe.pipe(definition, wrapValue.wrapValue, entityPropertyIdentifierKind.setTo);
|
|
42
|
+
},
|
|
38
43
|
};
|
|
39
44
|
function entityPropertyDefinitionToDataParser(propertyDefinition, treatNewTypeHandler) {
|
|
40
45
|
return pipe.pipe(propertyDefinition, when.when(newType.newTypeHandlerKind.has, treatNewTypeHandler), when.when(entityPropertyUnionKind.has, (union$1) => {
|
|
@@ -43,7 +48,7 @@ function entityPropertyDefinitionToDataParser(propertyDefinition, treatNewTypeHa
|
|
|
43
48
|
entityPropertyDefinitionToDataParser(firstInnerProperty, treatNewTypeHandler),
|
|
44
49
|
...map.map(restInnerProperty, (innerProperty) => entityPropertyDefinitionToDataParser(innerProperty, treatNewTypeHandler)),
|
|
45
50
|
]);
|
|
46
|
-
}), when.when(entityPropertyNullableKind.has, (nullable$1) => nullable.nullable(entityPropertyDefinitionToDataParser(unwrap.unwrap(nullable$1), treatNewTypeHandler))), when.when(entityPropertyArrayKind.has, (array) => {
|
|
51
|
+
}), when.when(entityPropertyNullableKind.has, (nullable$1) => nullable.nullable(entityPropertyDefinitionToDataParser(unwrap.unwrap(nullable$1), treatNewTypeHandler))), when.when(entityPropertyIdentifierKind.has, (identifier) => literal.literal(unwrap.unwrap(identifier))), when.when(entityPropertyArrayKind.has, (array) => {
|
|
47
52
|
const params = entityPropertyArrayKind.getValue(array);
|
|
48
53
|
return index$1.array(entityPropertyDefinitionToDataParser(unwrap.unwrap(array), treatNewTypeHandler), {
|
|
49
54
|
checkers: [
|
|
@@ -61,6 +66,7 @@ function entityPropertyDefinitionToDataParser(propertyDefinition, treatNewTypeHa
|
|
|
61
66
|
exports.entityPropertyArrayKind = entityPropertyArrayKind;
|
|
62
67
|
exports.entityPropertyDefinitionToDataParser = entityPropertyDefinitionToDataParser;
|
|
63
68
|
exports.entityPropertyDefinitionTools = entityPropertyDefinitionTools;
|
|
69
|
+
exports.entityPropertyIdentifierKind = entityPropertyIdentifierKind;
|
|
64
70
|
exports.entityPropertyNullableKind = entityPropertyNullableKind;
|
|
65
71
|
exports.entityPropertyStructureKind = entityPropertyStructureKind;
|
|
66
72
|
exports.entityPropertyUnionKind = entityPropertyUnionKind;
|
|
@@ -2,7 +2,7 @@ import { type GetNewType, type NewTypeHandler } from "../newType";
|
|
|
2
2
|
import { type WrappedValue, type Kind, type AnyTuple, type Unwrap, type GetKindValue, type IsEqual } from "../../common";
|
|
3
3
|
import * as DDataParser from "../../dataParser";
|
|
4
4
|
import * as DArray from "../../array";
|
|
5
|
-
export type EntityPropertyDefinition = (NewTypeHandler | EntityPropertyDefinitionUnion | EntityPropertyDefinitionNullable | EntityPropertyDefinitionArray | EntityPropertyDefinitionStructure);
|
|
5
|
+
export type EntityPropertyDefinition = (NewTypeHandler | EntityPropertyDefinitionUnion | EntityPropertyDefinitionNullable | EntityPropertyDefinitionArray | EntityPropertyDefinitionStructure | EntityPropertyDefinitionIdentifier);
|
|
6
6
|
export declare const entityPropertyUnionKind: import("../../common").KindHandler<import("../../common").KindDefinition<"@DuplojsUtilsClean/entity-property-union", unknown>>;
|
|
7
7
|
export interface EntityPropertyDefinitionUnion<GenericPropertyDefinition extends AnyTuple<EntityPropertyDefinition> = AnyTuple<EntityPropertyDefinition>> extends Kind<typeof entityPropertyUnionKind.definition>, WrappedValue<GenericPropertyDefinition> {
|
|
8
8
|
}
|
|
@@ -19,19 +19,22 @@ export interface EntityPropertyDefinitionArray<GenericPropertyDefinition extends
|
|
|
19
19
|
export declare const entityPropertyStructureKind: import("../../common").KindHandler<import("../../common").KindDefinition<"@DuplojsUtilsClean/entity-property-structure", unknown>>;
|
|
20
20
|
export interface EntityPropertyDefinitionStructure<GenericPropertyDefinition extends Record<string, EntityPropertyDefinition> = Record<string, EntityPropertyDefinition>> extends Kind<typeof entityPropertyStructureKind.definition>, WrappedValue<GenericPropertyDefinition> {
|
|
21
21
|
}
|
|
22
|
-
export
|
|
22
|
+
export declare const entityPropertyIdentifierKind: import("../../common").KindHandler<import("../../common").KindDefinition<"@DuplojsUtilsClean/entity-property-identifier", unknown>>;
|
|
23
|
+
export interface EntityPropertyDefinitionIdentifier<GenericPropertyDefinition extends string = string> extends Kind<typeof entityPropertyIdentifierKind.definition>, WrappedValue<GenericPropertyDefinition> {
|
|
24
|
+
}
|
|
25
|
+
export type EntityProperty<GenericProperty extends EntityPropertyDefinition = EntityPropertyDefinition> = IsEqual<GenericProperty, EntityPropertyDefinition> extends true ? unknown : GenericProperty extends NewTypeHandler ? GetNewType<GenericProperty> : GenericProperty extends EntityPropertyDefinitionUnion ? EntityProperty<Unwrap<GenericProperty>[number]> : GenericProperty extends EntityPropertyDefinitionNullable ? EntityProperty<Unwrap<GenericProperty>> | null : GenericProperty extends EntityPropertyDefinitionIdentifier ? Unwrap<GenericProperty> : GenericProperty extends EntityPropertyDefinitionArray ? GetKindValue<typeof entityPropertyArrayKind, GenericProperty>["min"] extends number ? EntityProperty<Unwrap<GenericProperty>> extends infer InferredEntityProperty ? readonly [
|
|
23
26
|
...DArray.CreateTuple<InferredEntityProperty, GetKindValue<typeof entityPropertyArrayKind, GenericProperty>["min"]>,
|
|
24
27
|
...InferredEntityProperty[]
|
|
25
28
|
] : never : readonly EntityProperty<Unwrap<GenericProperty>>[] : GenericProperty extends EntityPropertyDefinitionStructure ? Unwrap<GenericProperty> extends infer InferredShape extends Record<string, any> ? {
|
|
26
29
|
readonly [Prop in keyof InferredShape]: EntityProperty<InferredShape[Prop]>;
|
|
27
30
|
} : never : never;
|
|
28
|
-
export type EntityRawProperty<GenericProperty extends EntityPropertyDefinition = EntityPropertyDefinition> = IsEqual<GenericProperty, EntityPropertyDefinition> extends true ? any : GenericProperty extends NewTypeHandler ? Unwrap<GetNewType<GenericProperty>> : GenericProperty extends EntityPropertyDefinitionUnion ? EntityRawProperty<Unwrap<GenericProperty>[number]> : GenericProperty extends EntityPropertyDefinitionNullable ? EntityRawProperty<Unwrap<GenericProperty>> | null : GenericProperty extends EntityPropertyDefinitionArray ? GetKindValue<typeof entityPropertyArrayKind, GenericProperty>["min"] extends number ? EntityRawProperty<Unwrap<GenericProperty>> extends infer InferredEntityProperty ? readonly [
|
|
31
|
+
export type EntityRawProperty<GenericProperty extends EntityPropertyDefinition = EntityPropertyDefinition> = IsEqual<GenericProperty, EntityPropertyDefinition> extends true ? any : GenericProperty extends NewTypeHandler ? Unwrap<GetNewType<GenericProperty>> : GenericProperty extends EntityPropertyDefinitionUnion ? EntityRawProperty<Unwrap<GenericProperty>[number]> : GenericProperty extends EntityPropertyDefinitionNullable ? EntityRawProperty<Unwrap<GenericProperty>> | null : GenericProperty extends EntityPropertyDefinitionIdentifier ? Unwrap<GenericProperty> : GenericProperty extends EntityPropertyDefinitionArray ? GetKindValue<typeof entityPropertyArrayKind, GenericProperty>["min"] extends number ? EntityRawProperty<Unwrap<GenericProperty>> extends infer InferredEntityProperty ? readonly [
|
|
29
32
|
...DArray.CreateTuple<InferredEntityProperty, GetKindValue<typeof entityPropertyArrayKind, GenericProperty>["min"]>,
|
|
30
33
|
...InferredEntityProperty[]
|
|
31
34
|
] : never : readonly EntityRawProperty<Unwrap<GenericProperty>>[] : GenericProperty extends EntityPropertyDefinitionStructure ? Unwrap<GenericProperty> extends infer InferredEntityShape extends Record<string, any> ? {
|
|
32
35
|
readonly [Prop in keyof InferredEntityShape]: EntityRawProperty<InferredEntityShape[Prop]>;
|
|
33
36
|
} : never : never;
|
|
34
|
-
export type EntityInputRawProperty<GenericProperty extends EntityPropertyDefinition = EntityPropertyDefinition> = IsEqual<GenericProperty, EntityPropertyDefinition> extends true ? any : GenericProperty extends NewTypeHandler<any, infer InferredValue, any, infer InferredInput> ? IsEqual<InferredInput, never> extends true ? InferredValue : InferredInput : GenericProperty extends EntityPropertyDefinitionUnion ? EntityInputRawProperty<Unwrap<GenericProperty>[number]> : GenericProperty extends EntityPropertyDefinitionNullable ? EntityInputRawProperty<Unwrap<GenericProperty>> | null : GenericProperty extends EntityPropertyDefinitionArray ? readonly EntityInputRawProperty<Unwrap<GenericProperty>>[] : GenericProperty extends EntityPropertyDefinitionStructure ? Unwrap<GenericProperty> extends infer InferredShape extends Record<string, any> ? {
|
|
37
|
+
export type EntityInputRawProperty<GenericProperty extends EntityPropertyDefinition = EntityPropertyDefinition> = IsEqual<GenericProperty, EntityPropertyDefinition> extends true ? any : GenericProperty extends NewTypeHandler<any, infer InferredValue, any, infer InferredInput> ? IsEqual<InferredInput, never> extends true ? InferredValue : InferredInput : GenericProperty extends EntityPropertyDefinitionUnion ? EntityInputRawProperty<Unwrap<GenericProperty>[number]> : GenericProperty extends EntityPropertyDefinitionNullable ? EntityInputRawProperty<Unwrap<GenericProperty>> | null : GenericProperty extends EntityPropertyDefinitionIdentifier ? Unwrap<GenericProperty> : GenericProperty extends EntityPropertyDefinitionArray ? readonly EntityInputRawProperty<Unwrap<GenericProperty>>[] : GenericProperty extends EntityPropertyDefinitionStructure ? Unwrap<GenericProperty> extends infer InferredShape extends Record<string, any> ? {
|
|
35
38
|
readonly [Prop in keyof InferredShape]: EntityInputRawProperty<InferredShape[Prop]>;
|
|
36
39
|
} : never : never;
|
|
37
40
|
export declare const entityPropertyDefinitionTools: {
|
|
@@ -39,5 +42,6 @@ export declare const entityPropertyDefinitionTools: {
|
|
|
39
42
|
nullable<const GenericDefinitionValue extends EntityPropertyDefinition>(definition: GenericDefinitionValue): EntityPropertyDefinitionNullable<GenericDefinitionValue>;
|
|
40
43
|
array<const GenericDefinitionValue extends EntityPropertyDefinition, const GenericParams extends EntityPropertyDefinitionArrayParams = {}>(definition: GenericDefinitionValue, params?: GenericParams): EntityPropertyDefinitionArray<GenericDefinitionValue, GenericParams>;
|
|
41
44
|
structure<const GenericDefinitionValue extends Record<string, EntityPropertyDefinition>>(definition: GenericDefinitionValue): EntityPropertyDefinitionStructure<GenericDefinitionValue>;
|
|
45
|
+
identifier<const GenericDefinitionValue extends string>(definition: GenericDefinitionValue): EntityPropertyDefinitionIdentifier<GenericDefinitionValue>;
|
|
42
46
|
};
|
|
43
47
|
export declare function entityPropertyDefinitionToDataParser(propertyDefinition: EntityPropertyDefinition, treatNewTypeHandler: (newTypeHandler: NewTypeHandler) => DDataParser.DataParser): DDataParser.DataParser;
|
|
@@ -12,6 +12,7 @@ import { object } from '../../dataParser/parsers/object/index.mjs';
|
|
|
12
12
|
import { array } from '../../dataParser/parsers/array/index.mjs';
|
|
13
13
|
import { checkerArrayMin } from '../../dataParser/parsers/array/checkers/min.mjs';
|
|
14
14
|
import { checkerArrayMax } from '../../dataParser/parsers/array/checkers/max.mjs';
|
|
15
|
+
import { literal } from '../../dataParser/parsers/literal.mjs';
|
|
15
16
|
import { nullable } from '../../dataParser/parsers/nullable.mjs';
|
|
16
17
|
import { union } from '../../dataParser/parsers/union.mjs';
|
|
17
18
|
import { exhaustive } from '../../pattern/exhaustive.mjs';
|
|
@@ -20,6 +21,7 @@ const entityPropertyUnionKind = createCleanKind("entity-property-union");
|
|
|
20
21
|
const entityPropertyNullableKind = createCleanKind("entity-property-nullable");
|
|
21
22
|
const entityPropertyArrayKind = createCleanKind("entity-property-array");
|
|
22
23
|
const entityPropertyStructureKind = createCleanKind("entity-property-structure");
|
|
24
|
+
const entityPropertyIdentifierKind = createCleanKind("entity-property-identifier");
|
|
23
25
|
const entityPropertyDefinitionTools = {
|
|
24
26
|
union(...definitions) {
|
|
25
27
|
return pipe(definitions, wrapValue, entityPropertyUnionKind.setTo);
|
|
@@ -33,6 +35,9 @@ const entityPropertyDefinitionTools = {
|
|
|
33
35
|
structure(definition) {
|
|
34
36
|
return pipe(definition, wrapValue, entityPropertyStructureKind.setTo);
|
|
35
37
|
},
|
|
38
|
+
identifier(definition) {
|
|
39
|
+
return pipe(definition, wrapValue, entityPropertyIdentifierKind.setTo);
|
|
40
|
+
},
|
|
36
41
|
};
|
|
37
42
|
function entityPropertyDefinitionToDataParser(propertyDefinition, treatNewTypeHandler) {
|
|
38
43
|
return pipe(propertyDefinition, when(newTypeHandlerKind.has, treatNewTypeHandler), when(entityPropertyUnionKind.has, (union$1) => {
|
|
@@ -41,7 +46,7 @@ function entityPropertyDefinitionToDataParser(propertyDefinition, treatNewTypeHa
|
|
|
41
46
|
entityPropertyDefinitionToDataParser(firstInnerProperty, treatNewTypeHandler),
|
|
42
47
|
...map(restInnerProperty, (innerProperty) => entityPropertyDefinitionToDataParser(innerProperty, treatNewTypeHandler)),
|
|
43
48
|
]);
|
|
44
|
-
}), when(entityPropertyNullableKind.has, (nullable$1) => nullable(entityPropertyDefinitionToDataParser(unwrap(nullable$1), treatNewTypeHandler))), when(entityPropertyArrayKind.has, (array$1) => {
|
|
49
|
+
}), when(entityPropertyNullableKind.has, (nullable$1) => nullable(entityPropertyDefinitionToDataParser(unwrap(nullable$1), treatNewTypeHandler))), when(entityPropertyIdentifierKind.has, (identifier) => literal(unwrap(identifier))), when(entityPropertyArrayKind.has, (array$1) => {
|
|
45
50
|
const params = entityPropertyArrayKind.getValue(array$1);
|
|
46
51
|
return array(entityPropertyDefinitionToDataParser(unwrap(array$1), treatNewTypeHandler), {
|
|
47
52
|
checkers: [
|
|
@@ -56,4 +61,4 @@ function entityPropertyDefinitionToDataParser(propertyDefinition, treatNewTypeHa
|
|
|
56
61
|
}), when(entityPropertyStructureKind.has, (structure) => pipe(structure, unwrap, entries, map(([key, value]) => entry(key, entityPropertyDefinitionToDataParser(value, treatNewTypeHandler))), fromEntries, object)), exhaustive);
|
|
57
62
|
}
|
|
58
63
|
|
|
59
|
-
export { entityPropertyArrayKind, entityPropertyDefinitionToDataParser, entityPropertyDefinitionTools, entityPropertyNullableKind, entityPropertyStructureKind, entityPropertyUnionKind };
|
|
64
|
+
export { entityPropertyArrayKind, entityPropertyDefinitionToDataParser, entityPropertyDefinitionTools, entityPropertyIdentifierKind, entityPropertyNullableKind, entityPropertyStructureKind, entityPropertyUnionKind };
|
|
@@ -17,6 +17,9 @@ function unwrapEntityProperty(property, params) {
|
|
|
17
17
|
else if (property === null) {
|
|
18
18
|
return property;
|
|
19
19
|
}
|
|
20
|
+
else if (typeof property === "string") {
|
|
21
|
+
return property;
|
|
22
|
+
}
|
|
20
23
|
else if (property instanceof Array) {
|
|
21
24
|
const length = property.length;
|
|
22
25
|
const result = [];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Unwrap, type WrappedValue, type IsEqual, type Transformer, type TransformerFunction, type SimplifyTopLevel, type DeepReadonly, type GetKindValue, type Kind } from "../../common";
|
|
2
2
|
import { entityKind, type Entity } from ".";
|
|
3
3
|
import { flagKind } from "../flag";
|
|
4
|
-
export type UnwrapEntityProperty<GenericProperty extends unknown, GenericTransformer extends TransformerFunction = never> = GenericProperty extends WrappedValue ? IsEqual<GenericTransformer, never> extends true ? Unwrap<GenericProperty> : GenericTransformer extends TransformerFunction<infer InferredMethodName> ? Transformer<Unwrap<GenericProperty>, InferredMethodName> : never : GenericProperty extends null ? null : GenericProperty extends readonly [infer InferredFirst, ...infer InferredRest] ? readonly [
|
|
4
|
+
export type UnwrapEntityProperty<GenericProperty extends unknown, GenericTransformer extends TransformerFunction = never> = GenericProperty extends WrappedValue ? IsEqual<GenericTransformer, never> extends true ? Unwrap<GenericProperty> : GenericTransformer extends TransformerFunction<infer InferredMethodName> ? Transformer<Unwrap<GenericProperty>, InferredMethodName> : never : GenericProperty extends null ? null : GenericProperty extends string ? GenericProperty : GenericProperty extends readonly [infer InferredFirst, ...infer InferredRest] ? readonly [
|
|
5
5
|
UnwrapEntityProperty<InferredFirst, GenericTransformer>,
|
|
6
6
|
...UnwrapEntityProperty<InferredRest, GenericTransformer>
|
|
7
7
|
] : GenericProperty extends readonly [] ? readonly [] : GenericProperty extends readonly unknown[] ? readonly UnwrapEntityProperty<GenericProperty[number], GenericTransformer>[] : GenericProperty extends Record<string, unknown> ? {
|
|
@@ -15,6 +15,9 @@ function unwrapEntityProperty(property, params) {
|
|
|
15
15
|
else if (property === null) {
|
|
16
16
|
return property;
|
|
17
17
|
}
|
|
18
|
+
else if (typeof property === "string") {
|
|
19
|
+
return property;
|
|
20
|
+
}
|
|
18
21
|
else if (property instanceof Array) {
|
|
19
22
|
const length = property.length;
|
|
20
23
|
const result = [];
|
package/dist/clean/index.cjs
CHANGED
|
@@ -65,6 +65,7 @@ exports.some = maybe.some;
|
|
|
65
65
|
exports.entityPropertyArrayKind = property.entityPropertyArrayKind;
|
|
66
66
|
exports.entityPropertyDefinitionToDataParser = property.entityPropertyDefinitionToDataParser;
|
|
67
67
|
exports.entityPropertyDefinitionTools = property.entityPropertyDefinitionTools;
|
|
68
|
+
exports.entityPropertyIdentifierKind = property.entityPropertyIdentifierKind;
|
|
68
69
|
exports.entityPropertyNullableKind = property.entityPropertyNullableKind;
|
|
69
70
|
exports.entityPropertyStructureKind = property.entityPropertyStructureKind;
|
|
70
71
|
exports.entityPropertyUnionKind = property.entityPropertyUnionKind;
|
package/dist/clean/index.mjs
CHANGED
|
@@ -5,7 +5,7 @@ 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 { none, some } from './maybe.mjs';
|
|
8
|
-
export { entityPropertyArrayKind, entityPropertyDefinitionToDataParser, entityPropertyDefinitionTools, entityPropertyNullableKind, entityPropertyStructureKind, entityPropertyUnionKind } from './entity/property.mjs';
|
|
8
|
+
export { entityPropertyArrayKind, entityPropertyDefinitionToDataParser, entityPropertyDefinitionTools, entityPropertyIdentifierKind, entityPropertyNullableKind, entityPropertyStructureKind, entityPropertyUnionKind } from './entity/property.mjs';
|
|
9
9
|
export { unwrapEntity, unwrapEntityProperty } from './entity/unwrap.mjs';
|
|
10
10
|
export { CreateConstrainedTypeError, constrainedTypeKind, constraintHandlerKind, createConstraint } from './constraint/base.mjs';
|
|
11
11
|
export { Int, Negative, NumberMax, NumberMin, Positive, PositiveInt } from './constraint/defaultConstraint/number.mjs';
|