functional-models 1.1.13 → 1.1.17
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/interfaces.d.ts +33 -32
- package/interfaces.js +0 -1
- package/interfaces.js.map +1 -1
- package/models.js.map +1 -1
- package/package.json +2 -2
- package/properties.d.ts +11 -11
- package/properties.js +6 -3
- package/properties.js.map +1 -1
- package/validation.d.ts +3 -3
- package/validation.js +11 -8
- package/validation.js.map +1 -1
package/interfaces.d.ts
CHANGED
|
@@ -4,18 +4,14 @@ declare type Nullable<T> = T | null;
|
|
|
4
4
|
declare type Maybe<T> = T | undefined | null;
|
|
5
5
|
declare type Arrayable<T> = T | readonly T[];
|
|
6
6
|
declare type MaybeLazy<T> = Maybe<Promise<T>>;
|
|
7
|
-
declare type
|
|
8
|
-
declare type JsonAble = number | string | boolean | null | Arrayable<{
|
|
7
|
+
declare type JsonAble = Arrayable<{
|
|
9
8
|
readonly [s: string]: JsonAble;
|
|
10
|
-
}>;
|
|
9
|
+
}> | Arrayable<number> | Arrayable<string> | Arrayable<boolean> | Arrayable<null>;
|
|
11
10
|
declare type VeryPrimitivesTypes = null | string | number | boolean;
|
|
12
11
|
declare type toObj = () => Promise<JsonAble>;
|
|
13
12
|
declare type ValueIsOfType<T, V> = {
|
|
14
13
|
readonly [P in keyof T as T[P] extends V ? P : never]: T[P];
|
|
15
14
|
};
|
|
16
|
-
declare type ValueIsNotOfType<T, V> = {
|
|
17
|
-
readonly [P in keyof T as T[P] extends V ? never : P]: T[P];
|
|
18
|
-
};
|
|
19
15
|
declare type InstanceMethodGetters<T> = {
|
|
20
16
|
readonly [P in keyof T as T[P] extends ModelInstanceMethod ? P : never]: ModelInstanceMethodClient;
|
|
21
17
|
};
|
|
@@ -26,26 +22,31 @@ declare type ModelMethodTypes<T extends FunctionalModel> = ModelMethod | ModelIn
|
|
|
26
22
|
declare type PropertyGetters<T extends FunctionalModel> = {
|
|
27
23
|
readonly [Property in keyof T as T[Property] extends ModelMethodTypes<T> ? never : Property]: () => T[Property] | Promise<T[Property]>;
|
|
28
24
|
};
|
|
29
|
-
declare type FunctionalModel = {
|
|
25
|
+
declare type FunctionalModel = JsonAble | {
|
|
30
26
|
readonly [s: string]: Arrayable<number> | Arrayable<string> | Arrayable<boolean> | Arrayable<null> | Arrayable<FunctionalModel> | Arrayable<Date> | Arrayable<undefined> | ReferenceValueType<any> | ModelInstanceMethod | ModelMethod;
|
|
31
|
-
}
|
|
27
|
+
};
|
|
32
28
|
declare type FunctionalType = JsonAble | (() => FunctionalType) | Arrayable<undefined> | Arrayable<Date> | Arrayable<FunctionalModel> | Arrayable<{
|
|
33
29
|
readonly [s: string]: JsonAble;
|
|
34
30
|
}>;
|
|
35
|
-
declare type ModelInstanceInputData<T extends FunctionalModel> =
|
|
31
|
+
declare type ModelInstanceInputData<T extends FunctionalModel> = {
|
|
32
|
+
readonly [P in keyof T as T[P] extends ModelMethodTypes<T> ? never : P]: T[P];
|
|
33
|
+
} | JsonAble;
|
|
34
|
+
declare type ValidatorConfiguration = {
|
|
35
|
+
readonly [s: string]: any;
|
|
36
|
+
};
|
|
36
37
|
declare type PropertyValidatorComponentTypeAdvanced<TValue, TModel extends FunctionalModel> = (value: TValue, instance: ModelInstance<TModel>, instanceData: FunctionalModel) => string | undefined;
|
|
37
|
-
declare type PropertyValidatorComponentType<TValue> = (value: TValue, instance: ModelInstance<any>, instanceData: FunctionalModel) => string | undefined;
|
|
38
|
+
declare type PropertyValidatorComponentType<TValue> = (value: TValue, instance: ModelInstance<any>, instanceData: FunctionalModel, configurations: ValidatorConfiguration) => string | undefined;
|
|
38
39
|
declare type PropertyValidatorComponentSync = PropertyValidatorComponentType<any>;
|
|
39
|
-
declare type PropertyValidatorComponentAsync = (value: Arrayable<FunctionalModel>, instance: ModelInstance<any>, instanceData: FunctionalModel) => Promise<string | undefined>;
|
|
40
|
+
declare type PropertyValidatorComponentAsync = (value: Arrayable<FunctionalModel>, instance: ModelInstance<any>, instanceData: FunctionalModel, configurations: ValidatorConfiguration) => Promise<string | undefined>;
|
|
40
41
|
declare type PropertyValidatorComponent = PropertyValidatorComponentSync | PropertyValidatorComponentAsync;
|
|
41
|
-
declare type PropertyValidator = (instance: ModelInstance<any>, instanceData: FunctionalModel) => Promise<ValidationErrors>;
|
|
42
|
+
declare type PropertyValidator = (instance: ModelInstance<any>, instanceData: FunctionalModel, configurations: ValidatorConfiguration) => Promise<ValidationErrors>;
|
|
42
43
|
declare type ValidationError = string | undefined;
|
|
43
44
|
declare type ValidationErrors = readonly ValidationError[];
|
|
44
45
|
declare type ModelError = string;
|
|
45
46
|
declare type ModelErrors = {
|
|
46
47
|
readonly [s: string]: readonly ModelError[];
|
|
47
48
|
};
|
|
48
|
-
declare type ModelComponentValidator = (instance: ModelInstance<any>, instanceData: FunctionalModel,
|
|
49
|
+
declare type ModelComponentValidator = (instance: ModelInstance<any>, instanceData: FunctionalModel, configurations: ValidatorConfiguration) => Promise<ValidationErrors>;
|
|
49
50
|
declare type ValueGetter = () => MaybePromise<Arrayable<FunctionalType>> | MaybePromise<ModelInstance<any>>;
|
|
50
51
|
declare type PropertyInstance<T extends Arrayable<FunctionalType>> = {
|
|
51
52
|
readonly getConfig: () => object;
|
|
@@ -59,11 +60,11 @@ declare type PropertyInstance<T extends Arrayable<FunctionalType>> = {
|
|
|
59
60
|
declare type PropertiesList<T> = {
|
|
60
61
|
readonly [P in keyof T as T[P] extends Arrayable<FunctionalType> ? P : never]: PropertyInstance<any>;
|
|
61
62
|
};
|
|
62
|
-
interface ReferencePropertyInstance<T extends FunctionalModel> extends PropertyInstance<ModelInstance<T> | T |
|
|
63
|
-
readonly getReferencedId: (instanceValues: ReferenceValueType<T>) =>
|
|
63
|
+
interface ReferencePropertyInstance<T extends FunctionalModel> extends PropertyInstance<ModelInstance<T> | T | Maybe<PrimaryKeyType>> {
|
|
64
|
+
readonly getReferencedId: (instanceValues: ReferenceValueType<T>) => Maybe<PrimaryKeyType>;
|
|
64
65
|
readonly getReferencedModel: () => Model<T>;
|
|
65
66
|
}
|
|
66
|
-
declare type ReferenceValueType<T extends FunctionalModel> = ModelInstance<T> | ModelInstanceInputData<T> |
|
|
67
|
+
declare type ReferenceValueType<T extends FunctionalModel> = Maybe<ModelInstance<T> | ModelInstanceInputData<T> | PrimaryKeyType>;
|
|
67
68
|
declare type DefaultPropertyValidators = {
|
|
68
69
|
readonly required?: boolean;
|
|
69
70
|
readonly isInteger?: boolean;
|
|
@@ -72,13 +73,13 @@ declare type DefaultPropertyValidators = {
|
|
|
72
73
|
readonly isArray?: boolean;
|
|
73
74
|
readonly isBoolean?: boolean;
|
|
74
75
|
};
|
|
75
|
-
declare type PropertyConfigContents = {
|
|
76
|
+
declare type PropertyConfigContents<T extends Arrayable<FunctionalType>> = {
|
|
76
77
|
readonly type?: string;
|
|
77
|
-
readonly defaultValue?:
|
|
78
|
-
readonly value?:
|
|
78
|
+
readonly defaultValue?: T;
|
|
79
|
+
readonly value?: T;
|
|
79
80
|
readonly choices?: readonly VeryPrimitivesTypes[];
|
|
80
|
-
readonly lazyLoadMethod?: (value:
|
|
81
|
-
readonly valueSelector?: (instanceValue: MaybePromise<
|
|
81
|
+
readonly lazyLoadMethod?: (value: T) => MaybeLazy<T>;
|
|
82
|
+
readonly valueSelector?: (instanceValue: MaybePromise<T>) => T;
|
|
82
83
|
readonly validators?: readonly PropertyValidatorComponent[];
|
|
83
84
|
readonly maxLength?: number;
|
|
84
85
|
readonly minLength?: number;
|
|
@@ -87,8 +88,8 @@ declare type PropertyConfigContents = {
|
|
|
87
88
|
readonly autoNow?: boolean;
|
|
88
89
|
readonly fetcher?: ModelFetcher;
|
|
89
90
|
};
|
|
90
|
-
declare type ModelFetcher =
|
|
91
|
-
declare type PropertyConfig = (PropertyConfigContents & DefaultPropertyValidators) | undefined;
|
|
91
|
+
declare type ModelFetcher = (model: Model<any>, primaryKey: PrimaryKeyType) => Promise<ModelInstance<any> | ModelInstanceInputData<any> | null | undefined>;
|
|
92
|
+
declare type PropertyConfig<T extends Arrayable<FunctionalType>> = (PropertyConfigContents<T> & DefaultPropertyValidators) | undefined;
|
|
92
93
|
declare type PrimaryKeyPropertyInstanceType = PropertyInstance<string> | PropertyInstance<number>;
|
|
93
94
|
declare type PrimaryKeyType = string | number;
|
|
94
95
|
declare type ModelMethods<T extends FunctionalModel> = ValueIsOfType<T, ModelMethod | ModelMethodTyped<T>>;
|
|
@@ -102,16 +103,16 @@ declare type ModelDefinition<T extends FunctionalModel> = {
|
|
|
102
103
|
readonly modelMethods?: ModelMethods<T>;
|
|
103
104
|
readonly modelValidators?: readonly ModelComponentValidator[];
|
|
104
105
|
};
|
|
105
|
-
declare type ModelFactory = <T extends FunctionalModel>(modelName: string, modelDefinition: ModelDefinition<T>, options?: OptionalModelOptions) => Model<T>;
|
|
106
|
-
declare type CreateParams<T extends FunctionalModel> = (ModelInstanceInputData<T> & {
|
|
106
|
+
declare type ModelFactory = <T extends FunctionalModel>(modelName: string, modelDefinition: ModelDefinition<T>, options?: OptionalModelOptions<T>) => Model<T>;
|
|
107
|
+
declare type CreateParams<T extends FunctionalModel> = ModelInstanceInputData<T> | (ModelInstanceInputData<T> & {
|
|
107
108
|
readonly id?: PrimaryKeyType;
|
|
108
|
-
})
|
|
109
|
+
});
|
|
109
110
|
declare type Model<T extends FunctionalModel> = {
|
|
110
111
|
readonly getName: () => string;
|
|
111
112
|
readonly getPrimaryKeyName: () => string;
|
|
112
113
|
readonly getModelDefinition: () => ModelDefinition<T>;
|
|
113
114
|
readonly getPrimaryKey: (t: ModelInstanceInputData<T>) => PrimaryKeyType;
|
|
114
|
-
readonly getOptions: () => object & ModelOptions
|
|
115
|
+
readonly getOptions: () => object & ModelOptions<T>;
|
|
115
116
|
readonly create: (data: CreateParams<T>) => ModelInstance<T>;
|
|
116
117
|
readonly methods: ModelMethodGetters<T>;
|
|
117
118
|
};
|
|
@@ -140,12 +141,12 @@ declare type ModelMethodClient = (...args: readonly any[]) => any;
|
|
|
140
141
|
declare type ModelInstanceMethodTyped<T extends FunctionalModel> = (instance: ModelInstance<T>, args?: readonly any[]) => any;
|
|
141
142
|
declare type ModelInstanceMethod = ModelInstanceMethodTyped<any>;
|
|
142
143
|
declare type ModelInstanceMethodClient = (...args: readonly any[]) => any;
|
|
143
|
-
declare type ModelOptions = {
|
|
144
|
-
readonly instanceCreatedCallback: Nullable<Arrayable<(instance: ModelInstance<
|
|
144
|
+
declare type ModelOptions<T extends FunctionalModel> = {
|
|
145
|
+
readonly instanceCreatedCallback: Nullable<Arrayable<(instance: ModelInstance<T>) => void>>;
|
|
145
146
|
readonly [s: string]: any;
|
|
146
147
|
};
|
|
147
|
-
declare type OptionalModelOptions = {
|
|
148
|
-
readonly instanceCreatedCallback?: Nullable<Arrayable<(instance: ModelInstance<
|
|
148
|
+
declare type OptionalModelOptions<T extends FunctionalModel> = {
|
|
149
|
+
readonly instanceCreatedCallback?: Nullable<Arrayable<(instance: ModelInstance<T>) => void>>;
|
|
149
150
|
readonly [s: string]: any;
|
|
150
151
|
} | undefined;
|
|
151
|
-
export { MaybeFunction, Maybe, MaybePromise, Nullable, Arrayable, MaybeLazy, JsonAble, toObj, ModelInstance, Model, PropertyValidatorComponent, PropertyValidatorComponentSync, PropertyValidatorComponentAsync, PropertyValidatorComponentType, PropertyValidator, ModelComponentValidator, PropertyInstance, PropertyConfig, FunctionalType, ValueGetter, ReferenceValueType, ModelDefinition, ModelOptions, ModelMethod, OptionalModelOptions, ReferencePropertyInstance, PropertyGetters, PropertyValidators, PropertyValidatorComponentTypeAdvanced, ModelInstanceMethod, ModelInstanceMethodTyped, FunctionalModel, ModelInstanceInputData, ModelMethodTyped, ModelMethodGetters, InstanceMethodGetters, ReferenceFunctions, ModelErrors,
|
|
152
|
+
export { MaybeFunction, Maybe, MaybePromise, Nullable, Arrayable, MaybeLazy, JsonAble, toObj, ModelInstance, Model, PropertyValidatorComponent, PropertyValidatorComponentSync, PropertyValidatorComponentAsync, PropertyValidatorComponentType, PropertyValidator, ModelComponentValidator, PropertyInstance, PropertyConfig, FunctionalType, ValueGetter, ReferenceValueType, ModelDefinition, ModelOptions, ModelMethod, OptionalModelOptions, ReferencePropertyInstance, PropertyGetters, PropertyValidators, PropertyValidatorComponentTypeAdvanced, ModelInstanceMethod, ModelInstanceMethodTyped, FunctionalModel, ModelInstanceInputData, ModelMethodTyped, ModelMethodGetters, InstanceMethodGetters, ReferenceFunctions, ModelErrors, PrimaryKeyType, ModelFactory, ModelFetcher, CreateParams, ValidatorConfiguration, };
|
package/interfaces.js
CHANGED
package/interfaces.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;AAoVA,kCAAkC"}
|
package/models.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":";;;;;;AAAA,yDAAgC;AAChC,mDAA4C;AAC5C,6CAAmD;AACnD,6CAAuC;AAsBvC,MAAM,eAAe,GAAG,
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "functional-models",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.17",
|
|
4
4
|
"description": "A library for creating JavaScript function based models.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"test:coverage": "nyc npm run test",
|
|
10
10
|
"feature-tests": "./node_modules/.bin/cucumber-js -p default",
|
|
11
11
|
"coverage": "nyc --all --reporter=lcov npm test",
|
|
12
|
-
"dist": "tsc && cp package.json ./dist && cp README.md ./dist && cd dist && npm publish"
|
|
12
|
+
"dist": "tsc -p ./tsconfig.build.json && cp package.json ./dist && cp README.md ./dist && cd dist && npm publish"
|
|
13
13
|
},
|
|
14
14
|
"repository": {
|
|
15
15
|
"type": "git",
|
package/properties.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare const Property: <T extends Arrayable<FunctionalType>>(type: string, config?: PropertyConfig
|
|
3
|
-
declare const DateProperty: (config?: PropertyConfig
|
|
1
|
+
import { ModelInstance, Maybe, PrimaryKeyType, Model, PropertyInstance, FunctionalType, PropertyConfig, MaybeFunction, Arrayable, ReferencePropertyInstance, FunctionalModel, JsonAble } from './interfaces';
|
|
2
|
+
declare const Property: <T extends Arrayable<FunctionalType>>(type: string, config?: PropertyConfig<T>, additionalMetadata?: {}) => PropertyInstance<T>;
|
|
3
|
+
declare const DateProperty: (config?: PropertyConfig<Maybe<Date | string>>, additionalMetadata?: {}) => PropertyInstance<Maybe<string | Date>>;
|
|
4
4
|
declare const ArrayProperty: <T extends FunctionalType>(config?: {}, additionalMetadata?: {}) => PropertyInstance<readonly T[]>;
|
|
5
5
|
declare const ObjectProperty: (config?: {}, additionalMetadata?: {}) => PropertyInstance<{
|
|
6
6
|
readonly [s: string]: JsonAble;
|
|
7
7
|
}>;
|
|
8
|
-
declare const TextProperty: (config?: PropertyConfig
|
|
9
|
-
declare const IntegerProperty: (config?: PropertyConfig
|
|
10
|
-
declare const NumberProperty: (config?: PropertyConfig
|
|
11
|
-
declare const ConstantValueProperty: (value: string, config?: PropertyConfig
|
|
12
|
-
declare const EmailProperty: (config?: PropertyConfig
|
|
13
|
-
declare const BooleanProperty: (config?: PropertyConfig
|
|
14
|
-
declare const UniqueId: (config?: PropertyConfig
|
|
15
|
-
declare const ReferenceProperty: <T extends FunctionalModel>(model: MaybeFunction<Model<T>>, config?: PropertyConfig
|
|
8
|
+
declare const TextProperty: (config?: PropertyConfig<Maybe<string>>, additionalMetadata?: {}) => PropertyInstance<Maybe<string>>;
|
|
9
|
+
declare const IntegerProperty: (config?: PropertyConfig<Maybe<number>>, additionalMetadata?: {}) => PropertyInstance<Maybe<number>>;
|
|
10
|
+
declare const NumberProperty: (config?: PropertyConfig<Maybe<number>>, additionalMetadata?: {}) => PropertyInstance<Maybe<number>>;
|
|
11
|
+
declare const ConstantValueProperty: (value: string, config?: PropertyConfig<Maybe<string>>, additionalMetadata?: {}) => PropertyInstance<Maybe<string>>;
|
|
12
|
+
declare const EmailProperty: (config?: PropertyConfig<Maybe<string>>, additionalMetadata?: {}) => PropertyInstance<Maybe<string>>;
|
|
13
|
+
declare const BooleanProperty: (config?: PropertyConfig<Maybe<boolean>>, additionalMetadata?: {}) => PropertyInstance<Maybe<boolean>>;
|
|
14
|
+
declare const UniqueId: (config?: PropertyConfig<string>, additionalMetadata?: {}) => PropertyInstance<string>;
|
|
15
|
+
declare const ReferenceProperty: <T extends FunctionalModel>(model: MaybeFunction<Model<T>>, config?: PropertyConfig<Maybe<PrimaryKeyType> | T | ModelInstance<T>>, additionalMetadata?: {}) => ReferencePropertyInstance<T>;
|
|
16
16
|
export { Property, UniqueId, DateProperty, ArrayProperty, ReferenceProperty, IntegerProperty, TextProperty, ConstantValueProperty, NumberProperty, ObjectProperty, EmailProperty, BooleanProperty, };
|
package/properties.js
CHANGED
|
@@ -70,8 +70,8 @@ const Property = (type, config = {}, additionalMetadata = {}) => {
|
|
|
70
70
|
};
|
|
71
71
|
}, getValidator: valueGetter => {
|
|
72
72
|
const validator = (0, validation_1.createPropertyValidator)(valueGetter, config);
|
|
73
|
-
const _propertyValidatorWrapper = (instance, instanceData) => __awaiter(void 0, void 0, void 0, function* () {
|
|
74
|
-
return validator(instance, instanceData);
|
|
73
|
+
const _propertyValidatorWrapper = (instance, instanceData, propertyConfiguration) => __awaiter(void 0, void 0, void 0, function* () {
|
|
74
|
+
return validator(instance, instanceData, propertyConfiguration);
|
|
75
75
|
});
|
|
76
76
|
return _propertyValidatorWrapper;
|
|
77
77
|
} });
|
|
@@ -83,6 +83,9 @@ const DateProperty = (config = {}, additionalMetadata = {}) => Property(constant
|
|
|
83
83
|
if (!value && (config === null || config === void 0 ? void 0 : config.autoNow)) {
|
|
84
84
|
return new Date();
|
|
85
85
|
}
|
|
86
|
+
if (typeof value === 'string') {
|
|
87
|
+
return new Date(value);
|
|
88
|
+
}
|
|
86
89
|
return value;
|
|
87
90
|
},
|
|
88
91
|
}, config), additionalMetadata);
|
|
@@ -172,7 +175,7 @@ const ReferenceProperty = (model, config = {}, additionalMetadata = {}) => {
|
|
|
172
175
|
const lazyLoadMethod = (instanceValues) => __awaiter(void 0, void 0, void 0, function* () {
|
|
173
176
|
const valueIsModelInstance = instanceValues && instanceValues.getPrimaryKeyName;
|
|
174
177
|
const _getInstanceReturn = (objToUse) => {
|
|
175
|
-
// We need to determine if the object we just
|
|
178
|
+
// We need to determine if the object we just got is an actual model instance to determine if we need to make one.
|
|
176
179
|
const objIsModelInstance = instanceValues && instanceValues.getPrimaryKeyName;
|
|
177
180
|
const instance = objIsModelInstance
|
|
178
181
|
? objToUse
|
package/properties.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"properties.js","sourceRoot":"","sources":["../src/properties.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+DAAsC;AACtC,yDAAgC;AAChC,6CAUqB;AACrB,2CAA4C;AAC5C,iCAAkC;AAClC,mCAAoC;AAqBpC,MAAM,WAAW,GACf,wIAAwI,CAAA;AAE1I,SAAS,gCAAgC,CACvC,KAAoB;AACpB,0CAA0C;AAC1C,eAAqD;IAErD,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;QACxC,OAAO,SAAS,CAAA;KACjB;IACD,OAAO,2BAAc,CAAA;AACvB,CAAC;AAED,MAAM,gBAAgB,GAAG,CACvB,
|
|
1
|
+
{"version":3,"file":"properties.js","sourceRoot":"","sources":["../src/properties.ts"],"names":[],"mappings":"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"}
|
package/validation.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FunctionalModel, ModelInstance, Model, ModelComponentValidator, PropertyValidatorComponent, PropertyValidatorComponentType, PropertyValidatorComponentSync, PropertyValidatorComponentTypeAdvanced, PropertyValidator, PropertyConfig, MaybeFunction, PropertyValidators, ValueGetter, FunctionalType, ModelErrors } from './interfaces';
|
|
1
|
+
import { FunctionalModel, ModelInstance, Model, ModelComponentValidator, PropertyValidatorComponent, PropertyValidatorComponentType, PropertyValidatorComponentSync, PropertyValidatorComponentTypeAdvanced, PropertyValidator, PropertyConfig, MaybeFunction, PropertyValidators, ValueGetter, Arrayable, FunctionalType, ModelErrors, ValidatorConfiguration } from './interfaces';
|
|
2
2
|
declare const TYPE_PRIMITIVES: {
|
|
3
3
|
boolean: string;
|
|
4
4
|
string: string;
|
|
@@ -24,6 +24,6 @@ declare const minTextLength: (min: Number) => PropertyValidatorComponentType<str
|
|
|
24
24
|
declare const referenceTypeMatch: <TModel extends FunctionalModel>(referencedModel: MaybeFunction<Model<TModel>>) => PropertyValidatorComponentTypeAdvanced<ModelInstance<TModel>, TModel>;
|
|
25
25
|
declare const aggregateValidator: (value: any, methodOrMethods: PropertyValidatorComponent | readonly PropertyValidatorComponent[]) => PropertyValidator;
|
|
26
26
|
declare const emptyValidator: PropertyValidatorComponentSync;
|
|
27
|
-
declare const createPropertyValidator: (valueGetter: ValueGetter, config: PropertyConfig) => PropertyValidator;
|
|
28
|
-
declare const createModelValidator: (validators: PropertyValidators, modelValidators?: readonly ModelComponentValidator[] | undefined) => (instance: ModelInstance<any>,
|
|
27
|
+
declare const createPropertyValidator: <T extends Arrayable<FunctionalType>>(valueGetter: ValueGetter, config: PropertyConfig<T>) => PropertyValidator;
|
|
28
|
+
declare const createModelValidator: (validators: PropertyValidators, modelValidators?: readonly ModelComponentValidator[] | undefined) => (instance: ModelInstance<any>, propertyConfiguration: ValidatorConfiguration) => Promise<ModelErrors>;
|
|
29
29
|
export { isNumber, isBoolean, isString, isInteger, isType, isDate, isArray, isRequired, maxNumber, minNumber, choices, maxTextLength, minTextLength, meetsRegex, aggregateValidator, emptyValidator, createPropertyValidator, createModelValidator, arrayType, referenceTypeMatch, TYPE_PRIMITIVES, };
|
package/validation.js
CHANGED
|
@@ -197,9 +197,9 @@ const aggregateValidator = (value, methodOrMethods) => {
|
|
|
197
197
|
const toDo = Array.isArray(methodOrMethods)
|
|
198
198
|
? methodOrMethods
|
|
199
199
|
: [methodOrMethods];
|
|
200
|
-
const _aggregativeValidator = (instance, instanceData) => __awaiter(void 0, void 0, void 0, function* () {
|
|
200
|
+
const _aggregativeValidator = (instance, instanceData, propertyConfiguration) => __awaiter(void 0, void 0, void 0, function* () {
|
|
201
201
|
const values = yield Promise.all(toDo.map(method => {
|
|
202
|
-
return method(value, instance, instanceData);
|
|
202
|
+
return method(value, instance, instanceData, propertyConfiguration);
|
|
203
203
|
}));
|
|
204
204
|
return filterEmpty(values);
|
|
205
205
|
});
|
|
@@ -211,7 +211,7 @@ exports.emptyValidator = emptyValidator;
|
|
|
211
211
|
const _boolChoice = (method) => (configValue) => {
|
|
212
212
|
const func = method(configValue);
|
|
213
213
|
const validatorWrapper = (value, modelInstance, modelData) => {
|
|
214
|
-
return func(value, modelInstance, modelData);
|
|
214
|
+
return func(value, modelInstance, modelData, {});
|
|
215
215
|
};
|
|
216
216
|
return validatorWrapper;
|
|
217
217
|
};
|
|
@@ -228,7 +228,7 @@ const CONFIG_TO_VALIDATE_METHOD = {
|
|
|
228
228
|
choices: _boolChoice(choices),
|
|
229
229
|
};
|
|
230
230
|
const createPropertyValidator = (valueGetter, config) => {
|
|
231
|
-
const _propertyValidator = (instance, instanceData) => __awaiter(void 0, void 0, void 0, function* () {
|
|
231
|
+
const _propertyValidator = (instance, instanceData, propertyConfiguration) => __awaiter(void 0, void 0, void 0, function* () {
|
|
232
232
|
if (!config) {
|
|
233
233
|
config = {};
|
|
234
234
|
}
|
|
@@ -250,14 +250,14 @@ const createPropertyValidator = (valueGetter, config) => {
|
|
|
250
250
|
return [];
|
|
251
251
|
}
|
|
252
252
|
const validator = aggregateValidator(value, validators);
|
|
253
|
-
const errors = yield validator(instance, instanceData);
|
|
253
|
+
const errors = yield validator(instance, instanceData, propertyConfiguration);
|
|
254
254
|
return [...new Set((0, flatMap_1.default)(errors))];
|
|
255
255
|
});
|
|
256
256
|
return _propertyValidator;
|
|
257
257
|
};
|
|
258
258
|
exports.createPropertyValidator = createPropertyValidator;
|
|
259
259
|
const createModelValidator = (validators, modelValidators) => {
|
|
260
|
-
const _modelValidator = (instance,
|
|
260
|
+
const _modelValidator = (instance, propertyConfiguration) => __awaiter(void 0, void 0, void 0, function* () {
|
|
261
261
|
return Promise.resolve().then(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
262
262
|
if (!instance) {
|
|
263
263
|
throw new Error(`Instance cannot be empty`);
|
|
@@ -265,10 +265,13 @@ const createModelValidator = (validators, modelValidators) => {
|
|
|
265
265
|
const keysAndFunctions = Object.entries(validators);
|
|
266
266
|
const instanceData = yield instance.toObj();
|
|
267
267
|
const propertyValidationErrors = yield Promise.all(keysAndFunctions.map(([key, validator]) => __awaiter(void 0, void 0, void 0, function* () {
|
|
268
|
-
return [
|
|
268
|
+
return [
|
|
269
|
+
key,
|
|
270
|
+
yield validator(instance, instanceData, propertyConfiguration),
|
|
271
|
+
];
|
|
269
272
|
})));
|
|
270
273
|
const modelValidationErrors = (yield Promise.all(modelValidators
|
|
271
|
-
? modelValidators.map(validator => validator(instance, instanceData,
|
|
274
|
+
? modelValidators.map(validator => validator(instance, instanceData, propertyConfiguration))
|
|
272
275
|
: [])).filter(x => x);
|
|
273
276
|
const propertyErrors = propertyValidationErrors
|
|
274
277
|
.filter(([, errors]) => Boolean(errors) && errors.length > 0)
|
package/validation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAAoC;AACpC,yDAAgC;AAChC,6DAAoC;
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
|