@tstdl/base 0.71.87 → 0.78.0-beta1
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/.eslintrc.js +2 -4
- package/api/client/client.js +2 -12
- package/api/client/client.js.map +1 -1
- package/api/default-error-handlers.d.ts +0 -4
- package/api/default-error-handlers.js +1 -6
- package/api/default-error-handlers.js.map +1 -1
- package/api/server/error-handler.js +2 -2
- package/api/server/error-handler.js.map +1 -1
- package/api/server/gateway.js +12 -18
- package/api/server/gateway.js.map +1 -1
- package/api/server/module.d.ts +0 -4
- package/api/server/module.js +1 -12
- package/api/server/module.js.map +1 -1
- package/api/types.d.ts +8 -32
- package/api/types.js.map +1 -1
- package/container/container.js +2 -2
- package/container/container.js.map +1 -1
- package/data-structures/index.d.ts +1 -0
- package/data-structures/index.js +1 -0
- package/data-structures/index.js.map +1 -1
- package/data-structures/iterable-weak-map.d.ts +29 -0
- package/data-structures/iterable-weak-map.js +128 -0
- package/data-structures/iterable-weak-map.js.map +1 -0
- package/data-structures/multi-key-map.d.ts +12 -1
- package/data-structures/multi-key-map.js +22 -11
- package/data-structures/multi-key-map.js.map +1 -1
- package/error/custom.error.d.ts +3 -1
- package/error/custom.error.js +16 -7
- package/error/custom.error.js.map +1 -1
- package/examples/api/basic-overview.js +16 -8
- package/examples/api/basic-overview.js.map +1 -1
- package/http/http.error.d.ts +4 -2
- package/http/http.error.js +6 -0
- package/http/http.error.js.map +1 -1
- package/image-service/image-service.d.ts +32 -65
- package/image-service/image-service.js +73 -15
- package/image-service/image-service.js.map +1 -1
- package/json-path/json-path.d.ts +8 -3
- package/json-path/json-path.js +24 -7
- package/json-path/json-path.js.map +1 -1
- package/logger/console/logger.js +2 -2
- package/logger/console/logger.js.map +1 -1
- package/mail/mail.service.js +2 -2
- package/mail/mail.service.js.map +1 -1
- package/module/modules/index.d.ts +0 -1
- package/module/modules/index.js +0 -1
- package/module/modules/index.js.map +1 -1
- package/openid-connect/oidc-configuration.service.js +7 -7
- package/openid-connect/oidc-configuration.service.js.map +1 -1
- package/openid-connect/oidc.service.js +7 -7
- package/openid-connect/oidc.service.js.map +1 -1
- package/package.json +3 -4
- package/process-shutdown.js +3 -2
- package/process-shutdown.js.map +1 -1
- package/reflection/decorators.js +1 -0
- package/reflection/decorators.js.map +1 -1
- package/reflection/reflection-data-map.d.ts +10 -0
- package/reflection/reflection-data-map.js +40 -0
- package/reflection/reflection-data-map.js.map +1 -0
- package/reflection/registry.d.ts +7 -7
- package/reflection/registry.js +7 -6
- package/reflection/registry.js.map +1 -1
- package/reflection/types.d.ts +1 -0
- package/reflection/utils.d.ts +6 -3
- package/reflection/utils.js +9 -35
- package/reflection/utils.js.map +1 -1
- package/schema/array-constraints/index.d.ts +2 -0
- package/{old-api/validation/validators → schema/array-constraints}/index.js +2 -1
- package/schema/array-constraints/index.js.map +1 -0
- package/schema/array-constraints/maximum-length.d.ts +11 -0
- package/schema/array-constraints/maximum-length.js +26 -0
- package/schema/array-constraints/maximum-length.js.map +1 -0
- package/schema/array-constraints/minimum-length.d.ts +11 -0
- package/schema/array-constraints/minimum-length.js +26 -0
- package/schema/array-constraints/minimum-length.js.map +1 -0
- package/schema/coercers/boolean.coercer.d.ts +9 -0
- package/schema/coercers/boolean.coercer.js +35 -0
- package/schema/coercers/boolean.coercer.js.map +1 -0
- package/schema/coercers/date.coercer.d.ts +9 -0
- package/schema/coercers/date.coercer.js +24 -0
- package/schema/coercers/date.coercer.js.map +1 -0
- package/schema/coercers/default-value.coercer.d.ts +9 -0
- package/schema/coercers/default-value.coercer.js +16 -0
- package/schema/coercers/default-value.coercer.js.map +1 -0
- package/schema/coercers/index.d.ts +7 -0
- package/schema/coercers/index.js +24 -0
- package/schema/coercers/index.js.map +1 -0
- package/schema/coercers/number.coercer.d.ts +9 -0
- package/schema/coercers/number.coercer.js +22 -0
- package/schema/coercers/number.coercer.js.map +1 -0
- package/schema/coercers/regexp.coercer.d.ts +11 -0
- package/schema/coercers/regexp.coercer.js +24 -0
- package/schema/coercers/regexp.coercer.js.map +1 -0
- package/schema/coercers/string.coercer.d.ts +9 -0
- package/schema/coercers/string.coercer.js +22 -0
- package/schema/coercers/string.coercer.js.map +1 -0
- package/schema/coercers/uint8-array.coercer.d.ts +9 -0
- package/schema/coercers/uint8-array.coercer.js +31 -0
- package/schema/coercers/uint8-array.coercer.js.map +1 -0
- package/schema/constraints/enumeration.d.ts +13 -0
- package/schema/constraints/enumeration.js +29 -0
- package/schema/constraints/enumeration.js.map +1 -0
- package/schema/constraints/generic.d.ts +22 -0
- package/schema/constraints/generic.js +32 -0
- package/schema/constraints/generic.js.map +1 -0
- package/schema/constraints/index.d.ts +12 -0
- package/schema/constraints/index.js +29 -0
- package/schema/constraints/index.js.map +1 -0
- package/schema/constraints/integer.d.ts +12 -0
- package/schema/constraints/integer.js +27 -0
- package/schema/constraints/integer.js.map +1 -0
- package/schema/constraints/length.d.ts +6 -0
- package/schema/constraints/length.js +20 -0
- package/schema/constraints/length.js.map +1 -0
- package/schema/constraints/literal.d.ts +10 -0
- package/schema/constraints/literal.js +26 -0
- package/schema/constraints/literal.js.map +1 -0
- package/schema/constraints/maximum-date.d.ts +12 -0
- package/schema/constraints/maximum-date.js +29 -0
- package/schema/constraints/maximum-date.js.map +1 -0
- package/schema/constraints/maximum-length.d.ts +12 -0
- package/schema/constraints/maximum-length.js +29 -0
- package/schema/constraints/maximum-length.js.map +1 -0
- package/schema/constraints/maximum.d.ts +12 -0
- package/schema/constraints/maximum.js +27 -0
- package/schema/constraints/maximum.js.map +1 -0
- package/schema/constraints/minimum-date.d.ts +12 -0
- package/schema/constraints/minimum-date.js +29 -0
- package/schema/constraints/minimum-date.js.map +1 -0
- package/schema/constraints/minimum-length.d.ts +12 -0
- package/schema/constraints/minimum-length.js +29 -0
- package/schema/constraints/minimum-length.js.map +1 -0
- package/schema/constraints/minimum.d.ts +12 -0
- package/schema/constraints/minimum.js +27 -0
- package/schema/constraints/minimum.js.map +1 -0
- package/schema/constraints/pattern.d.ts +13 -0
- package/schema/constraints/pattern.js +28 -0
- package/schema/constraints/pattern.js.map +1 -0
- package/schema/decorators/array.d.ts +4 -0
- package/schema/decorators/array.js +11 -0
- package/schema/decorators/array.js.map +1 -0
- package/schema/decorators/coerce.d.ts +2 -0
- package/schema/decorators/coerce.js +10 -0
- package/schema/decorators/coerce.js.map +1 -0
- package/schema/decorators/defaulted.d.ts +3 -0
- package/schema/decorators/defaulted.js +11 -0
- package/schema/decorators/defaulted.js.map +1 -0
- package/schema/decorators/index.d.ts +8 -0
- package/{old-api → schema/decorators}/index.js +8 -3
- package/schema/decorators/index.js.map +1 -0
- package/schema/decorators/nullable.d.ts +2 -0
- package/schema/decorators/nullable.js +10 -0
- package/schema/decorators/nullable.js.map +1 -0
- package/schema/decorators/optional.d.ts +2 -0
- package/schema/decorators/optional.js +10 -0
- package/schema/decorators/optional.js.map +1 -0
- package/schema/decorators/property.d.ts +6 -0
- package/schema/decorators/property.js +19 -0
- package/schema/decorators/property.js.map +1 -0
- package/schema/decorators/type.d.ts +3 -0
- package/schema/decorators/type.js +10 -0
- package/schema/decorators/type.js.map +1 -0
- package/schema/decorators/types.d.ts +18 -0
- package/schema/decorators/types.js +3 -0
- package/schema/decorators/types.js.map +1 -0
- package/schema/decorators/utils.d.ts +10 -0
- package/schema/decorators/utils.js +59 -0
- package/schema/decorators/utils.js.map +1 -0
- package/schema/index.d.ts +7 -1
- package/schema/index.js +7 -1
- package/schema/index.js.map +1 -1
- package/schema/schema.d.ts +19 -0
- package/schema/schema.error.d.ts +13 -7
- package/schema/schema.error.js +45 -13
- package/schema/schema.error.js.map +1 -1
- package/schema/schema.js +286 -0
- package/schema/schema.js.map +1 -0
- package/schema/schemas/any.d.ts +4 -8
- package/schema/schemas/any.js +9 -14
- package/schema/schemas/any.js.map +1 -1
- package/schema/schemas/array.d.ts +7 -13
- package/schema/schemas/array.js +14 -43
- package/schema/schemas/array.js.map +1 -1
- package/schema/schemas/assign.d.ts +8 -0
- package/schema/schemas/assign.js +28 -0
- package/schema/schemas/assign.js.map +1 -0
- package/schema/schemas/boolean.d.ts +5 -9
- package/schema/schemas/boolean.js +11 -38
- package/schema/schemas/boolean.js.map +1 -1
- package/schema/schemas/constraint.d.ts +4 -0
- package/schema/schemas/constraint.js +14 -0
- package/schema/schemas/constraint.js.map +1 -0
- package/schema/schemas/date.d.ts +7 -11
- package/schema/schemas/date.js +18 -53
- package/schema/schemas/date.js.map +1 -1
- package/schema/schemas/defaulted.d.ts +2 -15
- package/schema/schemas/defaulted.js +7 -23
- package/schema/schemas/defaulted.js.map +1 -1
- package/schema/schemas/enumeration.d.ts +6 -18
- package/schema/schemas/enumeration.js +13 -50
- package/schema/schemas/enumeration.js.map +1 -1
- package/schema/schemas/exclude.d.ts +4 -0
- package/schema/schemas/exclude.js +17 -0
- package/schema/schemas/exclude.js.map +1 -0
- package/schema/schemas/index.d.ts +5 -6
- package/schema/schemas/index.js +5 -6
- package/schema/schemas/index.js.map +1 -1
- package/schema/schemas/instance.d.ts +2 -12
- package/schema/schemas/instance.js +4 -20
- package/schema/schemas/instance.js.map +1 -1
- package/schema/schemas/literal.d.ts +4 -11
- package/schema/schemas/literal.js +13 -18
- package/schema/schemas/literal.js.map +1 -1
- package/schema/schemas/nullable.d.ts +3 -13
- package/schema/schemas/nullable.js +3 -26
- package/schema/schemas/nullable.js.map +1 -1
- package/schema/schemas/number.d.ts +7 -14
- package/schema/schemas/number.js +23 -44
- package/schema/schemas/number.js.map +1 -1
- package/schema/schemas/object.d.ts +6 -34
- package/schema/schemas/object.js +8 -112
- package/schema/schemas/object.js.map +1 -1
- package/schema/schemas/optional.d.ts +3 -13
- package/schema/schemas/optional.js +3 -26
- package/schema/schemas/optional.js.map +1 -1
- package/schema/schemas/pick.d.ts +4 -0
- package/schema/schemas/pick.js +17 -0
- package/schema/schemas/pick.js.map +1 -0
- package/schema/schemas/readable-stream.d.ts +4 -9
- package/schema/schemas/readable-stream.js +9 -15
- package/schema/schemas/readable-stream.js.map +1 -1
- package/schema/schemas/record.d.ts +4 -0
- package/schema/schemas/record.js +14 -0
- package/schema/schemas/record.js.map +1 -0
- package/schema/schemas/regexp.d.ts +6 -9
- package/schema/schemas/regexp.js +10 -27
- package/schema/schemas/regexp.js.map +1 -1
- package/schema/schemas/string.d.ts +9 -13
- package/schema/schemas/string.js +34 -46
- package/schema/schemas/string.js.map +1 -1
- package/schema/schemas/transform.d.ts +4 -16
- package/schema/schemas/transform.js +7 -36
- package/schema/schemas/transform.js.map +1 -1
- package/schema/schemas/uint8-array.d.ts +8 -11
- package/schema/schemas/uint8-array.js +20 -32
- package/schema/schemas/uint8-array.js.map +1 -1
- package/schema/schemas/union.d.ts +5 -17
- package/schema/schemas/union.js +9 -35
- package/schema/schemas/union.js.map +1 -1
- package/schema/schemas/unknown.d.ts +4 -8
- package/schema/schemas/unknown.js +9 -14
- package/schema/schemas/unknown.js.map +1 -1
- package/schema/transformers/generic.d.ts +13 -0
- package/schema/transformers/generic.js +28 -0
- package/schema/transformers/generic.js.map +1 -0
- package/schema/transformers/index.d.ts +3 -0
- package/{old-api/endpoints → schema/transformers}/index.js +3 -1
- package/schema/transformers/index.js.map +1 -0
- package/schema/transformers/lowercase.d.ts +9 -0
- package/schema/transformers/lowercase.js +22 -0
- package/schema/transformers/lowercase.js.map +1 -0
- package/schema/transformers/trim.d.ts +9 -0
- package/schema/transformers/trim.js +22 -0
- package/schema/transformers/trim.js.map +1 -0
- package/schema/transformers/uppercase.d.ts +9 -0
- package/schema/transformers/uppercase.js +22 -0
- package/schema/transformers/uppercase.js.map +1 -0
- package/schema/types.d.ts +135 -15
- package/schema/types.js +39 -3
- package/schema/types.js.map +1 -1
- package/schema/utils/index.d.ts +2 -0
- package/{old-api/validation → schema/utils}/index.js +2 -1
- package/schema/utils/index.js.map +1 -0
- package/schema/utils/schema.d.ts +12 -0
- package/schema/utils/schema.js +78 -0
- package/schema/utils/schema.js.map +1 -0
- package/schema/utils/value-type.d.ts +4 -0
- package/schema/utils/value-type.js +35 -0
- package/schema/utils/value-type.js.map +1 -0
- package/templates/providers/file-template.provider.base.d.ts +1 -1
- package/templates/providers/file-template.provider.base.js +3 -2
- package/templates/providers/file-template.provider.base.js.map +1 -1
- package/types.d.ts +5 -1
- package/utils/clone.d.ts +1 -0
- package/utils/clone.js +45 -0
- package/utils/clone.js.map +1 -0
- package/utils/enum.d.ts +1 -1
- package/utils/format-error.d.ts +20 -0
- package/utils/format-error.js +42 -0
- package/utils/format-error.js.map +1 -0
- package/utils/function/memoize.d.ts +6 -2
- package/utils/function/memoize.js +28 -20
- package/utils/function/memoize.js.map +1 -1
- package/utils/helpers.d.ts +1 -32
- package/utils/helpers.js +3 -158
- package/utils/helpers.js.map +1 -1
- package/utils/index.d.ts +3 -0
- package/utils/index.js +3 -0
- package/utils/index.js.map +1 -1
- package/utils/merge.d.ts +5 -0
- package/utils/merge.js +32 -0
- package/utils/merge.js.map +1 -0
- package/utils/object/decycle.d.ts +16 -0
- package/utils/object/decycle.js +81 -0
- package/utils/object/decycle.js.map +1 -0
- package/utils/object/dereference.js.map +1 -1
- package/utils/object/index.d.ts +1 -0
- package/utils/object/index.js +1 -0
- package/utils/object/index.js.map +1 -1
- package/utils/object/object.d.ts +4 -0
- package/utils/object/object.js +9 -2
- package/utils/object/object.js.map +1 -1
- package/utils/patterns.d.ts +1 -1
- package/utils/patterns.js +3 -3
- package/utils/patterns.js.map +1 -1
- package/utils/timing.d.ts +0 -8
- package/utils/timing.js.map +1 -1
- package/utils/type-guards.d.ts +6 -0
- package/utils/type-guards.js +16 -4
- package/utils/type-guards.js.map +1 -1
- package/instance-provider.d.ts +0 -17
- package/instance-provider.js +0 -55
- package/instance-provider.js.map +0 -1
- package/module/modules/old-web-server.module.d.ts +0 -22
- package/module/modules/old-web-server.module.js +0 -37
- package/module/modules/old-web-server.module.js.map +0 -1
- package/old-api/endpoint.d.ts +0 -5
- package/old-api/endpoint.js +0 -20
- package/old-api/endpoint.js.map +0 -1
- package/old-api/endpoints/echo.endpoint.d.ts +0 -2
- package/old-api/endpoints/echo.endpoint.js +0 -6
- package/old-api/endpoints/echo.endpoint.js.map +0 -1
- package/old-api/endpoints/index.d.ts +0 -1
- package/old-api/endpoints/index.js.map +0 -1
- package/old-api/http-api.d.ts +0 -63
- package/old-api/http-api.js +0 -269
- package/old-api/http-api.js.map +0 -1
- package/old-api/index.d.ts +0 -3
- package/old-api/index.js.map +0 -1
- package/old-api/validation/index.d.ts +0 -1
- package/old-api/validation/index.js.map +0 -1
- package/old-api/validation/types.d.ts +0 -6
- package/old-api/validation/types.js +0 -6
- package/old-api/validation/types.js.map +0 -1
- package/old-api/validation/validators/index.d.ts +0 -1
- package/old-api/validation/validators/index.js.map +0 -1
- package/old-api/validation/validators/noop.d.ts +0 -2
- package/old-api/validation/validators/noop.js +0 -8
- package/old-api/validation/validators/noop.js.map +0 -1
- package/old-api/validation/validators/superstruct.d.ts +0 -14
- package/old-api/validation/validators/superstruct.js +0 -66
- package/old-api/validation/validators/superstruct.js.map +0 -1
- package/old-api/validation/validators/yup.d.ts +0 -7
- package/old-api/validation/validators/yup.js +0 -60
- package/old-api/validation/validators/yup.js.map +0 -1
- package/schema/schema.validator.d.ts +0 -40
- package/schema/schema.validator.js +0 -75
- package/schema/schema.validator.js.map +0 -1
- package/schema/schemas/async-iterable.d.ts +0 -13
- package/schema/schemas/async-iterable.js +0 -40
- package/schema/schemas/async-iterable.js.map +0 -1
- package/schema/schemas/iterable.d.ts +0 -13
- package/schema/schemas/iterable.js +0 -40
- package/schema/schemas/iterable.js.map +0 -1
- package/schema/schemas/never.d.ts +0 -9
- package/schema/schemas/never.js +0 -22
- package/schema/schemas/never.js.map +0 -1
- package/schema/schemas/preprocess.d.ts +0 -16
- package/schema/schemas/preprocess.js +0 -35
- package/schema/schemas/preprocess.js.map +0 -1
- package/schema/schemas/refine.d.ts +0 -24
- package/schema/schemas/refine.js +0 -52
- package/schema/schemas/refine.js.map +0 -1
package/schema/types.d.ts
CHANGED
|
@@ -1,30 +1,150 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import type { JsonPath } from "../json-path/json-path";
|
|
2
|
+
import type { OneOrMany, Record, Type } from "../types";
|
|
3
|
+
import type { Schema } from './schema';
|
|
4
|
+
import type { SchemaError } from './schema.error';
|
|
5
|
+
declare const schemaTypeSymbol: unique symbol;
|
|
6
|
+
export declare type SchemaFactoryFunction<T extends Record> = (data: T) => T;
|
|
7
|
+
export declare type SchemaFactory<T extends Record> = {
|
|
8
|
+
type: Type<T, []>;
|
|
9
|
+
builder?: undefined;
|
|
10
|
+
} | {
|
|
11
|
+
type?: undefined;
|
|
12
|
+
builder: SchemaFactoryFunction<T>;
|
|
13
|
+
};
|
|
14
|
+
export declare type ObjectSchemaProperties<T extends Record> = {
|
|
15
|
+
[K in keyof T]-?: MaybeDeferredValueTypes<T[K]>;
|
|
16
|
+
};
|
|
17
|
+
export declare type SchemaOutput<T extends Schema | Type> = T extends ObjectSchema<infer U> ? U : T extends ValueSchema<infer U> ? U : T extends Type<infer U> ? U : never;
|
|
18
|
+
export declare type ObjectSchema<T extends Record = any> = {
|
|
19
|
+
factory?: SchemaFactory<T>;
|
|
20
|
+
properties: ObjectSchemaProperties<T>;
|
|
21
|
+
mask?: boolean;
|
|
22
|
+
allowUnknownProperties?: MaybeDeferredValueTypes;
|
|
23
|
+
};
|
|
24
|
+
export declare type ValueSchema<T = any> = {
|
|
25
|
+
[schemaTypeSymbol]?: T;
|
|
26
|
+
type: MaybeDeferredValueTypes;
|
|
27
|
+
array?: boolean;
|
|
28
|
+
optional?: boolean;
|
|
29
|
+
nullable?: boolean;
|
|
30
|
+
/** use default coercers */
|
|
31
|
+
coerce?: boolean;
|
|
32
|
+
/** custom coercers */
|
|
33
|
+
coercers?: OneOrMany<SchemaValueCoercer>;
|
|
34
|
+
transformers?: OneOrMany<SchemaValueTransformer>;
|
|
35
|
+
arrayConstraints?: OneOrMany<SchemaArrayConstraint>;
|
|
36
|
+
valueConstraints?: OneOrMany<SchemaValueConstraint>;
|
|
37
|
+
};
|
|
38
|
+
export declare type NormalizedObjectSchema<T extends Record = any> = {
|
|
39
|
+
factory?: SchemaFactory<T>;
|
|
40
|
+
properties: {
|
|
41
|
+
[K in keyof T]: Schema<T[K]>;
|
|
9
42
|
};
|
|
43
|
+
mask?: boolean;
|
|
44
|
+
allowUnknownProperties: Set<Schema>;
|
|
45
|
+
};
|
|
46
|
+
export declare type NormalizedValueSchema<T = any> = {
|
|
47
|
+
type: Set<ValueType<T>>;
|
|
48
|
+
array: boolean;
|
|
49
|
+
optional: boolean;
|
|
50
|
+
nullable: boolean;
|
|
51
|
+
coerce: boolean;
|
|
52
|
+
coercers: Map<ValueType, SchemaValueCoercer[]>;
|
|
53
|
+
transformers: readonly SchemaValueTransformer[];
|
|
54
|
+
arrayConstraints: readonly SchemaArrayConstraint[];
|
|
55
|
+
valueConstraints: readonly SchemaValueConstraint[];
|
|
56
|
+
};
|
|
57
|
+
export declare type SchemaContext = {
|
|
58
|
+
schema: NormalizedValueSchema;
|
|
59
|
+
options: SchemaTestOptions;
|
|
10
60
|
};
|
|
11
|
-
export declare type
|
|
12
|
-
export declare type
|
|
13
|
-
export declare type
|
|
14
|
-
export declare type
|
|
61
|
+
export declare type ConstraintContext = SchemaContext;
|
|
62
|
+
export declare type TransformerContext = SchemaContext;
|
|
63
|
+
export declare type CoercerContext = SchemaContext;
|
|
64
|
+
export declare type ValueType<T = any> = Schema<T> | Type<T> | typeof BigInt | typeof Symbol | typeof Function | 'undefined' | 'null' | 'any';
|
|
65
|
+
export declare type DeferredValueType<T> = {
|
|
66
|
+
deferred: () => ValueType<T>;
|
|
67
|
+
};
|
|
68
|
+
export declare type MaybeDeferredValueType<T = any> = ValueType<T> | DeferredValueType<T>;
|
|
69
|
+
export declare type ValueTypes<T = any> = OneOrMany<ValueType<T>>;
|
|
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>[];
|
|
15
74
|
export declare type Coercible = {
|
|
75
|
+
coerce?: boolean;
|
|
76
|
+
};
|
|
77
|
+
export declare const primitiveValueTypes: ValueType[];
|
|
78
|
+
export declare const primitiveValueTypesSet: Set<ValueType<any>>;
|
|
79
|
+
export declare abstract class SchemaArrayConstraint {
|
|
80
|
+
abstract validate(value: readonly unknown[], path: JsonPath, context: ConstraintContext): ConstraintResult;
|
|
81
|
+
}
|
|
82
|
+
export declare type OptionKeys<T extends Record> = readonly (keyof T)[];
|
|
83
|
+
export declare abstract class SchemaValueConstraint {
|
|
84
|
+
abstract readonly suitableTypes: ValueTypes;
|
|
85
|
+
abstract readonly expects: OneOrMany<string>;
|
|
86
|
+
abstract validate(value: unknown, path: JsonPath, context: ConstraintContext): ConstraintResult;
|
|
87
|
+
}
|
|
88
|
+
export declare abstract class SchemaValueTransformer {
|
|
89
|
+
abstract readonly sourceType: ValueTypes;
|
|
90
|
+
abstract readonly targetType: ValueType;
|
|
91
|
+
abstract transform(value: unknown, path: JsonPath, context: TransformerContext): TransformResult;
|
|
92
|
+
}
|
|
93
|
+
export declare abstract class SchemaValueCoercer {
|
|
94
|
+
abstract readonly sourceType: ValueTypes;
|
|
95
|
+
abstract readonly targetType: ValueType;
|
|
96
|
+
abstract coerce(value: unknown, path: JsonPath, context: CoercerContext): CoerceResult;
|
|
97
|
+
}
|
|
98
|
+
export declare type SchemaTestOptions = {
|
|
16
99
|
/**
|
|
17
100
|
* try to convert wrong input into desired output.
|
|
18
101
|
* Can be specified on definition and validation. If specified on both, definition has higher priority
|
|
19
102
|
*/
|
|
20
103
|
coerce?: boolean;
|
|
21
|
-
};
|
|
22
|
-
export declare type Maskable = {
|
|
23
104
|
/**
|
|
24
105
|
* remove unspecified fields on input data instead of raising an error.
|
|
25
106
|
* Can be specified on definition and validation. If specified on both, definition has higher priority
|
|
26
107
|
*/
|
|
27
108
|
mask?: boolean;
|
|
28
109
|
};
|
|
29
|
-
export declare
|
|
110
|
+
export declare type SchemaTestResult<T> = {
|
|
111
|
+
success: true;
|
|
112
|
+
value: T;
|
|
113
|
+
error?: undefined;
|
|
114
|
+
} | {
|
|
115
|
+
success: false;
|
|
116
|
+
value?: undefined;
|
|
117
|
+
error: SchemaError;
|
|
118
|
+
};
|
|
119
|
+
export declare type ConstraintResult = {
|
|
120
|
+
success: true;
|
|
121
|
+
error?: undefined;
|
|
122
|
+
} | {
|
|
123
|
+
success: false;
|
|
124
|
+
error: SchemaError;
|
|
125
|
+
};
|
|
126
|
+
export declare type CoerceResult = {
|
|
127
|
+
success: true;
|
|
128
|
+
value: any;
|
|
129
|
+
error?: undefined;
|
|
130
|
+
} | {
|
|
131
|
+
success: false;
|
|
132
|
+
value?: undefined;
|
|
133
|
+
error: SchemaError;
|
|
134
|
+
};
|
|
135
|
+
export declare type TransformResult = {
|
|
136
|
+
success: true;
|
|
137
|
+
value: any;
|
|
138
|
+
error?: undefined;
|
|
139
|
+
} | {
|
|
140
|
+
success: false;
|
|
141
|
+
value?: undefined;
|
|
142
|
+
error: SchemaError;
|
|
143
|
+
};
|
|
144
|
+
export declare function objectSchema<T extends ObjectSchema>(schema: T): T;
|
|
145
|
+
export declare function valueSchema<T extends ValueSchema>(schema: T): T;
|
|
146
|
+
export declare function isSchema<T>(value: ValueType<T>): value is Schema<T>;
|
|
147
|
+
export declare function isObjectSchema<T>(value: ValueType<T>): value is ObjectSchema<T>;
|
|
148
|
+
export declare function isValueSchema<T>(value: ValueType<T>): value is ValueSchema<T>;
|
|
149
|
+
export declare function isDeferredValueType<T>(value: MaybeDeferredValueTypes<T>): value is (DeferredValueType<T> | DeferredValueTypes<T>);
|
|
30
150
|
export {};
|
package/schema/types.js
CHANGED
|
@@ -1,8 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
3
|
+
exports.isDeferredValueType = exports.isValueSchema = exports.isObjectSchema = exports.isSchema = exports.valueSchema = exports.objectSchema = exports.SchemaValueCoercer = exports.SchemaValueTransformer = exports.SchemaValueConstraint = exports.SchemaArrayConstraint = exports.primitiveValueTypesSet = exports.primitiveValueTypes = void 0;
|
|
4
|
+
const object_1 = require("../utils/object/object");
|
|
5
|
+
const type_guards_1 = require("../utils/type-guards");
|
|
6
|
+
exports.primitiveValueTypes = [String, Number, Boolean, BigInt, Symbol, Function, 'undefined', 'null', 'any'];
|
|
7
|
+
exports.primitiveValueTypesSet = new Set(exports.primitiveValueTypes);
|
|
8
|
+
class SchemaArrayConstraint {
|
|
9
|
+
}
|
|
10
|
+
exports.SchemaArrayConstraint = SchemaArrayConstraint;
|
|
11
|
+
class SchemaValueConstraint {
|
|
12
|
+
}
|
|
13
|
+
exports.SchemaValueConstraint = SchemaValueConstraint;
|
|
14
|
+
class SchemaValueTransformer {
|
|
15
|
+
}
|
|
16
|
+
exports.SchemaValueTransformer = SchemaValueTransformer;
|
|
17
|
+
class SchemaValueCoercer {
|
|
18
|
+
}
|
|
19
|
+
exports.SchemaValueCoercer = SchemaValueCoercer;
|
|
20
|
+
function objectSchema(schema) {
|
|
21
|
+
return schema;
|
|
22
|
+
}
|
|
23
|
+
exports.objectSchema = objectSchema;
|
|
24
|
+
function valueSchema(schema) {
|
|
5
25
|
return schema;
|
|
6
26
|
}
|
|
7
|
-
exports.
|
|
27
|
+
exports.valueSchema = valueSchema;
|
|
28
|
+
function isSchema(value) {
|
|
29
|
+
return isObjectSchema(value) || isValueSchema(value);
|
|
30
|
+
}
|
|
31
|
+
exports.isSchema = isSchema;
|
|
32
|
+
function isObjectSchema(value) {
|
|
33
|
+
return (0, type_guards_1.isObject)(value?.properties);
|
|
34
|
+
}
|
|
35
|
+
exports.isObjectSchema = isObjectSchema;
|
|
36
|
+
function isValueSchema(value) {
|
|
37
|
+
return (0, type_guards_1.isObject)(value) && (0, type_guards_1.isDefined)(value?.type);
|
|
38
|
+
}
|
|
39
|
+
exports.isValueSchema = isValueSchema;
|
|
40
|
+
function isDeferredValueType(value) {
|
|
41
|
+
return (0, type_guards_1.isObject)(value) && (0, object_1.hasOwnProperty)(value, 'deferred');
|
|
42
|
+
}
|
|
43
|
+
exports.isDeferredValueType = isDeferredValueType;
|
|
8
44
|
//# 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":";;;AAEA,mDAAuD;AACvD,sDAA0D;AAuF7C,QAAA,mBAAmB,GAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AACnH,QAAA,sBAAsB,GAAG,IAAI,GAAG,CAAC,2BAAmB,CAAC,CAAC;AAEnE,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,CAAyB,MAAS;IAC5D,OAAO,MAAM,CAAC;AAChB,CAAC;AAFD,oCAEC;AAED,SAAgB,WAAW,CAAwB,MAAS;IAC1D,OAAO,MAAM,CAAC;AAChB,CAAC;AAFD,kCAEC;AAED,SAAgB,QAAQ,CAAI,KAAmB;IAC7C,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAFD,4BAEC;AAED,SAAgB,cAAc,CAAI,KAAmB;IACnD,OAAO,IAAA,sBAAQ,EAAE,KAA2C,EAAE,UAAU,CAAC,CAAC;AAC5E,CAAC;AAFD,wCAEC;AAED,SAAgB,aAAa,CAAI,KAAmB;IAClD,OAAO,IAAA,sBAAQ,EAAC,KAAK,CAAC,IAAI,IAAA,uBAAS,EAAE,KAA0C,EAAE,IAAI,CAAC,CAAC;AACzF,CAAC;AAFD,sCAEC;AAED,SAAgB,mBAAmB,CAAI,KAAiC;IACtE,OAAO,IAAA,sBAAQ,EAAC,KAAK,CAAC,IAAI,IAAA,uBAAc,EAAE,KAA4B,EAAE,UAAU,CAAC,CAAC;AACtF,CAAC;AAFD,kDAEC"}
|
|
@@ -14,5 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./schema"), exports);
|
|
18
|
+
__exportStar(require("./value-type"), exports);
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/schema/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,+CAA6B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Schema } from '../schema';
|
|
2
|
+
import type { MaybeDeferredValueTypes, NormalizedObjectSchema, NormalizedValueSchema, ObjectSchema, ValueSchema, ValueTypes } from '../types';
|
|
3
|
+
export declare const normalizeSchema: typeof _normalizeObjectSchema;
|
|
4
|
+
export declare const normalizeValueSchema: typeof _normalizeValueSchema;
|
|
5
|
+
export declare const getArrayItemSchema: typeof _getArrayItemSchema;
|
|
6
|
+
export declare function _normalizeObjectSchema<T>(objectSchema: ObjectSchema<T>): NormalizedObjectSchema<T>;
|
|
7
|
+
export declare function _normalizeValueSchema<T>(valueSchema: ValueSchema<T>): NormalizedValueSchema<T>;
|
|
8
|
+
declare function _getArrayItemSchema<T>(valueSchema: ValueSchema<T>): ValueSchema<T>;
|
|
9
|
+
export declare function maybeDeferredValueTypesToValueTypes<T>(valueTypes: MaybeDeferredValueTypes<T>): ValueTypes<T>;
|
|
10
|
+
export declare function valueTypesToSchema<T>(valueType: ValueTypes<T>): Schema<T>;
|
|
11
|
+
export declare function maybeDeferredValueTypesToSchema<T>(valueType: MaybeDeferredValueTypes<T>): Schema<T>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.maybeDeferredValueTypesToSchema = exports.valueTypesToSchema = exports.maybeDeferredValueTypesToValueTypes = exports._normalizeValueSchema = exports._normalizeObjectSchema = exports.getArrayItemSchema = exports.normalizeValueSchema = exports.normalizeSchema = void 0;
|
|
4
|
+
const array_1 = require("../../utils/array/array");
|
|
5
|
+
const memoize_1 = require("../../utils/function/memoize");
|
|
6
|
+
const object_1 = require("../../utils/object/object");
|
|
7
|
+
const type_guards_1 = require("../../utils/type-guards");
|
|
8
|
+
const types_1 = require("../types");
|
|
9
|
+
exports.normalizeSchema = (0, memoize_1.memoizeSingle)(_normalizeObjectSchema, { weak: true });
|
|
10
|
+
exports.normalizeValueSchema = (0, memoize_1.memoizeSingle)(_normalizeValueSchema, { weak: true });
|
|
11
|
+
exports.getArrayItemSchema = (0, memoize_1.memoizeSingle)(_getArrayItemSchema, { weak: true });
|
|
12
|
+
function _normalizeObjectSchema(objectSchema) {
|
|
13
|
+
const normalizedObjectSchema = {
|
|
14
|
+
factory: objectSchema.factory,
|
|
15
|
+
properties: (0, object_1.mapObjectValues)(objectSchema.properties, maybeDeferredValueTypesToSchema),
|
|
16
|
+
mask: objectSchema.mask,
|
|
17
|
+
allowUnknownProperties: new Set((0, array_1.toArray)(objectSchema.allowUnknownProperties ?? []).map(maybeDeferredValueTypesToSchema))
|
|
18
|
+
};
|
|
19
|
+
return normalizedObjectSchema;
|
|
20
|
+
}
|
|
21
|
+
exports._normalizeObjectSchema = _normalizeObjectSchema;
|
|
22
|
+
function _normalizeValueSchema(valueSchema) {
|
|
23
|
+
const valueTypes = maybeDeferredValueTypesToValueTypes(valueSchema.type);
|
|
24
|
+
const normalizedValueSchema = {
|
|
25
|
+
type: new Set((0, array_1.toArray)(valueTypes)),
|
|
26
|
+
array: valueSchema.array ?? false,
|
|
27
|
+
optional: valueSchema.optional ?? false,
|
|
28
|
+
nullable: valueSchema.nullable ?? false,
|
|
29
|
+
coerce: valueSchema.coerce ?? false,
|
|
30
|
+
coercers: new Map(),
|
|
31
|
+
transformers: (0, array_1.toArray)(valueSchema.transformers ?? []),
|
|
32
|
+
arrayConstraints: (0, array_1.toArray)(valueSchema.arrayConstraints ?? []),
|
|
33
|
+
valueConstraints: (0, array_1.toArray)(valueSchema.valueConstraints ?? [])
|
|
34
|
+
};
|
|
35
|
+
for (const coercer of (0, array_1.toArray)(valueSchema.coercers ?? [])) {
|
|
36
|
+
for (const sourceType of (0, array_1.toArray)(coercer.sourceType)) {
|
|
37
|
+
if (!normalizedValueSchema.coercers.has(sourceType)) {
|
|
38
|
+
normalizedValueSchema.coercers.set(sourceType, []);
|
|
39
|
+
}
|
|
40
|
+
normalizedValueSchema.coercers.get(sourceType).push(coercer);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return normalizedValueSchema;
|
|
44
|
+
}
|
|
45
|
+
exports._normalizeValueSchema = _normalizeValueSchema;
|
|
46
|
+
function _getArrayItemSchema(valueSchema) {
|
|
47
|
+
const itemSchema = {
|
|
48
|
+
type: valueSchema.type,
|
|
49
|
+
array: false,
|
|
50
|
+
optional: false,
|
|
51
|
+
nullable: false,
|
|
52
|
+
transformers: valueSchema.transformers,
|
|
53
|
+
valueConstraints: valueSchema.valueConstraints
|
|
54
|
+
};
|
|
55
|
+
return itemSchema;
|
|
56
|
+
}
|
|
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
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../source/schema/utils/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ValueType } from '../types';
|
|
2
|
+
export declare function getValueType(value: unknown): ValueType;
|
|
3
|
+
export declare function getValueTypeName(valueType: ValueType): string;
|
|
4
|
+
export declare function valueTypeHasValueType(valueType: ValueType, typeToCheck: ValueType): boolean;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.valueTypeHasValueType = exports.getValueTypeName = exports.getValueType = void 0;
|
|
4
|
+
const type_guards_1 = require("../../utils/type-guards");
|
|
5
|
+
const types_1 = require("../types");
|
|
6
|
+
const schema_1 = require("./schema");
|
|
7
|
+
function getValueType(value) {
|
|
8
|
+
if ((0, type_guards_1.isUndefined)(value)) {
|
|
9
|
+
return 'undefined';
|
|
10
|
+
}
|
|
11
|
+
if ((0, type_guards_1.isNull)(value)) {
|
|
12
|
+
return 'null';
|
|
13
|
+
}
|
|
14
|
+
return value.constructor;
|
|
15
|
+
}
|
|
16
|
+
exports.getValueType = getValueType;
|
|
17
|
+
function getValueTypeName(valueType) {
|
|
18
|
+
return (0, type_guards_1.isString)(valueType) ? valueType : (0, type_guards_1.isFunction)(valueType) ? valueType.name : 'object';
|
|
19
|
+
}
|
|
20
|
+
exports.getValueTypeName = getValueTypeName;
|
|
21
|
+
function valueTypeHasValueType(valueType, typeToCheck) {
|
|
22
|
+
if ((0, types_1.isValueSchema)(valueType)) {
|
|
23
|
+
const resolvedValueTypes = (0, schema_1.maybeDeferredValueTypesToValueTypes)(valueType.type);
|
|
24
|
+
if ((0, type_guards_1.isArray)(resolvedValueTypes)) {
|
|
25
|
+
return resolvedValueTypes.some((innerType) => valueTypeHasValueType(innerType, typeToCheck));
|
|
26
|
+
}
|
|
27
|
+
return valueTypeHasValueType(resolvedValueTypes, typeToCheck);
|
|
28
|
+
}
|
|
29
|
+
if ((0, types_1.isObjectSchema)(valueType)) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
return valueType == typeToCheck;
|
|
33
|
+
}
|
|
34
|
+
exports.valueTypeHasValueType = valueTypeHasValueType;
|
|
35
|
+
//# sourceMappingURL=value-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-type.js","sourceRoot":"","sources":["../../../source/schema/utils/value-type.ts"],"names":[],"mappings":";;;AACA,yDAAyF;AAEzF,oCAAyD;AACzD,qCAA+D;AAE/D,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,OAAQ,KAAgB,CAAC,WAAmB,CAAC;AAC/C,CAAC;AAVD,oCAUC;AAED,SAAgB,gBAAgB,CAAC,SAAoB;IACnD,OAAO,IAAA,sBAAQ,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,wBAAU,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7F,CAAC;AAFD,4CAEC;AAED,SAAgB,qBAAqB,CAAC,SAAoB,EAAE,WAAsB;IAChF,IAAI,IAAA,qBAAa,EAAC,SAAS,CAAC,EAAE;QAC5B,MAAM,kBAAkB,GAAG,IAAA,4CAAmC,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE/E,IAAI,IAAA,qBAAO,EAAC,kBAAkB,CAAC,EAAE;YAC/B,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;SAC9F;QAED,OAAO,qBAAqB,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;KAC/D;IAED,IAAI,IAAA,sBAAc,EAAC,SAAS,CAAC,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IAED,OAAO,SAAS,IAAI,WAAW,CAAC;AAClC,CAAC;AAhBD,sDAgBC"}
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FileTemplateProviderBase = void 0;
|
|
4
4
|
const bad_request_error_1 = require("../../error/bad-request.error");
|
|
5
|
+
const schema_1 = require("../../schema");
|
|
5
6
|
const type_guards_1 = require("../../utils/type-guards");
|
|
6
7
|
const fs = require("fs/promises");
|
|
7
8
|
const path = require("path");
|
|
8
|
-
const keyPattern = /^[\w
|
|
9
|
+
const keyPattern = /^[\w\-/]+$/u;
|
|
9
10
|
class FileTemplateProviderBase {
|
|
10
11
|
constructor(schema, basePath, fileForwards) {
|
|
11
12
|
this.schema = schema;
|
|
@@ -19,7 +20,7 @@ class FileTemplateProviderBase {
|
|
|
19
20
|
const filePath = path.resolve(this.basePath, `${key}.js`);
|
|
20
21
|
const templateModule = await Promise.resolve().then(() => require(filePath));
|
|
21
22
|
const fileContent = templateModule.default;
|
|
22
|
-
const fileTemplate =
|
|
23
|
+
const fileTemplate = schema_1.Schema.parse(this.schema, fileContent);
|
|
23
24
|
const result = {};
|
|
24
25
|
const entries = Object.entries(fileTemplate);
|
|
25
26
|
for (const [property, value] of entries) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-template.provider.base.js","sourceRoot":"","sources":["../../../source/templates/providers/file-template.provider.base.ts"],"names":[],"mappings":";;;AAAA,qEAA4D;
|
|
1
|
+
{"version":3,"file":"file-template.provider.base.js","sourceRoot":"","sources":["../../../source/templates/providers/file-template.provider.base.ts"],"names":[],"mappings":";;;AAAA,qEAA4D;AAC5D,yCAAkC;AAElC,yDAAkE;AAClE,kCAAkC;AAClC,6BAA6B;AAO7B,MAAM,UAAU,GAAG,aAAa,CAAC;AAEjC,MAAa,wBAAwB;IAKnC,YAAY,MAAiB,EAAE,QAAgB,EAAE,YAAiC;QAChF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACzB,MAAM,IAAI,mCAAe,CAAC,gEAAgE,CAAC,CAAC;SAC7F;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC;QAC1D,MAAM,cAAc,GAAG,2CAAa,QAAQ,EAAyB,CAAC;QACtE,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC;QAC3C,MAAM,YAAY,GAAG,eAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAE5D,MAAM,MAAM,GAAW,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAyB,CAAC;QAErE,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBACpC,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;aAC1B;SACF;QAED,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;YACpD,IAAI,IAAA,uBAAS,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE;gBAChC,IAAI,IAAA,uBAAS,EAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE;oBACpC,MAAM,IAAI,KAAK,CAAC,UAAU,OAAO,CAAC,QAAQ,EAAE,OAAO,SAAS,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;iBAC7F;gBAED,SAAS;aACV;YAED,IAAI,IAAA,uBAAS,EAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE;gBACpC,MAAM,eAAe,GAAG,IAAA,8BAAgB,EAAC,YAAY,CAAC,OAAO,CAAC,EAAE,6BAA6B,CAAC,CAAC;gBAC/F,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;gBAEtG,MAAM,CAAC,SAAS,CAAC,GAAG,OAAc,CAAC;gBACnC,SAAS;aACV;YAED,MAAM,IAAI,KAAK,CAAC,UAAU,OAAO,CAAC,QAAQ,EAAE,OAAO,SAAS,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;SAC7F;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AApDD,4DAoDC"}
|
package/types.d.ts
CHANGED
|
@@ -37,7 +37,8 @@ export declare type UndefinableJsonObject = {
|
|
|
37
37
|
export declare type UndefinableJsonArray = UndefinableJsonInnerNode[];
|
|
38
38
|
export declare type Enumeration = EnumerationArray | EnumerationObject;
|
|
39
39
|
export declare type EnumerationArray = readonly [string | number, ...(string | number)[]];
|
|
40
|
-
export declare type EnumerationObject =
|
|
40
|
+
export declare type EnumerationObject = Record<string, string | number>;
|
|
41
|
+
export declare type EnumerationValue<T extends Enumeration = Enumeration> = T extends EnumerationArray ? T[number] : T[Extract<keyof T, string>];
|
|
41
42
|
export declare type Type<T = any, Arguments extends any[] = any> = Constructor<T, Arguments> & {
|
|
42
43
|
prototype: T;
|
|
43
44
|
};
|
|
@@ -94,6 +95,9 @@ export declare type Simplify<T> = T extends (Primitive | Function | Date | RegEx
|
|
|
94
95
|
export declare type SimplifyObject<T extends Record> = {
|
|
95
96
|
[K in keyof T]: T[K];
|
|
96
97
|
} & {};
|
|
98
|
+
export declare type UndefinableObject<T extends Record> = {
|
|
99
|
+
[K in keyof T]: T[K] | undefined;
|
|
100
|
+
};
|
|
97
101
|
/**
|
|
98
102
|
* pick properties from a type that extend from a specific type.
|
|
99
103
|
*/
|
package/utils/clone.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function clone<T>(object: T, deep: boolean): T;
|
package/utils/clone.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.clone = void 0;
|
|
4
|
+
const object_1 = require("./object/object");
|
|
5
|
+
const type_guards_1 = require("./type-guards");
|
|
6
|
+
function clone(object, deep) {
|
|
7
|
+
if ((0, type_guards_1.isPrimitive)(object)) {
|
|
8
|
+
return object;
|
|
9
|
+
}
|
|
10
|
+
if ((0, type_guards_1.isDate)(object)) {
|
|
11
|
+
return new Date(object);
|
|
12
|
+
}
|
|
13
|
+
if ((0, type_guards_1.isRegExp)(object)) {
|
|
14
|
+
return new RegExp(object.source, object.flags);
|
|
15
|
+
}
|
|
16
|
+
if ((0, type_guards_1.isSet)(object)) {
|
|
17
|
+
return new Set(object);
|
|
18
|
+
}
|
|
19
|
+
if ((0, type_guards_1.isMap)(object)) {
|
|
20
|
+
return new Map(object);
|
|
21
|
+
}
|
|
22
|
+
if ((0, type_guards_1.isArrayBuffer)(object)) {
|
|
23
|
+
return object.slice(0);
|
|
24
|
+
}
|
|
25
|
+
if ((0, type_guards_1.isTypedArray)(object)) {
|
|
26
|
+
return object.slice();
|
|
27
|
+
}
|
|
28
|
+
if ((0, type_guards_1.isDataView)(object)) {
|
|
29
|
+
const clonedBuffer = object.buffer.slice(0);
|
|
30
|
+
return new DataView(clonedBuffer, object.byteOffset, object.byteLength);
|
|
31
|
+
}
|
|
32
|
+
if ((0, type_guards_1.isArray)(object)) {
|
|
33
|
+
return deep
|
|
34
|
+
? object.map((value) => clone(value, true))
|
|
35
|
+
: [...object];
|
|
36
|
+
}
|
|
37
|
+
(0, type_guards_1.assertObject)(object);
|
|
38
|
+
if (!deep) {
|
|
39
|
+
return { ...object };
|
|
40
|
+
}
|
|
41
|
+
const entries = (0, object_1.objectEntries)(object).map(([key, value]) => [key, clone(value, true)]);
|
|
42
|
+
return Object.fromEntries(entries);
|
|
43
|
+
}
|
|
44
|
+
exports.clone = clone;
|
|
45
|
+
//# sourceMappingURL=clone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clone.js","sourceRoot":"","sources":["../../source/utils/clone.ts"],"names":[],"mappings":";;;AAAA,4CAAgD;AAChD,+CAA4I;AAE5I,SAAgB,KAAK,CAAI,MAAS,EAAE,IAAa;IAC/C,IAAI,IAAA,yBAAW,EAAC,MAAM,CAAC,EAAE;QACvB,OAAO,MAAM,CAAC;KACf;IAED,IAAI,IAAA,oBAAM,EAAC,MAAM,CAAC,EAAE;QAClB,OAAO,IAAI,IAAI,CAAC,MAAM,CAAiB,CAAC;KACzC;IAED,IAAI,IAAA,sBAAQ,EAAC,MAAM,CAAC,EAAE;QACpB,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAiB,CAAC;KAChE;IAED,IAAI,IAAA,mBAAK,EAAC,MAAM,CAAC,EAAE;QACjB,OAAO,IAAI,GAAG,CAAC,MAAM,CAAiB,CAAC;KACxC;IAED,IAAI,IAAA,mBAAK,EAAC,MAAM,CAAC,EAAE;QACjB,OAAO,IAAI,GAAG,CAAC,MAAM,CAAiB,CAAC;KACxC;IAED,IAAI,IAAA,2BAAa,EAAC,MAAM,CAAC,EAAE;QACzB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAiB,CAAC;KACxC;IAED,IAAI,IAAA,0BAAY,EAAC,MAAM,CAAC,EAAE;QACxB,OAAO,MAAM,CAAC,KAAK,EAAkB,CAAC;KACvC;IAED,IAAI,IAAA,wBAAU,EAAC,MAAM,CAAC,EAAE;QACtB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5C,OAAO,IAAI,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAiB,CAAC;KACzF;IAED,IAAI,IAAA,qBAAO,EAAC,MAAM,CAAC,EAAE;QACnB,OAAO,IAAI;YACT,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAO,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAa;YAC5D,CAAC,CAAC,CAAC,GAAG,MAAM,CAAiB,CAAC;KACjC;IAED,IAAA,0BAAY,EAAC,MAAM,CAAC,CAAC;IAErB,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,EAAE,GAAG,MAAM,EAAO,CAAC;KAC3B;IAED,MAAM,OAAO,GAAG,IAAA,sBAAa,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAU,CAAC,CAAC;IAChG,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAiB,CAAC;AACrD,CAAC;AAhDD,sBAgDC"}
|
package/utils/enum.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { EnumerationObject, Simplify } from "../types";
|
|
2
2
|
export declare type EnumEntry<T> = [EnumKey<T>, EnumValue<T>];
|
|
3
3
|
export declare type EnumKey<T> = Extract<keyof T, string>;
|
|
4
|
-
export declare type EnumValue<T> = Simplify<T[
|
|
4
|
+
export declare type EnumValue<T> = Simplify<T[EnumKey<T>]>;
|
|
5
5
|
export declare function enumEntries<T extends EnumerationObject>(enumeration: T): EnumEntry<T>[];
|
|
6
6
|
export declare function enumKeys<T extends EnumerationObject>(enumeration: T): EnumKey<T>[];
|
|
7
7
|
export declare function enumValues<T extends EnumerationObject>(enumeration: T): EnumValue<T>[];
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { UndefinableJson } from "../types";
|
|
2
|
+
export declare type FormatErrorOptions = {
|
|
3
|
+
/**
|
|
4
|
+
* include all error properties beside name and message
|
|
5
|
+
*/
|
|
6
|
+
includeRest?: boolean | 'if-no-extra-info';
|
|
7
|
+
/**
|
|
8
|
+
* include extraInfo from errors implementing {@link ErrorExtraInfo}
|
|
9
|
+
*/
|
|
10
|
+
includeExtraInfo?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* include stack trace
|
|
13
|
+
*/
|
|
14
|
+
includeStack?: boolean;
|
|
15
|
+
};
|
|
16
|
+
export interface ErrorExtraInfo {
|
|
17
|
+
/** format extra data (without message and stack) as JSON */
|
|
18
|
+
getExtraInfo(): UndefinableJson | undefined;
|
|
19
|
+
}
|
|
20
|
+
export declare function formatError(error: any, options?: FormatErrorOptions): string;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatError = void 0;
|
|
4
|
+
const decycle_1 = require("./object/decycle");
|
|
5
|
+
const type_guards_1 = require("./type-guards");
|
|
6
|
+
// eslint-disable-next-line max-statements, complexity
|
|
7
|
+
function formatError(error, options = {}) {
|
|
8
|
+
const { includeRest = 'if-no-extra-info', includeExtraInfo = true, includeStack = true } = options;
|
|
9
|
+
let name;
|
|
10
|
+
let message;
|
|
11
|
+
let stack;
|
|
12
|
+
let rest;
|
|
13
|
+
let extraInfo;
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
15
|
+
const wrappedError = error?.rejection ?? error?.reason ?? error?.error;
|
|
16
|
+
if ((error instanceof Error) && !(error.message.startsWith('Uncaught') && (wrappedError instanceof Error))) {
|
|
17
|
+
({ name, message, stack, ...rest } = error);
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
19
|
+
if (includeExtraInfo && (0, type_guards_1.isFunction)(error.getExtraInfo)) {
|
|
20
|
+
extraInfo = error.getExtraInfo();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
else if (wrappedError instanceof Error) {
|
|
24
|
+
return formatError(wrappedError, options);
|
|
25
|
+
}
|
|
26
|
+
if ((0, type_guards_1.isUndefined)(name) && ((0, type_guards_1.isUndefined)(message) || message.trim().length == 0)) {
|
|
27
|
+
try {
|
|
28
|
+
const decycledError = (0, decycle_1.decycle)(error);
|
|
29
|
+
message = JSON.stringify(decycledError, null, 2);
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const decycledRest = (0, type_guards_1.isDefined)(rest) ? (0, decycle_1.decycle)(rest) : undefined;
|
|
36
|
+
const restString = (((includeRest == true) || ((includeRest == 'if-no-extra-info') && (0, type_guards_1.isUndefined)(extraInfo))) && (0, type_guards_1.isDefined)(decycledRest) && (Object.keys(rest ?? {}).length > 0)) ? `\n${JSON.stringify(decycledRest, null, 2)}` : '';
|
|
37
|
+
const extraInfoString = (0, type_guards_1.isDefined)(extraInfo) ? `\n${JSON.stringify(extraInfo, null, 2)}` : '';
|
|
38
|
+
const stackString = (includeStack && (0, type_guards_1.isDefined)(stack)) ? `\n${stack}` : '';
|
|
39
|
+
return `${name ?? 'Error'}: ${message}${restString}${extraInfoString}${stackString}`;
|
|
40
|
+
}
|
|
41
|
+
exports.formatError = formatError;
|
|
42
|
+
//# sourceMappingURL=format-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-error.js","sourceRoot":"","sources":["../../source/utils/format-error.ts"],"names":[],"mappings":";;;AACA,8CAA2C;AAC3C,+CAAmE;AAwBnE,sDAAsD;AACtD,SAAgB,WAAW,CAAC,KAAU,EAAE,UAA8B,EAAE;IACtE,MAAM,EAAE,WAAW,GAAG,kBAAkB,EAAE,gBAAgB,GAAG,IAAI,EAAE,YAAY,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEnG,IAAI,IAAwB,CAAC;IAC7B,IAAI,OAA2B,CAAC;IAChC,IAAI,KAAyB,CAAC;IAC9B,IAAI,IAAwB,CAAC;IAC7B,IAAI,SAAsC,CAAC;IAE3C,sEAAsE;IACtE,MAAM,YAAY,GAAG,KAAK,EAAE,SAAS,IAAI,KAAK,EAAE,MAAM,IAAI,KAAK,EAAE,KAAK,CAAC;IAEvE,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,YAAY,KAAK,CAAC,CAAC,EAAE;QAC1G,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC;QAE5C,6DAA6D;QAC7D,IAAI,gBAAgB,IAAI,IAAA,wBAAU,EAAE,KAAmC,CAAC,YAAY,CAAC,EAAE;YACrF,SAAS,GAAI,KAAmC,CAAC,YAAY,EAAE,CAAC;SACjE;KACF;SACI,IAAI,YAAY,YAAY,KAAK,EAAE;QACtC,OAAO,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;KAC3C;IAED,IAAI,IAAA,yBAAW,EAAC,IAAI,CAAC,IAAI,CAAC,IAAA,yBAAW,EAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE;QAC7E,IAAI;YACF,MAAM,aAAa,GAAG,IAAA,iBAAO,EAAC,KAAK,CAAC,CAAC;YACrC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;SAClD;QACD,MAAM;YACJ,MAAM,KAAK,CAAC;SACb;KACF;IAED,MAAM,YAAY,GAAG,IAAA,uBAAS,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,iBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,kBAAkB,CAAC,IAAI,IAAA,yBAAW,EAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAA,uBAAS,EAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvO,MAAM,eAAe,GAAG,IAAA,uBAAS,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9F,MAAM,WAAW,GAAG,CAAC,YAAY,IAAI,IAAA,uBAAS,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3E,OAAO,GAAG,IAAI,IAAI,OAAO,KAAK,OAAO,GAAG,UAAU,GAAG,eAAe,GAAG,WAAW,EAAE,CAAC;AACvF,CAAC;AAxCD,kCAwCC"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
+
export declare type MemoizeOptions = {
|
|
2
|
+
/** Use WeakMap instead of Map for caching. Can be used with object parameters only */
|
|
3
|
+
weak?: boolean;
|
|
4
|
+
};
|
|
1
5
|
/**
|
|
2
6
|
* memoizes a function with an arbitrary number of parameters. If you only need a single parameter, {@link memoizeSingle} is faster
|
|
3
7
|
* @param fn function memoize
|
|
4
8
|
* @returns memoized function
|
|
5
|
-
*/ export declare function memoize<Fn extends (...parameters: any[]) => any>(fn: Fn): Fn;
|
|
9
|
+
*/ export declare function memoize<Fn extends (...parameters: any[]) => any>(fn: Fn, options?: MemoizeOptions): Fn;
|
|
6
10
|
/**
|
|
7
11
|
* memoizes a function with a single parameter. Faster than {@link memoize}
|
|
8
12
|
* @param fn function memoize
|
|
9
13
|
* @returns memoized function
|
|
10
14
|
*/
|
|
11
|
-
export declare function memoizeSingle<Fn extends (parameter: any) => any>(fn: Fn): Fn;
|
|
15
|
+
export declare function memoizeSingle<Fn extends (parameter: any) => any>(fn: Fn, options?: MemoizeOptions): Fn;
|