@tstdl/base 0.78.0-beta2 → 0.78.0-beta5
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/api/server/gateway.js +3 -0
- package/api/server/gateway.js.map +1 -1
- package/api/types.d.ts +11 -8
- package/api/types.js.map +1 -1
- package/container/container.js.map +1 -1
- package/container/resolve-chain.d.ts +5 -5
- package/container/resolve-chain.js.map +1 -1
- package/database/mongo/mongo-base.repository.js.map +1 -1
- package/database/mongo/types.d.ts +2 -2
- package/enumerable/async-enumerable.d.ts +2 -1
- package/enumerable/async-enumerable.js +3 -0
- package/enumerable/async-enumerable.js.map +1 -1
- package/enumerable/enumerable-methods.d.ts +1 -0
- package/enumerable/enumerable.d.ts +1 -0
- package/enumerable/enumerable.js +12 -18
- package/enumerable/enumerable.js.map +1 -1
- package/key-value-store/mongo/mongo-key-value.model.d.ts +1 -0
- package/mail/template-providers/file-mail-template.provider.js +2 -2
- package/mail/template-providers/file-mail-template.provider.js.map +1 -1
- package/package.json +5 -5
- package/queue/mongo/mongo-job.repository.js +1 -1
- package/queue/mongo/mongo-job.repository.js.map +1 -1
- package/reflection/registry.d.ts +8 -8
- package/reflection/registry.js.map +1 -1
- package/schema/coercers/default-value.coercer.d.ts +1 -1
- package/schema/coercers/default-value.coercer.js +1 -1
- package/schema/coercers/default-value.coercer.js.map +1 -1
- package/schema/coercers/uint8-array.coercer.js +3 -8
- package/schema/coercers/uint8-array.coercer.js.map +1 -1
- package/schema/constraints/integer.js +1 -1
- package/schema/constraints/integer.js.map +1 -1
- package/schema/constraints/maximum-date.js +1 -1
- package/schema/constraints/maximum-date.js.map +1 -1
- package/schema/constraints/maximum.js +1 -1
- package/schema/constraints/maximum.js.map +1 -1
- package/schema/constraints/minimum-date.js +1 -1
- package/schema/constraints/minimum-date.js.map +1 -1
- package/schema/constraints/minimum.js +1 -1
- package/schema/constraints/minimum.js.map +1 -1
- package/schema/constraints/pattern.js +1 -1
- package/schema/constraints/pattern.js.map +1 -1
- package/schema/decorators/array.d.ts +3 -2
- package/schema/decorators/array.js +1 -1
- package/schema/decorators/array.js.map +1 -1
- package/schema/decorators/defaulted.d.ts +3 -2
- package/schema/decorators/defaulted.js +1 -1
- package/schema/decorators/defaulted.js.map +1 -1
- package/schema/decorators/property.d.ts +3 -3
- package/schema/decorators/property.js +4 -1
- package/schema/decorators/property.js.map +1 -1
- package/schema/decorators/types.d.ts +3 -3
- package/schema/decorators/utils.d.ts +3 -2
- package/schema/decorators/utils.js +4 -8
- package/schema/decorators/utils.js.map +1 -1
- package/schema/schema.d.ts +10 -9
- package/schema/schema.js +89 -93
- package/schema/schema.js.map +1 -1
- package/schema/schemas/any.d.ts +2 -2
- package/schema/schemas/any.js +2 -2
- package/schema/schemas/any.js.map +1 -1
- package/schema/schemas/array.d.ts +4 -2
- package/schema/schemas/array.js +1 -2
- package/schema/schemas/array.js.map +1 -1
- package/schema/schemas/assign.d.ts +5 -5
- package/schema/schemas/assign.js +0 -1
- package/schema/schemas/assign.js.map +1 -1
- package/schema/schemas/boolean.js +2 -3
- package/schema/schemas/boolean.js.map +1 -1
- package/schema/schemas/constraint.d.ts +1 -1
- package/schema/schemas/constraint.js +1 -2
- package/schema/schemas/constraint.js.map +1 -1
- package/schema/schemas/date.js +2 -3
- package/schema/schemas/date.js.map +1 -1
- package/schema/schemas/defaulted.d.ts +4 -2
- package/schema/schemas/defaulted.js +1 -2
- package/schema/schemas/defaulted.js.map +1 -1
- package/schema/schemas/enumeration.js +2 -3
- package/schema/schemas/enumeration.js.map +1 -1
- package/schema/schemas/exclude.js.map +1 -1
- package/schema/schemas/instance.d.ts +2 -2
- package/schema/schemas/instance.js +1 -1
- package/schema/schemas/instance.js.map +1 -1
- package/schema/schemas/literal.js +2 -3
- package/schema/schemas/literal.js.map +1 -1
- package/schema/schemas/nullable.d.ts +1 -1
- package/schema/schemas/nullable.js +1 -1
- package/schema/schemas/nullable.js.map +1 -1
- package/schema/schemas/number.d.ts +1 -1
- package/schema/schemas/number.js +5 -3
- package/schema/schemas/number.js.map +1 -1
- package/schema/schemas/object.d.ts +2 -3
- package/schema/schemas/object.js.map +1 -1
- package/schema/schemas/optional.d.ts +1 -1
- package/schema/schemas/optional.js +1 -1
- package/schema/schemas/optional.js.map +1 -1
- package/schema/schemas/pick.js.map +1 -1
- package/schema/schemas/readable-stream.d.ts +2 -2
- package/schema/schemas/readable-stream.js +3 -4
- package/schema/schemas/readable-stream.js.map +1 -1
- package/schema/schemas/record.d.ts +5 -4
- package/schema/schemas/record.js +2 -2
- package/schema/schemas/record.js.map +1 -1
- package/schema/schemas/regexp.js +3 -3
- package/schema/schemas/regexp.js.map +1 -1
- package/schema/schemas/string.js +2 -3
- package/schema/schemas/string.js.map +1 -1
- package/schema/schemas/transform.d.ts +4 -3
- package/schema/schemas/transform.js +1 -3
- package/schema/schemas/transform.js.map +1 -1
- package/schema/schemas/uint8-array.d.ts +2 -3
- package/schema/schemas/uint8-array.js +4 -4
- package/schema/schemas/uint8-array.js.map +1 -1
- package/schema/schemas/union.d.ts +9 -4
- package/schema/schemas/union.js +5 -4
- package/schema/schemas/union.js.map +1 -1
- package/schema/schemas/unknown.d.ts +2 -2
- package/schema/schemas/unknown.js +2 -2
- package/schema/schemas/unknown.js.map +1 -1
- package/schema/transformers/generic.d.ts +9 -9
- package/schema/transformers/generic.js.map +1 -1
- package/schema/transformers/lowercase.d.ts +2 -2
- package/schema/transformers/lowercase.js +1 -1
- package/schema/transformers/lowercase.js.map +1 -1
- package/schema/transformers/trim.d.ts +2 -2
- package/schema/transformers/trim.js +1 -1
- package/schema/transformers/trim.js.map +1 -1
- package/schema/transformers/uppercase.d.ts +2 -2
- package/schema/transformers/uppercase.js +1 -1
- package/schema/transformers/uppercase.js.map +1 -1
- package/schema/types.d.ts +66 -48
- package/schema/types.js +47 -12
- package/schema/types.js.map +1 -1
- package/schema/utils/schema.d.ts +10 -9
- package/schema/utils/schema.js +43 -47
- package/schema/utils/schema.js.map +1 -1
- package/schema/utils/value-type.d.ts +4 -3
- package/schema/utils/value-type.js +19 -15
- package/schema/utils/value-type.js.map +1 -1
- package/templates/providers/file-template.provider.js.map +1 -1
- package/types.d.ts +35 -1
- package/utils/async-iterable-helpers/includes.d.ts +2 -0
- package/utils/async-iterable-helpers/includes.js +13 -0
- package/utils/async-iterable-helpers/includes.js.map +1 -0
- package/utils/async-iterable-helpers/index.d.ts +1 -0
- package/utils/async-iterable-helpers/index.js +1 -0
- package/utils/async-iterable-helpers/index.js.map +1 -1
- package/utils/iterable-helpers/includes.d.ts +1 -0
- package/utils/iterable-helpers/includes.js +9 -0
- package/utils/iterable-helpers/includes.js.map +1 -0
- package/utils/iterable-helpers/index.d.ts +1 -0
- package/utils/iterable-helpers/index.js +1 -0
- package/utils/iterable-helpers/index.js.map +1 -1
package/schema/types.d.ts
CHANGED
|
@@ -1,29 +1,40 @@
|
|
|
1
1
|
import type { JsonPath } from "../json-path/json-path";
|
|
2
|
-
import type { OneOrMany, Record, Type } from "../types";
|
|
3
|
-
import type { Schema } from './schema';
|
|
2
|
+
import type { AbstractConstructor, OneOrMany, Record, Type, TypedOmit } from "../types";
|
|
3
|
+
import type { NormalizedSchema, Schema } from './schema';
|
|
4
4
|
import type { SchemaError } from './schema.error';
|
|
5
|
-
declare const
|
|
6
|
-
export declare type SchemaFactoryFunction<T extends Record> = (data: T) =>
|
|
7
|
-
export declare type SchemaFactory<T extends Record> = {
|
|
8
|
-
type: Type<T
|
|
5
|
+
declare const schemaOutputTypeSymbol: unique symbol;
|
|
6
|
+
export declare type SchemaFactoryFunction<T extends Record, O = T> = (data: T) => NormalizeValueType<O>;
|
|
7
|
+
export declare type SchemaFactory<T extends Record, O = T> = {
|
|
8
|
+
type: Type<T>;
|
|
9
9
|
builder?: undefined;
|
|
10
10
|
} | {
|
|
11
11
|
type?: undefined;
|
|
12
|
-
builder: SchemaFactoryFunction<T>;
|
|
12
|
+
builder: SchemaFactoryFunction<T, O>;
|
|
13
13
|
};
|
|
14
14
|
export declare type ObjectSchemaProperties<T extends Record> = {
|
|
15
|
-
[K in keyof T]-?:
|
|
15
|
+
[K in keyof T]-?: OneOrMany<Schema<T[K]>>;
|
|
16
16
|
};
|
|
17
|
-
export declare type
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
export declare type NormalizedObjectSchemaProperties<T> = {
|
|
18
|
+
[K in keyof T]-?: Schema<T[K]>;
|
|
19
|
+
};
|
|
20
|
+
export declare type SchemaOutput<T extends Schema> = T extends ObjectSchema<any, infer O> ? O : T extends ValueSchema<any, infer O> ? O : T extends TypeSchema<infer O> ? O : never;
|
|
21
|
+
export declare type ObjectSchema<T extends Record = any, O extends Record = T> = {
|
|
22
|
+
[schemaOutputTypeSymbol]?: O;
|
|
23
|
+
sourceType?: ValueType;
|
|
24
|
+
factory?: SchemaFactory<T, O>;
|
|
20
25
|
properties: ObjectSchemaProperties<T>;
|
|
21
26
|
mask?: boolean;
|
|
22
|
-
allowUnknownProperties?:
|
|
27
|
+
allowUnknownProperties?: OneOrMany<Schema>;
|
|
28
|
+
};
|
|
29
|
+
export declare type TypeSchema<T = any> = {
|
|
30
|
+
type: ValueType<T>;
|
|
23
31
|
};
|
|
24
|
-
export declare type
|
|
25
|
-
|
|
26
|
-
|
|
32
|
+
export declare type NormalizedTypeSchema<T = any> = {
|
|
33
|
+
foo: ResolvedValueType<T>;
|
|
34
|
+
};
|
|
35
|
+
export declare type ValueSchema<T = unknown, O = T> = {
|
|
36
|
+
[schemaOutputTypeSymbol]?: O;
|
|
37
|
+
schema: OneOrMany<Schema<T, O>>;
|
|
27
38
|
array?: boolean;
|
|
28
39
|
optional?: boolean;
|
|
29
40
|
nullable?: boolean;
|
|
@@ -35,63 +46,61 @@ export declare type ValueSchema<T = any> = {
|
|
|
35
46
|
arrayConstraints?: OneOrMany<SchemaArrayConstraint>;
|
|
36
47
|
valueConstraints?: OneOrMany<SchemaValueConstraint>;
|
|
37
48
|
};
|
|
38
|
-
export declare type NormalizedObjectSchema<T extends Record = any> = {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
};
|
|
49
|
+
export declare type NormalizedObjectSchema<T extends Record = any, O extends Record = T> = {
|
|
50
|
+
[schemaOutputTypeSymbol]?: O;
|
|
51
|
+
factory?: SchemaFactory<T, O>;
|
|
52
|
+
properties: NormalizedObjectSchemaProperties<T>;
|
|
43
53
|
mask?: boolean;
|
|
44
54
|
allowUnknownProperties: Set<Schema>;
|
|
45
55
|
};
|
|
46
|
-
export declare type NormalizedValueSchema<T = any> = {
|
|
47
|
-
|
|
56
|
+
export declare type NormalizedValueSchema<T = any, O = T> = {
|
|
57
|
+
[schemaOutputTypeSymbol]?: O;
|
|
58
|
+
schema: Set<Schema<T, O>>;
|
|
48
59
|
array: boolean;
|
|
49
60
|
optional: boolean;
|
|
50
61
|
nullable: boolean;
|
|
51
62
|
coerce: boolean;
|
|
52
63
|
coercers: Map<ValueType, SchemaValueCoercer[]>;
|
|
53
|
-
transformers: readonly SchemaValueTransformer[];
|
|
64
|
+
transformers: readonly SchemaValueTransformer<any, any, any>[];
|
|
54
65
|
arrayConstraints: readonly SchemaArrayConstraint[];
|
|
55
66
|
valueConstraints: readonly SchemaValueConstraint[];
|
|
56
67
|
};
|
|
57
68
|
export declare type SchemaContext = {
|
|
58
|
-
schema:
|
|
69
|
+
schema: NormalizedSchema;
|
|
59
70
|
options: SchemaTestOptions;
|
|
60
71
|
};
|
|
61
72
|
export declare type ConstraintContext = SchemaContext;
|
|
62
73
|
export declare type TransformerContext = SchemaContext;
|
|
63
74
|
export declare type CoercerContext = SchemaContext;
|
|
64
|
-
export declare type
|
|
65
|
-
export declare type
|
|
75
|
+
export declare type NormalizeValueType<T> = T extends String ? string : T extends Number ? number : T extends Boolean ? boolean : T extends BigInt ? bigint : T extends Symbol ? symbol : T extends 'undefined' ? undefined : T extends 'null' ? null : T extends 'any' ? any : T;
|
|
76
|
+
export declare type NormalizeToValueType<T> = T extends string | String ? typeof String : T extends number ? typeof Number : T extends boolean ? typeof Boolean : T extends bigint ? typeof BigInt : T extends symbol ? typeof Symbol : T extends undefined ? 'undefined' : T extends null ? 'null' : T extends any ? 'any' : never;
|
|
77
|
+
export declare type ValueType<T = any> = AbstractConstructor<T> | NormalizeToValueType<T> | DeferredValueType<T>;
|
|
78
|
+
export declare type DeferredValueType<T = unknown> = {
|
|
66
79
|
deferred: () => ValueType<T>;
|
|
67
80
|
};
|
|
68
|
-
export declare type
|
|
69
|
-
export declare type
|
|
70
|
-
export declare type DeferredValueTypes<T = any> = {
|
|
71
|
-
deferred: () => ValueTypes<T>;
|
|
72
|
-
};
|
|
73
|
-
export declare type MaybeDeferredValueTypes<T = any> = OneOrMany<ValueTypes<T> | DeferredValueTypes<T>> | MaybeDeferredValueTypes<T>[];
|
|
81
|
+
export declare type ResolvedValueType<T = unknown> = Exclude<ValueType<T>, DeferredValueType>;
|
|
82
|
+
export declare type ValueTypeOutput<T extends ValueType> = T extends ValueType<infer U> ? NormalizeValueType<U> : never;
|
|
74
83
|
export declare type Coercible = {
|
|
75
84
|
coerce?: boolean;
|
|
76
85
|
};
|
|
77
|
-
export declare const
|
|
78
|
-
export declare const
|
|
86
|
+
export declare const primitiveConstructors: ValueType[];
|
|
87
|
+
export declare const primitiveConstructorSet: Set<ValueType<any>>;
|
|
79
88
|
export declare abstract class SchemaArrayConstraint {
|
|
80
89
|
abstract validate(value: readonly unknown[], path: JsonPath, context: ConstraintContext): ConstraintResult;
|
|
81
90
|
}
|
|
82
91
|
export declare type OptionKeys<T extends Record> = readonly (keyof T)[];
|
|
83
92
|
export declare abstract class SchemaValueConstraint {
|
|
84
|
-
abstract readonly suitableTypes:
|
|
93
|
+
abstract readonly suitableTypes: OneOrMany<ValueType>;
|
|
85
94
|
abstract readonly expects: OneOrMany<string>;
|
|
86
95
|
abstract validate(value: unknown, path: JsonPath, context: ConstraintContext): ConstraintResult;
|
|
87
96
|
}
|
|
88
|
-
export declare abstract class SchemaValueTransformer {
|
|
89
|
-
abstract readonly sourceType:
|
|
90
|
-
abstract readonly targetType: ValueType
|
|
91
|
-
abstract transform(value:
|
|
97
|
+
export declare abstract class SchemaValueTransformer<T = any, O = T, TransformOutput = O> {
|
|
98
|
+
abstract readonly sourceType: OneOrMany<ValueType<T>>;
|
|
99
|
+
abstract readonly targetType: ValueType<TransformOutput>;
|
|
100
|
+
abstract transform(value: O, path: JsonPath, context: TransformerContext): TransformResult<TransformOutput>;
|
|
92
101
|
}
|
|
93
102
|
export declare abstract class SchemaValueCoercer {
|
|
94
|
-
abstract readonly sourceType:
|
|
103
|
+
abstract readonly sourceType: OneOrMany<ValueType>;
|
|
95
104
|
abstract readonly targetType: ValueType;
|
|
96
105
|
abstract coerce(value: unknown, path: JsonPath, context: CoercerContext): CoerceResult;
|
|
97
106
|
}
|
|
@@ -132,19 +141,28 @@ export declare type CoerceResult = {
|
|
|
132
141
|
value?: undefined;
|
|
133
142
|
error: SchemaError;
|
|
134
143
|
};
|
|
135
|
-
export declare type TransformResult = {
|
|
144
|
+
export declare type TransformResult<T> = {
|
|
136
145
|
success: true;
|
|
137
|
-
value:
|
|
146
|
+
value: T;
|
|
138
147
|
error?: undefined;
|
|
139
148
|
} | {
|
|
140
149
|
success: false;
|
|
141
150
|
value?: undefined;
|
|
142
151
|
error: SchemaError;
|
|
143
152
|
};
|
|
144
|
-
export declare function objectSchema<T
|
|
145
|
-
export declare function valueSchema<T
|
|
146
|
-
export declare function
|
|
147
|
-
export declare function
|
|
148
|
-
export declare function
|
|
149
|
-
export declare function
|
|
153
|
+
export declare function objectSchema<T, O = T>(schema: ObjectSchema<T, O>): ObjectSchema<T, O>;
|
|
154
|
+
export declare function valueSchema<T, O = T>(schema: OneOrMany<Schema<T, O>>, options?: TypedOmit<ValueSchema<T, O>, 'schema'>): ValueSchema<T, O>;
|
|
155
|
+
export declare function typeSchema<T>(type: ValueType<T>): TypeSchema<NormalizeValueType<T>>;
|
|
156
|
+
export declare function isSchema<T extends Record, O extends Record>(value: any): value is Schema<T, O>;
|
|
157
|
+
export declare function isObjectSchema<T extends Record, O extends Record>(schema: Schema<T, O>): schema is ObjectSchema<T, O>;
|
|
158
|
+
export declare function isObjectSchema<T extends Record, O extends Record>(schema: any): schema is ObjectSchema<T, O>;
|
|
159
|
+
export declare function isValueSchema<T, O>(schema: Schema<T, O>): schema is ValueSchema<T, O>;
|
|
160
|
+
export declare function isValueSchema<T, O>(schema: any): schema is ValueSchema<T, O>;
|
|
161
|
+
export declare function isTypeSchema<T, O>(schema: Schema<T, O>): schema is TypeSchema<O>;
|
|
162
|
+
export declare function isTypeSchema<T, O>(schema: any): schema is TypeSchema<O>;
|
|
163
|
+
export declare function isDeferredValueType<T>(value: ValueType<T>): value is DeferredValueType<T>;
|
|
164
|
+
export declare function resolveValueTypes<T>(valueTypes: OneOrMany<ValueType<T>>): OneOrMany<ResolvedValueType<T>>;
|
|
165
|
+
export declare function resolveValueType<T>(valueType: ValueType<T>): ResolvedValueType<T>;
|
|
166
|
+
export declare function valueTypesOrSchemasToSchemas<T, O>(valueTypesOrSchemas: OneOrMany<ValueType<O> | Schema<T, O>>): OneOrMany<Schema<T, O>>;
|
|
167
|
+
export declare function valueTypeOrSchemaToSchema<T, O>(valueTypeOrSchema: ValueType<O> | Schema<T, O>): Schema<T, O>;
|
|
150
168
|
export {};
|
package/schema/types.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/* eslint-disable @typescript-eslint/ban-types */
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isDeferredValueType = exports.isValueSchema = exports.isObjectSchema = exports.isSchema = exports.valueSchema = exports.objectSchema = exports.SchemaValueCoercer = exports.SchemaValueTransformer = exports.SchemaValueConstraint = exports.SchemaArrayConstraint = exports.
|
|
4
|
-
const object_1 = require("../utils/object/object");
|
|
4
|
+
exports.valueTypeOrSchemaToSchema = exports.valueTypesOrSchemasToSchemas = exports.resolveValueType = exports.resolveValueTypes = exports.isDeferredValueType = exports.isTypeSchema = exports.isValueSchema = exports.isObjectSchema = exports.isSchema = exports.typeSchema = exports.valueSchema = exports.objectSchema = exports.SchemaValueCoercer = exports.SchemaValueTransformer = exports.SchemaValueConstraint = exports.SchemaArrayConstraint = exports.primitiveConstructorSet = exports.primitiveConstructors = void 0;
|
|
5
5
|
const type_guards_1 = require("../utils/type-guards");
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
6
|
+
exports.primitiveConstructors = [String, Number, Boolean, Symbol, BigInt, Function, 'undefined', 'null'];
|
|
7
|
+
exports.primitiveConstructorSet = new Set(exports.primitiveConstructors);
|
|
8
8
|
class SchemaArrayConstraint {
|
|
9
9
|
}
|
|
10
10
|
exports.SchemaArrayConstraint = SchemaArrayConstraint;
|
|
@@ -21,24 +21,59 @@ function objectSchema(schema) {
|
|
|
21
21
|
return schema;
|
|
22
22
|
}
|
|
23
23
|
exports.objectSchema = objectSchema;
|
|
24
|
-
function valueSchema(schema) {
|
|
25
|
-
return schema;
|
|
24
|
+
function valueSchema(schema, options) {
|
|
25
|
+
return { schema, ...options };
|
|
26
26
|
}
|
|
27
27
|
exports.valueSchema = valueSchema;
|
|
28
|
+
function typeSchema(type) {
|
|
29
|
+
return { type };
|
|
30
|
+
}
|
|
31
|
+
exports.typeSchema = typeSchema;
|
|
28
32
|
function isSchema(value) {
|
|
29
|
-
return isObjectSchema(value) || isValueSchema(value);
|
|
33
|
+
return isObjectSchema(value) || isValueSchema(value) || isTypeSchema(value);
|
|
30
34
|
}
|
|
31
35
|
exports.isSchema = isSchema;
|
|
32
|
-
function isObjectSchema(
|
|
33
|
-
return (0, type_guards_1.isObject)(
|
|
36
|
+
function isObjectSchema(schema) {
|
|
37
|
+
return (0, type_guards_1.isObject)(schema?.properties);
|
|
34
38
|
}
|
|
35
39
|
exports.isObjectSchema = isObjectSchema;
|
|
36
|
-
function isValueSchema(
|
|
37
|
-
return (0, type_guards_1.isObject)(
|
|
40
|
+
function isValueSchema(schema) {
|
|
41
|
+
return (0, type_guards_1.isObject)(schema) && (0, type_guards_1.isDefined)(schema?.schema);
|
|
38
42
|
}
|
|
39
43
|
exports.isValueSchema = isValueSchema;
|
|
44
|
+
function isTypeSchema(schema) {
|
|
45
|
+
return (0, type_guards_1.isObject)(schema) && (0, type_guards_1.isFunction)(schema?.type);
|
|
46
|
+
}
|
|
47
|
+
exports.isTypeSchema = isTypeSchema;
|
|
40
48
|
function isDeferredValueType(value) {
|
|
41
|
-
return (0, type_guards_1.isObject)(value) && (0,
|
|
49
|
+
return (0, type_guards_1.isObject)(value) && (0, type_guards_1.isFunction)(value.deferred);
|
|
42
50
|
}
|
|
43
51
|
exports.isDeferredValueType = isDeferredValueType;
|
|
52
|
+
function resolveValueTypes(valueTypes) {
|
|
53
|
+
if ((0, type_guards_1.isArray)(valueTypes)) {
|
|
54
|
+
return valueTypes.flatMap((valueType) => resolveValueTypes(valueType));
|
|
55
|
+
}
|
|
56
|
+
return resolveValueType(valueTypes);
|
|
57
|
+
}
|
|
58
|
+
exports.resolveValueTypes = resolveValueTypes;
|
|
59
|
+
function resolveValueType(valueType) {
|
|
60
|
+
return isDeferredValueType(valueType)
|
|
61
|
+
? resolveValueType(valueType.deferred())
|
|
62
|
+
: valueType;
|
|
63
|
+
}
|
|
64
|
+
exports.resolveValueType = resolveValueType;
|
|
65
|
+
function valueTypesOrSchemasToSchemas(valueTypesOrSchemas) {
|
|
66
|
+
if ((0, type_guards_1.isArray)(valueTypesOrSchemas)) {
|
|
67
|
+
return valueTypesOrSchemas.map(valueTypeOrSchemaToSchema);
|
|
68
|
+
}
|
|
69
|
+
return valueTypeOrSchemaToSchema(valueTypesOrSchemas);
|
|
70
|
+
}
|
|
71
|
+
exports.valueTypesOrSchemasToSchemas = valueTypesOrSchemasToSchemas;
|
|
72
|
+
function valueTypeOrSchemaToSchema(valueTypeOrSchema) {
|
|
73
|
+
if (isSchema(valueTypeOrSchema)) {
|
|
74
|
+
return valueTypeOrSchema;
|
|
75
|
+
}
|
|
76
|
+
return typeSchema(valueTypeOrSchema);
|
|
77
|
+
}
|
|
78
|
+
exports.valueTypeOrSchemaToSchema = valueTypeOrSchemaToSchema;
|
|
44
79
|
//# sourceMappingURL=types.js.map
|
package/schema/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../source/schema/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../source/schema/types.ts"],"names":[],"mappings":";AAAA,iDAAiD;;;AAIjD,sDAA+E;AAgHlE,QAAA,qBAAqB,GAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAwC,EAAE,MAAwC,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AAClL,QAAA,uBAAuB,GAAG,IAAI,GAAG,CAAC,6BAAqB,CAAC,CAAC;AAEtE,MAAsB,qBAAqB;CAE1C;AAFD,sDAEC;AAID,MAAsB,qBAAqB;CAK1C;AALD,sDAKC;AAED,MAAsB,sBAAsB;CAK3C;AALD,wDAKC;AAED,MAAsB,kBAAkB;CAKvC;AALD,gDAKC;AAgCD,SAAgB,YAAY,CAAW,MAA0B;IAC/D,OAAO,MAAM,CAAC;AAChB,CAAC;AAFD,oCAEC;AAED,SAAgB,WAAW,CAAW,MAA+B,EAAE,OAAgD;IACrH,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;AAChC,CAAC;AAFD,kCAEC;AAED,SAAgB,UAAU,CAAI,IAAkB;IAC9C,OAAO,EAAE,IAAI,EAAuC,CAAC;AACvD,CAAC;AAFD,gCAEC;AAED,SAAgB,QAAQ,CAAqC,KAAU;IACrE,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAFD,4BAEC;AAID,SAAgB,cAAc,CAAC,MAAW;IACxC,OAAO,IAAA,sBAAQ,EAAE,MAA4C,EAAE,UAAU,CAAC,CAAC;AAC7E,CAAC;AAFD,wCAEC;AAID,SAAgB,aAAa,CAAC,MAAW;IACvC,OAAO,IAAA,sBAAQ,EAAC,MAAM,CAAC,IAAI,IAAA,uBAAS,EAAE,MAAkC,EAAE,MAAM,CAAC,CAAC;AACpF,CAAC;AAFD,sCAEC;AAID,SAAgB,YAAY,CAAC,MAAW;IACtC,OAAO,IAAA,sBAAQ,EAAC,MAAM,CAAC,IAAI,IAAA,wBAAU,EAAE,MAAiC,EAAE,IAAI,CAAC,CAAC;AAClF,CAAC;AAFD,oCAEC;AAED,SAAgB,mBAAmB,CAAI,KAAmB;IACxD,OAAO,IAAA,sBAAQ,EAAC,KAAK,CAAC,IAAI,IAAA,wBAAU,EAAE,KAA2B,CAAC,QAAQ,CAAC,CAAC;AAC9E,CAAC;AAFD,kDAEC;AAED,SAAgB,iBAAiB,CAAI,UAAmC;IACtE,IAAI,IAAA,qBAAO,EAAC,UAAU,CAAC,EAAE;QACvB,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;KACxE;IAED,OAAO,gBAAgB,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC;AAND,8CAMC;AAED,SAAgB,gBAAgB,CAAI,SAAuB;IACzD,OAAO,mBAAmB,CAAC,SAAS,CAAC;QACnC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QACxC,CAAC,CAAC,SAAiC,CAAC;AACxC,CAAC;AAJD,4CAIC;AAED,SAAgB,4BAA4B,CAAO,mBAA2D;IAC5G,IAAI,IAAA,qBAAO,EAAC,mBAAmB,CAAC,EAAE;QAChC,OAAO,mBAAmB,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;KAC3D;IAED,OAAO,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;AACxD,CAAC;AAND,oEAMC;AAED,SAAgB,yBAAyB,CAAO,iBAA8C;IAC5F,IAAI,QAAQ,CAAO,iBAAiB,CAAC,EAAE;QACrC,OAAO,iBAAiB,CAAC;KAC1B;IAED,OAAO,UAAU,CAAC,iBAAiB,CAAkB,CAAC;AACxD,CAAC;AAND,8DAMC"}
|
package/schema/utils/schema.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import type { Schema } from '../schema';
|
|
2
|
-
import type {
|
|
3
|
-
export declare const normalizeSchema: typeof
|
|
1
|
+
import type { NormalizedSchema, Schema } from '../schema';
|
|
2
|
+
import type { NormalizedObjectSchema, NormalizedTypeSchema, NormalizedValueSchema, ObjectSchema, TypeSchema, ValueSchema } from '../types';
|
|
3
|
+
export declare const normalizeSchema: typeof _normalizeSchema;
|
|
4
|
+
export declare const normalizeObjectSchema: typeof _normalizeObjectSchema;
|
|
4
5
|
export declare const normalizeValueSchema: typeof _normalizeValueSchema;
|
|
6
|
+
export declare const normalizeTypeSchema: typeof _normalizeTypeSchema;
|
|
5
7
|
export declare const getArrayItemSchema: typeof _getArrayItemSchema;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
declare function
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
export declare function maybeDeferredValueTypesToSchema<T>(valueType: MaybeDeferredValueTypes<T>): Schema<T>;
|
|
8
|
+
declare function _normalizeSchema<T, O>(schema: Schema<T, O>): NormalizedSchema<T, O>;
|
|
9
|
+
declare function _normalizeObjectSchema<T, O>(schema: ObjectSchema<T, O>): NormalizedObjectSchema<T, O>;
|
|
10
|
+
declare function _normalizeValueSchema<T, O>(schema: ValueSchema<T, O>): NormalizedValueSchema<T, O>;
|
|
11
|
+
declare function _normalizeTypeSchema<T>(schema: TypeSchema<T>): NormalizedTypeSchema<T>;
|
|
12
|
+
declare function _getArrayItemSchema<T, O>(schema: ValueSchema<T, O>): ValueSchema<T, O>;
|
|
12
13
|
export {};
|
package/schema/utils/schema.js
CHANGED
|
@@ -1,38 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getArrayItemSchema = exports.normalizeTypeSchema = exports.normalizeValueSchema = exports.normalizeObjectSchema = exports.normalizeSchema = void 0;
|
|
4
4
|
const array_1 = require("../../utils/array/array");
|
|
5
5
|
const memoize_1 = require("../../utils/function/memoize");
|
|
6
6
|
const object_1 = require("../../utils/object/object");
|
|
7
7
|
const type_guards_1 = require("../../utils/type-guards");
|
|
8
8
|
const types_1 = require("../types");
|
|
9
|
-
exports.normalizeSchema = (0, memoize_1.memoizeSingle)(
|
|
9
|
+
exports.normalizeSchema = (0, memoize_1.memoizeSingle)(_normalizeSchema, { weak: true });
|
|
10
|
+
exports.normalizeObjectSchema = (0, memoize_1.memoizeSingle)(_normalizeObjectSchema, { weak: true });
|
|
10
11
|
exports.normalizeValueSchema = (0, memoize_1.memoizeSingle)(_normalizeValueSchema, { weak: true });
|
|
12
|
+
exports.normalizeTypeSchema = (0, memoize_1.memoizeSingle)(_normalizeTypeSchema, { weak: true });
|
|
11
13
|
exports.getArrayItemSchema = (0, memoize_1.memoizeSingle)(_getArrayItemSchema, { weak: true });
|
|
12
|
-
function
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
function _normalizeSchema(schema) {
|
|
15
|
+
if ((0, types_1.isObjectSchema)(schema)) {
|
|
16
|
+
return (0, exports.normalizeObjectSchema)(schema);
|
|
17
|
+
}
|
|
18
|
+
if ((0, types_1.isValueSchema)(schema)) {
|
|
19
|
+
return (0, exports.normalizeValueSchema)(schema);
|
|
20
|
+
}
|
|
21
|
+
if ((0, types_1.isTypeSchema)(schema)) {
|
|
22
|
+
return (0, exports.normalizeTypeSchema)(schema);
|
|
23
|
+
}
|
|
24
|
+
throw new Error('Unsupported schema.');
|
|
25
|
+
}
|
|
26
|
+
function _normalizeObjectSchema(schema) {
|
|
27
|
+
const normalizedSchema = {
|
|
28
|
+
factory: schema.factory,
|
|
29
|
+
properties: (0, object_1.mapObjectValues)(schema.properties, (propertyValueType) => ((0, type_guards_1.isArray)(propertyValueType) ? (0, types_1.valueSchema)(propertyValueType) : propertyValueType)),
|
|
30
|
+
mask: schema.mask,
|
|
31
|
+
allowUnknownProperties: new Set((0, array_1.toArray)(schema.allowUnknownProperties ?? []).map(types_1.valueTypeOrSchemaToSchema))
|
|
18
32
|
};
|
|
19
|
-
return
|
|
33
|
+
return normalizedSchema;
|
|
20
34
|
}
|
|
21
|
-
|
|
22
|
-
function _normalizeValueSchema(valueSchema) {
|
|
23
|
-
const valueTypes = maybeDeferredValueTypesToValueTypes(valueSchema.type);
|
|
35
|
+
function _normalizeValueSchema(schema) {
|
|
24
36
|
const normalizedValueSchema = {
|
|
25
|
-
|
|
26
|
-
array:
|
|
27
|
-
optional:
|
|
28
|
-
nullable:
|
|
29
|
-
coerce:
|
|
37
|
+
schema: new Set((0, array_1.toArray)(schema.schema)),
|
|
38
|
+
array: schema.array ?? false,
|
|
39
|
+
optional: schema.optional ?? false,
|
|
40
|
+
nullable: schema.nullable ?? false,
|
|
41
|
+
coerce: schema.coerce ?? false,
|
|
30
42
|
coercers: new Map(),
|
|
31
|
-
transformers: (0, array_1.toArray)(
|
|
32
|
-
arrayConstraints: (0, array_1.toArray)(
|
|
33
|
-
valueConstraints: (0, array_1.toArray)(
|
|
43
|
+
transformers: (0, array_1.toArray)(schema.transformers ?? []),
|
|
44
|
+
arrayConstraints: (0, array_1.toArray)(schema.arrayConstraints ?? []),
|
|
45
|
+
valueConstraints: (0, array_1.toArray)(schema.valueConstraints ?? [])
|
|
34
46
|
};
|
|
35
|
-
for (const coercer of (0, array_1.toArray)(
|
|
47
|
+
for (const coercer of (0, array_1.toArray)(schema.coercers ?? [])) {
|
|
36
48
|
for (const sourceType of (0, array_1.toArray)(coercer.sourceType)) {
|
|
37
49
|
if (!normalizedValueSchema.coercers.has(sourceType)) {
|
|
38
50
|
normalizedValueSchema.coercers.set(sourceType, []);
|
|
@@ -42,37 +54,21 @@ function _normalizeValueSchema(valueSchema) {
|
|
|
42
54
|
}
|
|
43
55
|
return normalizedValueSchema;
|
|
44
56
|
}
|
|
45
|
-
|
|
46
|
-
|
|
57
|
+
function _normalizeTypeSchema(schema) {
|
|
58
|
+
const normalizedSchema = {
|
|
59
|
+
foo: (0, types_1.resolveValueType)(schema.type)
|
|
60
|
+
};
|
|
61
|
+
return normalizedSchema;
|
|
62
|
+
}
|
|
63
|
+
function _getArrayItemSchema(schema) {
|
|
47
64
|
const itemSchema = {
|
|
48
|
-
|
|
65
|
+
schema: schema.schema,
|
|
49
66
|
array: false,
|
|
50
67
|
optional: false,
|
|
51
68
|
nullable: false,
|
|
52
|
-
transformers:
|
|
53
|
-
valueConstraints:
|
|
69
|
+
transformers: schema.transformers,
|
|
70
|
+
valueConstraints: schema.valueConstraints
|
|
54
71
|
};
|
|
55
72
|
return itemSchema;
|
|
56
73
|
}
|
|
57
|
-
function maybeDeferredValueTypesToValueTypes(valueTypes) {
|
|
58
|
-
if ((0, type_guards_1.isArray)(valueTypes)) {
|
|
59
|
-
return valueTypes.flatMap((valueType) => maybeDeferredValueTypesToValueTypes(valueType));
|
|
60
|
-
}
|
|
61
|
-
return (0, types_1.isDeferredValueType)(valueTypes)
|
|
62
|
-
? valueTypes.deferred()
|
|
63
|
-
: valueTypes;
|
|
64
|
-
}
|
|
65
|
-
exports.maybeDeferredValueTypesToValueTypes = maybeDeferredValueTypesToValueTypes;
|
|
66
|
-
function valueTypesToSchema(valueType) {
|
|
67
|
-
if ((0, type_guards_1.isFunction)(valueType) || (0, type_guards_1.isArray)(valueType) || (0, type_guards_1.isString)(valueType)) {
|
|
68
|
-
return { type: valueType };
|
|
69
|
-
}
|
|
70
|
-
return valueType;
|
|
71
|
-
}
|
|
72
|
-
exports.valueTypesToSchema = valueTypesToSchema;
|
|
73
|
-
function maybeDeferredValueTypesToSchema(valueType) {
|
|
74
|
-
const deferredValueTypes = maybeDeferredValueTypesToValueTypes(valueType);
|
|
75
|
-
return valueTypesToSchema(deferredValueTypes);
|
|
76
|
-
}
|
|
77
|
-
exports.maybeDeferredValueTypesToSchema = maybeDeferredValueTypesToSchema;
|
|
78
74
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../source/schema/utils/schema.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAC9C,0DAAyD;AACzD,sDAAwD;AACxD,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../source/schema/utils/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
1
|
+
import type { Schema } from '../schema';
|
|
2
|
+
import type { ResolvedValueType, ValueType } from '../types';
|
|
3
|
+
export declare function getValueType(value: unknown): ResolvedValueType<any>;
|
|
3
4
|
export declare function getValueTypeName(valueType: ValueType): string;
|
|
4
|
-
export declare function
|
|
5
|
+
export declare function getSchemaTypeNames(schema: Schema): string[];
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getSchemaTypeNames = exports.getValueTypeName = exports.getValueType = void 0;
|
|
4
|
+
const array_1 = require("../../utils/array/array");
|
|
4
5
|
const type_guards_1 = require("../../utils/type-guards");
|
|
5
6
|
const types_1 = require("../types");
|
|
6
|
-
const schema_1 = require("./schema");
|
|
7
7
|
function getValueType(value) {
|
|
8
8
|
if ((0, type_guards_1.isUndefined)(value)) {
|
|
9
9
|
return 'undefined';
|
|
@@ -11,25 +11,29 @@ function getValueType(value) {
|
|
|
11
11
|
if ((0, type_guards_1.isNull)(value)) {
|
|
12
12
|
return 'null';
|
|
13
13
|
}
|
|
14
|
-
return value.constructor;
|
|
14
|
+
return (0, type_guards_1.assertObjectPass)(value).constructor;
|
|
15
15
|
}
|
|
16
16
|
exports.getValueType = getValueType;
|
|
17
17
|
function getValueTypeName(valueType) {
|
|
18
|
-
|
|
18
|
+
const resolvedValueType = (0, types_1.resolveValueType)(valueType);
|
|
19
|
+
return (0, type_guards_1.isString)(resolvedValueType)
|
|
20
|
+
? resolvedValueType
|
|
21
|
+
: resolvedValueType.name;
|
|
19
22
|
}
|
|
20
23
|
exports.getValueTypeName = getValueTypeName;
|
|
21
|
-
function
|
|
22
|
-
if ((0, types_1.
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
return resolvedValueTypes.some((innerType) => valueTypeHasValueType(innerType, typeToCheck));
|
|
26
|
-
}
|
|
27
|
-
return valueTypeHasValueType(resolvedValueTypes, typeToCheck);
|
|
24
|
+
function getSchemaTypeNames(schema) {
|
|
25
|
+
if ((0, types_1.isTypeSchema)(schema)) {
|
|
26
|
+
const name = getValueTypeName(schema.type);
|
|
27
|
+
return [name];
|
|
28
28
|
}
|
|
29
|
-
if ((0, types_1.isObjectSchema)(
|
|
30
|
-
|
|
29
|
+
if ((0, types_1.isObjectSchema)(schema)) {
|
|
30
|
+
const name = getValueTypeName(schema.sourceType ?? Object);
|
|
31
|
+
return [name];
|
|
31
32
|
}
|
|
32
|
-
|
|
33
|
+
if ((0, types_1.isValueSchema)(schema)) {
|
|
34
|
+
return [...new Set((0, array_1.toArray)(schema.schema).flatMap(getSchemaTypeNames))];
|
|
35
|
+
}
|
|
36
|
+
throw new Error('Unsupported schema');
|
|
33
37
|
}
|
|
34
|
-
exports.
|
|
38
|
+
exports.getSchemaTypeNames = getSchemaTypeNames;
|
|
35
39
|
//# sourceMappingURL=value-type.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-type.js","sourceRoot":"","sources":["../../../source/schema/utils/value-type.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"value-type.js","sourceRoot":"","sources":["../../../source/schema/utils/value-type.ts"],"names":[],"mappings":";;;AACA,mDAA8C;AAC9C,yDAAsF;AAGtF,oCAAyF;AAEzF,SAAgB,YAAY,CAAC,KAAc;IACzC,IAAI,IAAA,yBAAW,EAAC,KAAK,CAAC,EAAE;QACtB,OAAO,WAAW,CAAC;KACpB;IAED,IAAI,IAAA,oBAAM,EAAC,KAAK,CAAC,EAAE;QACjB,OAAO,MAAM,CAAC;KACf;IAED,OAAO,IAAA,8BAAgB,EAAC,KAAK,CAAC,CAAC,WAAkC,CAAC;AACpE,CAAC;AAVD,oCAUC;AAED,SAAgB,gBAAgB,CAAC,SAAoB;IACnD,MAAM,iBAAiB,GAAG,IAAA,wBAAgB,EAAC,SAAS,CAAC,CAAC;IAEtD,OAAO,IAAA,sBAAQ,EAAC,iBAAiB,CAAC;QAChC,CAAC,CAAC,iBAAiB;QACnB,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC7B,CAAC;AAND,4CAMC;AAED,SAAgB,kBAAkB,CAAC,MAAc;IAC/C,IAAI,IAAA,oBAAY,EAAC,MAAM,CAAC,EAAE;QACxB,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC;KACf;IAED,IAAI,IAAA,sBAAc,EAAC,MAAM,CAAC,EAAE;QAC1B,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC;KACf;IAED,IAAI,IAAA,qBAAa,EAAC,MAAM,CAAC,EAAE;QACzB,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,IAAA,eAAO,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;KACzE;IAED,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;AACxC,CAAC;AAhBD,gDAgBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-template.provider.js","sourceRoot":"","sources":["../../../source/templates/providers/file-template.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,+CAAwE;AAExE,yCAA6D;AAI7D,+EAAyE;AAe5D,QAAA,0BAA0B,GAA+B,EAAE,CAAC;AAEzE,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"file-template.provider.js","sourceRoot":"","sources":["../../../source/templates/providers/file-template.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,+CAAwE;AAExE,yCAA6D;AAI7D,+EAAyE;AAe5D,QAAA,0BAA0B,GAA+B,EAAE,CAAC;AAEzE,MAAM,kBAAkB,GAAG,IAAA,eAAM,EAAe;IAC9C,IAAI,EAAE,IAAA,eAAM,GAAE;IACd,QAAQ,EAAE,IAAA,iBAAQ,EAAC,IAAA,eAAM,GAAE,CAAC;IAC5B,YAAY,EAAE,IAAA,iBAAQ,EAAC,IAAA,eAAM,GAAE,CAAC;IAChC,OAAO,EAAE,IAAA,iBAAQ,EAAC,IAAA,gBAAO,GAAE,CAAC;CAC7B,CAAC,CAAC;AAKH,IAAa,oBAAoB,GAAjC,MAAa,oBAAqB,SAAQ,sDAAgD;IAGxF,YAAyB,QAAgB;QACvC,KAAK,CAAC,kBAAkB,EAAE,QAAQ,EAAE,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;CACF,CAAA;AANY,oBAAoB;IAHhC,IAAA,qBAAS,EAAC;QACT,uBAAuB,EAAE,GAAG,EAAE,CAAC,kCAA0B,CAAC,QAAQ;KACnE,CAAC;IAIa,WAAA,IAAA,qBAAS,GAAE,CAAA;;GAHb,oBAAoB,CAMhC;AANY,oDAAoB;AAQjC,SAAgB,6BAA6B,CAAC,SAA8C,EAAE;IAC5F,kCAA0B,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,kCAA0B,CAAC,QAAQ,CAAC;AAC/F,CAAC;AAFD,sEAEC;AAED,SAAgB,YAAY,CAAyB,QAAW;IAC9D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAFD,oCAEC"}
|
package/types.d.ts
CHANGED
|
@@ -82,7 +82,8 @@ export declare type OmitBy<T, V> = Omit<T, {
|
|
|
82
82
|
/**
|
|
83
83
|
* normalize properties of a type that allow `undefined` to make them optional.
|
|
84
84
|
*/
|
|
85
|
-
export declare type Optionalize<
|
|
85
|
+
export declare type Optionalize<T extends object> = OmitBy<T, undefined> & Partial<PickBy<T, undefined>>;
|
|
86
|
+
export declare type SimplifiedOptionalize<T extends object> = Simplify<Optionalize<T>>;
|
|
86
87
|
/**
|
|
87
88
|
* remove nested type information
|
|
88
89
|
*/
|
|
@@ -143,3 +144,36 @@ export declare type DeepPartialObject<T> = {
|
|
|
143
144
|
export declare type DeepPartialArray<T> = DeepPartial<T>[];
|
|
144
145
|
export declare type TypedArray = Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array;
|
|
145
146
|
export declare type BinaryData = ArrayBuffer | ArrayBufferView;
|
|
147
|
+
declare type JoinPaths<K, P> = K extends string | number ? P extends string | number ? `${K}${'' extends P ? '' : '.'}${P}` : never : never;
|
|
148
|
+
declare type Prev = [
|
|
149
|
+
never,
|
|
150
|
+
0,
|
|
151
|
+
1,
|
|
152
|
+
2,
|
|
153
|
+
3,
|
|
154
|
+
4,
|
|
155
|
+
5,
|
|
156
|
+
6,
|
|
157
|
+
7,
|
|
158
|
+
8,
|
|
159
|
+
9,
|
|
160
|
+
10,
|
|
161
|
+
11,
|
|
162
|
+
12,
|
|
163
|
+
13,
|
|
164
|
+
14,
|
|
165
|
+
15,
|
|
166
|
+
16,
|
|
167
|
+
17,
|
|
168
|
+
18,
|
|
169
|
+
19,
|
|
170
|
+
20,
|
|
171
|
+
...0[]
|
|
172
|
+
];
|
|
173
|
+
export declare type Paths<T, D extends number = 10> = [D] extends [never] ? never : T extends object ? {
|
|
174
|
+
[K in keyof T]-?: K extends string | number ? `${K}` | (Paths<T[K], Prev[D]> extends infer R ? JoinPaths<K, R> : never) : never;
|
|
175
|
+
}[keyof T] : '';
|
|
176
|
+
export declare type LeavePaths<T, D extends number = 10> = [D] extends [never] ? never : T extends object ? {
|
|
177
|
+
[K in keyof T]-?: JoinPaths<K, LeavePaths<T[K], Prev[D]>>;
|
|
178
|
+
}[keyof T] : '';
|
|
179
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.includesAsync = void 0;
|
|
4
|
+
const any_1 = require("../iterable-helpers/any");
|
|
5
|
+
const any_2 = require("./any");
|
|
6
|
+
const is_async_iterable_1 = require("./is-async-iterable");
|
|
7
|
+
async function includesAsync(iterable, value) {
|
|
8
|
+
return (0, is_async_iterable_1.isAsyncIterable)(iterable)
|
|
9
|
+
? (0, any_2.anyAsync)(iterable, (item) => item == value)
|
|
10
|
+
: (0, any_1.any)(iterable, (item) => item == value);
|
|
11
|
+
}
|
|
12
|
+
exports.includesAsync = includesAsync;
|
|
13
|
+
//# sourceMappingURL=includes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"includes.js","sourceRoot":"","sources":["../../../source/utils/async-iterable-helpers/includes.ts"],"names":[],"mappings":";;;AACA,iDAA8C;AAC9C,+BAAiC;AACjC,2DAAsD;AAE/C,KAAK,UAAU,aAAa,CAAI,QAAwB,EAAE,KAAQ;IACvE,OAAO,IAAA,mCAAe,EAAC,QAAQ,CAAC;QAC9B,CAAC,CAAC,IAAA,cAAQ,EAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC;QAC7C,CAAC,CAAC,IAAA,SAAG,EAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;AAC7C,CAAC;AAJD,sCAIC"}
|
|
@@ -17,6 +17,7 @@ export * from './group';
|
|
|
17
17
|
export * from './group-single';
|
|
18
18
|
export * from './group-to-map';
|
|
19
19
|
export * from './group-to-single-map';
|
|
20
|
+
export * from './includes';
|
|
20
21
|
export * from './interrupt';
|
|
21
22
|
export * from './is-async-iterable';
|
|
22
23
|
export * from './last';
|
|
@@ -33,6 +33,7 @@ __exportStar(require("./group"), exports);
|
|
|
33
33
|
__exportStar(require("./group-single"), exports);
|
|
34
34
|
__exportStar(require("./group-to-map"), exports);
|
|
35
35
|
__exportStar(require("./group-to-single-map"), exports);
|
|
36
|
+
__exportStar(require("./includes"), exports);
|
|
36
37
|
__exportStar(require("./interrupt"), exports);
|
|
37
38
|
__exportStar(require("./is-async-iterable"), exports);
|
|
38
39
|
__exportStar(require("./last"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/utils/async-iterable-helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,wCAAsB;AACtB,2CAAyB;AACzB,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,qDAAmC;AACnC,6CAA2B;AAC3B,+CAA6B;AAC7B,6CAA2B;AAC3B,0CAAwB;AACxB,2CAAyB;AACzB,0CAAwB;AACxB,qDAAmC;AACnC,6CAA2B;AAC3B,0CAAwB;AACxB,iDAA+B;AAC/B,iDAA+B;AAC/B,wDAAsC;AACtC,8CAA4B;AAC5B,sDAAoC;AACpC,yCAAuB;AACvB,oDAAkC;AAClC,wCAAsB;AACtB,6CAA2B;AAC3B,gDAA8B;AAC9B,6CAA2B;AAC3B,8CAA4B;AAC5B,6CAA2B;AAC3B,2CAAyB;AACzB,0CAAwB;AACxB,2CAAyB;AACzB,sDAAoC;AACpC,yCAAuB;AACvB,yCAAuB;AACvB,yCAAuB;AACvB,+CAA6B;AAC7B,+CAA6B;AAC7B,wCAAsB;AACtB,6CAA2B;AAC3B,6CAA2B;AAC3B,+DAA6C;AAC7C,sDAAoC;AACpC,2CAAyB;AACzB,qDAAmC;AACnC,0CAAwB;AACxB,0CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/utils/async-iterable-helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,wCAAsB;AACtB,2CAAyB;AACzB,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,qDAAmC;AACnC,6CAA2B;AAC3B,+CAA6B;AAC7B,6CAA2B;AAC3B,0CAAwB;AACxB,2CAAyB;AACzB,0CAAwB;AACxB,qDAAmC;AACnC,6CAA2B;AAC3B,0CAAwB;AACxB,iDAA+B;AAC/B,iDAA+B;AAC/B,wDAAsC;AACtC,6CAA2B;AAC3B,8CAA4B;AAC5B,sDAAoC;AACpC,yCAAuB;AACvB,oDAAkC;AAClC,wCAAsB;AACtB,6CAA2B;AAC3B,gDAA8B;AAC9B,6CAA2B;AAC3B,8CAA4B;AAC5B,6CAA2B;AAC3B,2CAAyB;AACzB,0CAAwB;AACxB,2CAAyB;AACzB,sDAAoC;AACpC,yCAAuB;AACvB,yCAAuB;AACvB,yCAAuB;AACvB,+CAA6B;AAC7B,+CAA6B;AAC7B,wCAAsB;AACtB,6CAA2B;AAC3B,6CAA2B;AAC3B,+DAA6C;AAC7C,sDAAoC;AACpC,2CAAyB;AACzB,qDAAmC;AACnC,0CAAwB;AACxB,0CAAwB"}
|