functional-models 1.1.15 → 1.1.19

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 CHANGED
@@ -30,34 +30,40 @@ declare type FunctionalType = JsonAble | (() => FunctionalType) | Arrayable<unde
30
30
  }>;
31
31
  declare type ModelInstanceInputData<T extends FunctionalModel> = {
32
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;
33
36
  };
34
- declare type PropertyValidatorComponentTypeAdvanced<TValue, TModel extends FunctionalModel> = (value: TValue, instance: ModelInstance<TModel>, instanceData: FunctionalModel) => string | undefined;
35
- declare type PropertyValidatorComponentType<TValue> = (value: TValue, instance: ModelInstance<any>, instanceData: FunctionalModel) => string | undefined;
36
- declare type PropertyValidatorComponentSync = PropertyValidatorComponentType<any>;
37
- declare type PropertyValidatorComponentAsync = (value: Arrayable<FunctionalModel>, instance: ModelInstance<any>, instanceData: FunctionalModel) => Promise<string | undefined>;
38
- declare type PropertyValidatorComponent = PropertyValidatorComponentSync | PropertyValidatorComponentAsync;
39
- declare type PropertyValidator = (instance: ModelInstance<any>, instanceData: FunctionalModel) => Promise<ValidationErrors>;
40
- declare type ValidationError = string | undefined;
41
- declare type ValidationErrors = readonly ValidationError[];
42
- declare type ModelError = string;
43
- declare type ModelErrors = {
44
- readonly [s: string]: readonly ModelError[];
45
- };
46
- declare type ModelComponentValidator = (instance: ModelInstance<any>, instanceData: FunctionalModel, options?: object) => Promise<ValidationErrors>;
47
- declare type ValueGetter = () => MaybePromise<Arrayable<FunctionalType>> | MaybePromise<ModelInstance<any>>;
37
+ declare type ValidationErrorResponse = string | undefined;
38
+ declare type ValidationErrors = readonly string[];
39
+ declare type ModelError = string | undefined;
40
+ declare type ModelErrors<T extends FunctionalModel> = {
41
+ readonly [Property in keyof T as T[Property] extends ModelMethodTypes<T> ? never : Property]: readonly string[] | undefined;
42
+ } & {
43
+ readonly overall?: readonly string[] | undefined;
44
+ };
45
+ declare type PropertyValidatorComponentTypeAdvanced<TValue, TModel extends FunctionalModel> = (value: TValue, instance: ModelInstance<TModel>, instanceData: TModel | JsonAble, configurations: ValidatorConfiguration) => ValidationErrorResponse;
46
+ declare type PropertyValidatorComponentType<TValue> = (value: TValue, instance: ModelInstance<any>, instanceData: FunctionalModel | JsonAble, configurations: ValidatorConfiguration) => ValidationErrorResponse;
47
+ declare type PropertyValidatorComponentSync<T extends FunctionalModel> = PropertyValidatorComponentTypeAdvanced<any, T>;
48
+ declare type ValuePropertyValidatorComponent<T extends Arrayable<FunctionalType>> = (value: T) => ValidationErrorResponse;
49
+ declare type PropertyValidatorComponentAsync<T extends FunctionalModel> = (value: Arrayable<FunctionalType>, instance: ModelInstance<T>, instanceData: T | JsonAble, configurations: ValidatorConfiguration) => Promise<ValidationErrorResponse>;
50
+ declare type PropertyValidatorComponent<T extends FunctionalModel> = PropertyValidatorComponentSync<T> | PropertyValidatorComponentAsync<T>;
51
+ declare type PropertyValidator<T extends FunctionalModel> = (instance: ModelInstance<T>, instanceData: T | JsonAble, configurations: ValidatorConfiguration) => Promise<ValidationErrors>;
52
+ declare type ModelValidatorComponent<T extends FunctionalModel> = (instance: ModelInstance<T>, instanceData: T | JsonAble, configurations: ValidatorConfiguration) => Promise<ModelError>;
53
+ declare type ValueGetter<T extends Arrayable<FunctionalType>> = () => MaybePromise<T | ModelInstance<any>>;
48
54
  declare type PropertyInstance<T extends Arrayable<FunctionalType>> = {
49
55
  readonly getConfig: () => object;
50
56
  readonly getChoices: () => readonly VeryPrimitivesTypes[];
51
57
  readonly getDefaultValue: () => T;
52
58
  readonly getConstantValue: () => T;
53
59
  readonly getPropertyType: () => string;
54
- readonly createGetter: (value: T) => ValueGetter;
55
- readonly getValidator: (valueGetter: ValueGetter) => PropertyValidator;
60
+ readonly createGetter: (value: T) => ValueGetter<T>;
61
+ readonly getValidator: <TModel extends FunctionalModel>(valueGetter: ValueGetter<T>) => PropertyValidator<TModel>;
56
62
  };
57
63
  declare type PropertiesList<T> = {
58
64
  readonly [P in keyof T as T[P] extends Arrayable<FunctionalType> ? P : never]: PropertyInstance<any>;
59
65
  };
60
- interface ReferencePropertyInstance<T extends FunctionalModel> extends PropertyInstance<ModelInstance<T> | T | Maybe<PrimaryKeyType>> {
66
+ interface ReferencePropertyInstance<T extends FunctionalModel, TProperty extends Arrayable<FunctionalType>> extends PropertyInstance<TProperty> {
61
67
  readonly getReferencedId: (instanceValues: ReferenceValueType<T>) => Maybe<PrimaryKeyType>;
62
68
  readonly getReferencedModel: () => Model<T>;
63
69
  }
@@ -77,7 +83,7 @@ declare type PropertyConfigContents<T extends Arrayable<FunctionalType>> = {
77
83
  readonly choices?: readonly VeryPrimitivesTypes[];
78
84
  readonly lazyLoadMethod?: (value: T) => MaybeLazy<T>;
79
85
  readonly valueSelector?: (instanceValue: MaybePromise<T>) => T;
80
- readonly validators?: readonly PropertyValidatorComponent[];
86
+ readonly validators?: readonly PropertyValidatorComponent<any>[];
81
87
  readonly maxLength?: number;
82
88
  readonly minLength?: number;
83
89
  readonly maxValue?: number;
@@ -98,12 +104,12 @@ declare type ModelDefinition<T extends FunctionalModel> = {
98
104
  };
99
105
  readonly instanceMethods?: InstanceMethods<T>;
100
106
  readonly modelMethods?: ModelMethods<T>;
101
- readonly modelValidators?: readonly ModelComponentValidator[];
107
+ readonly modelValidators?: readonly ModelValidatorComponent<T>[];
102
108
  };
103
109
  declare type ModelFactory = <T extends FunctionalModel>(modelName: string, modelDefinition: ModelDefinition<T>, options?: OptionalModelOptions<T>) => Model<T>;
104
- declare type CreateParams<T extends FunctionalModel> = (ModelInstanceInputData<T> & {
110
+ declare type CreateParams<T extends FunctionalModel> = ModelInstanceInputData<T> | (ModelInstanceInputData<T> & {
105
111
  readonly id?: PrimaryKeyType;
106
- }) | ModelInstanceInputData<T>;
112
+ });
107
113
  declare type Model<T extends FunctionalModel> = {
108
114
  readonly getName: () => string;
109
115
  readonly getPrimaryKeyName: () => string;
@@ -116,8 +122,8 @@ declare type Model<T extends FunctionalModel> = {
116
122
  declare type ReferenceFunctions = {
117
123
  readonly [s: string]: () => ReferenceValueType<any>;
118
124
  };
119
- declare type PropertyValidators = {
120
- readonly [s: string]: PropertyValidator;
125
+ declare type PropertyValidators<T extends FunctionalModel> = {
126
+ readonly [s: string]: PropertyValidator<T>;
121
127
  };
122
128
  declare type ModelInstance<T extends FunctionalModel> = {
123
129
  readonly get: PropertyGetters<T> & {
@@ -128,10 +134,15 @@ declare type ModelInstance<T extends FunctionalModel> = {
128
134
  readonly toObj: toObj;
129
135
  readonly getPrimaryKeyName: () => string;
130
136
  readonly getPrimaryKey: () => PrimaryKeyType;
131
- readonly validators: PropertyValidators;
132
- readonly validate: (options?: {}) => Promise<ModelErrors>;
137
+ readonly validators: PropertyValidators<T>;
138
+ readonly validate: (options?: {}) => Promise<ModelErrors<T>>;
133
139
  readonly getModel: () => Model<T>;
134
140
  };
141
+ declare type ValueRequired<T extends FunctionalType | Arrayable<FunctionalType>> = NonNullable<T>;
142
+ declare type ValueOptional<T extends FunctionalType | Arrayable<FunctionalType>> = Maybe<T>;
143
+ declare type ValueOptionalR<T extends FunctionalModel> = ValueOptional<ReferenceValueType<T>>;
144
+ declare type ValueRequiredR<T extends FunctionalModel> = ValueRequired<ReferenceValueType<T>>;
145
+ declare type PropertyModifier<T extends Arrayable<FunctionalType>> = ValueRequired<T> | ValueOptional<T> | T;
135
146
  declare type ModelMethodTyped<T extends FunctionalModel> = (model: Model<T>, args?: readonly any[]) => any;
136
147
  declare type ModelMethod = ModelMethodTyped<any>;
137
148
  declare type ModelMethodClient = (...args: readonly any[]) => any;
@@ -146,4 +157,4 @@ declare type OptionalModelOptions<T extends FunctionalModel> = {
146
157
  readonly instanceCreatedCallback?: Nullable<Arrayable<(instance: ModelInstance<T>) => void>>;
147
158
  readonly [s: string]: any;
148
159
  } | undefined;
149
- 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, };
160
+ export { MaybeFunction, Maybe, MaybePromise, Nullable, Arrayable, MaybeLazy, JsonAble, toObj, ModelInstance, Model, PropertyValidatorComponent, PropertyValidatorComponentSync, PropertyValidatorComponentAsync, PropertyValidatorComponentType, PropertyValidator, ModelValidatorComponent, 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, ValuePropertyValidatorComponent, ValueRequired, ValueOptional, ValueOptionalR, ValueRequiredR, PropertyModifier, ValidationErrors, };
package/interfaces.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;AA+UA,kCAAkC"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;AAuXA,kCAAkC"}
package/models.js CHANGED
@@ -86,7 +86,9 @@ const BaseModel = (modelName, modelDefinition, options) => {
86
86
  const getModel = () => model;
87
87
  const toObj = (0, serialization_1.toJsonAble)(loadedInternals.get);
88
88
  const validate = (options = {}) => {
89
- return (0, validation_1.createModelValidator)(loadedInternals.validators, modelDefinition.modelValidators || [])(instance, options);
89
+ return Promise.resolve().then(() => {
90
+ return (0, validation_1.createModelValidator)(loadedInternals.validators, modelDefinition.modelValidators || [])(instance, options);
91
+ });
90
92
  };
91
93
  instance = (0, merge_1.default)(loadedInternals, {
92
94
  getModel,
package/models.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
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.15",
3
+ "version": "1.1.19",
4
4
  "description": "A library for creating JavaScript function based models.",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
package/properties.d.ts CHANGED
@@ -1,16 +1,16 @@
1
- import { ModelInstance, Maybe, PrimaryKeyType, Model, PropertyInstance, FunctionalType, PropertyConfig, MaybeFunction, Arrayable, ReferencePropertyInstance, FunctionalModel, JsonAble } from './interfaces';
1
+ import { ReferenceValueType, Model, PropertyInstance, FunctionalType, PropertyConfig, MaybeFunction, Arrayable, ReferencePropertyInstance, FunctionalModel, JsonAble, PropertyModifier } from './interfaces';
2
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>>;
3
+ declare const DateProperty: <TModifier extends PropertyModifier<string | Date>>(config?: PropertyConfig<TModifier>, additionalMetadata?: {}) => PropertyInstance<TModifier>;
4
4
  declare const ArrayProperty: <T extends FunctionalType>(config?: {}, additionalMetadata?: {}) => PropertyInstance<readonly T[]>;
5
- declare const ObjectProperty: (config?: {}, additionalMetadata?: {}) => PropertyInstance<{
5
+ declare const ObjectProperty: <TModifier extends PropertyModifier<{
6
6
  readonly [s: string]: JsonAble;
7
- }>;
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>;
7
+ }>>(config?: {}, additionalMetadata?: {}) => PropertyInstance<TModifier>;
8
+ declare const TextProperty: <TModifier extends PropertyModifier<string>>(config?: PropertyConfig<TModifier>, additionalMetadata?: {}) => PropertyInstance<TModifier>;
9
+ declare const IntegerProperty: <TModifier extends PropertyModifier<number>>(config?: PropertyConfig<TModifier>, additionalMetadata?: {}) => PropertyInstance<TModifier>;
10
+ declare const NumberProperty: <TModifier extends PropertyModifier<number>>(config?: PropertyConfig<TModifier>, additionalMetadata?: {}) => PropertyInstance<TModifier>;
11
+ declare const ConstantValueProperty: <TModifier extends PropertyModifier<Arrayable<FunctionalType>>>(value: TModifier, config?: PropertyConfig<TModifier>, additionalMetadata?: {}) => PropertyInstance<TModifier>;
12
+ declare const EmailProperty: <TModifier extends PropertyModifier<string>>(config?: PropertyConfig<TModifier>, additionalMetadata?: {}) => PropertyInstance<TModifier>;
13
+ declare const BooleanProperty: <TModifier extends PropertyModifier<boolean>>(config?: PropertyConfig<TModifier>, additionalMetadata?: {}) => PropertyInstance<TModifier>;
14
+ declare const UniqueId: <TModifier extends PropertyModifier<string>>(config?: PropertyConfig<TModifier>, additionalMetadata?: {}) => PropertyInstance<TModifier>;
15
+ declare const ReferenceProperty: <T extends FunctionalModel, TModifier extends PropertyModifier<ReferenceValueType<T>>>(model: MaybeFunction<Model<T>>, config?: PropertyConfig<TModifier>, additionalMetadata?: {}) => ReferencePropertyInstance<T, TModifier>;
16
16
  export { Property, UniqueId, DateProperty, ArrayProperty, ReferenceProperty, IntegerProperty, TextProperty, ConstantValueProperty, NumberProperty, ObjectProperty, EmailProperty, BooleanProperty, };
package/properties.js CHANGED
@@ -13,22 +13,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.BooleanProperty = exports.EmailProperty = exports.ObjectProperty = exports.NumberProperty = exports.ConstantValueProperty = exports.TextProperty = exports.IntegerProperty = exports.ReferenceProperty = exports.ArrayProperty = exports.DateProperty = exports.UniqueId = exports.Property = void 0;
16
- const identity_1 = __importDefault(require("lodash/identity"));
17
16
  const merge_1 = __importDefault(require("lodash/merge"));
18
17
  const validation_1 = require("./validation");
19
18
  const constants_1 = require("./constants");
20
19
  const lazy_1 = require("./lazy");
21
20
  const utils_1 = require("./utils");
22
21
  const EMAIL_REGEX = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/u;
23
- function _getValidatorFromConfigElseEmpty(input,
22
+ const _getValidatorFromConfigElseEmpty = (input,
24
23
  // eslint-disable-next-line no-unused-vars
25
- validatorGetter) {
24
+ validatorGetter) => {
26
25
  if (input !== undefined) {
27
26
  const validator = validatorGetter(input);
28
27
  return validator;
29
28
  }
30
29
  return validation_1.emptyValidator;
31
- }
30
+ };
32
31
  const _mergeValidators = (config, validators) => {
33
32
  return [...validators, ...((config === null || config === void 0 ? void 0 : config.validators) ? config.validators : [])];
34
33
  };
@@ -43,7 +42,7 @@ const Property = (type, config = {}, additionalMetadata = {}) => {
43
42
  const getDefaultValue = () => ((config === null || config === void 0 ? void 0 : config.defaultValue) !== undefined ? config.defaultValue : undefined);
44
43
  const getChoices = () => (config === null || config === void 0 ? void 0 : config.choices) || [];
45
44
  const lazyLoadMethod = (config === null || config === void 0 ? void 0 : config.lazyLoadMethod) || false;
46
- const valueSelector = (config === null || config === void 0 ? void 0 : config.valueSelector) || identity_1.default;
45
+ const valueSelector = (config === null || config === void 0 ? void 0 : config.valueSelector) || (x => x);
47
46
  if (typeof valueSelector !== 'function') {
48
47
  throw new Error(`valueSelector must be a function`);
49
48
  }
@@ -65,13 +64,15 @@ const Property = (type, config = {}, additionalMetadata = {}) => {
65
64
  : typeof instanceValue === 'function'
66
65
  ? instanceValue
67
66
  : () => instanceValue;
68
- return () => {
69
- return valueSelector(method(instanceValue));
67
+ const r = () => {
68
+ const result = method(instanceValue);
69
+ return valueSelector(result);
70
70
  };
71
- }, getValidator: valueGetter => {
71
+ return r;
72
+ }, getValidator: (valueGetter) => {
72
73
  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);
74
+ const _propertyValidatorWrapper = (instance, instanceData, propertyConfiguration) => __awaiter(void 0, void 0, void 0, function* () {
75
+ return validator(instance, instanceData, propertyConfiguration);
75
76
  });
76
77
  return _propertyValidatorWrapper;
77
78
  } });
@@ -120,8 +121,7 @@ const NumberProperty = (config = {}, additionalMetadata = {}) => Property(consta
120
121
  ]),
121
122
  }), additionalMetadata);
122
123
  exports.NumberProperty = NumberProperty;
123
- const ConstantValueProperty = (value, config = {}, additionalMetadata = {}) => TextProperty((0, merge_1.default)(config, {
124
- type: constants_1.PROPERTY_TYPES.ConstantValueProperty,
124
+ const ConstantValueProperty = (value, config = {}, additionalMetadata = {}) => Property(constants_1.PROPERTY_TYPES.ConstantValueProperty, (0, merge_1.default)(config, {
125
125
  value,
126
126
  }), additionalMetadata);
127
127
  exports.ConstantValueProperty = ConstantValueProperty;
@@ -177,6 +177,7 @@ const ReferenceProperty = (model, config = {}, additionalMetadata = {}) => {
177
177
  const _getInstanceReturn = (objToUse) => {
178
178
  // We need to determine if the object we just got is an actual model instance to determine if we need to make one.
179
179
  const objIsModelInstance = instanceValues && instanceValues.getPrimaryKeyName;
180
+ // @ts-ignore
180
181
  const instance = objIsModelInstance
181
182
  ? objToUse
182
183
  : _getModel().create(objToUse);
@@ -185,6 +186,7 @@ const ReferenceProperty = (model, config = {}, additionalMetadata = {}) => {
185
186
  toObj: _getId(instanceValues),
186
187
  });
187
188
  };
189
+ // @ts-ignore
188
190
  if (valueIsModelInstance) {
189
191
  return _getInstanceReturn(instanceValues);
190
192
  }
package/properties.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"properties.js","sourceRoot":"","sources":["../src/properties.ts"],"names":[],"mappings":"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"}
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, Arrayable, FunctionalType, ModelErrors } from './interfaces';
1
+ import { FunctionalModel, ModelInstance, Model, ModelValidatorComponent, PropertyValidatorComponent, PropertyValidatorComponentSync, PropertyValidatorComponentTypeAdvanced, JsonAble, PropertyValidator, PropertyConfig, MaybeFunction, PropertyValidators, ValueGetter, Arrayable, FunctionalType, ModelErrors, ValidatorConfiguration, ValuePropertyValidatorComponent, ValidationErrors } from './interfaces';
2
2
  declare const TYPE_PRIMITIVES: {
3
3
  boolean: string;
4
4
  string: string;
@@ -6,24 +6,24 @@ declare const TYPE_PRIMITIVES: {
6
6
  number: string;
7
7
  integer: string;
8
8
  };
9
- declare const isType: (type: string) => PropertyValidatorComponentSync;
10
- declare const isNumber: PropertyValidatorComponentSync;
11
- declare const isInteger: PropertyValidatorComponentSync;
12
- declare const isBoolean: PropertyValidatorComponentSync;
13
- declare const isString: PropertyValidatorComponentSync;
14
- declare const isArray: PropertyValidatorComponentSync;
15
- declare const arrayType: (type: string) => PropertyValidatorComponentSync;
16
- declare const meetsRegex: (regex: string | RegExp, flags?: string | undefined, errorMessage?: string) => PropertyValidatorComponentSync;
17
- declare const choices: (choiceArray: readonly FunctionalType[]) => PropertyValidatorComponentSync;
18
- declare const isDate: PropertyValidatorComponentType<Date>;
19
- declare const isRequired: PropertyValidatorComponentSync;
20
- declare const maxNumber: (max: Number) => PropertyValidatorComponentType<number>;
21
- declare const minNumber: (min: Number) => PropertyValidatorComponentType<number>;
22
- declare const maxTextLength: (max: Number) => PropertyValidatorComponentType<string>;
23
- declare const minTextLength: (min: Number) => PropertyValidatorComponentType<string>;
9
+ declare const isType: <T extends Arrayable<FunctionalType>>(type: string) => ValuePropertyValidatorComponent<T>;
10
+ declare const isNumber: ValuePropertyValidatorComponent<number>;
11
+ declare const isInteger: ValuePropertyValidatorComponent<number>;
12
+ declare const isBoolean: ValuePropertyValidatorComponent<boolean>;
13
+ declare const isString: ValuePropertyValidatorComponent<string>;
14
+ declare const isArray: ValuePropertyValidatorComponent<readonly FunctionalType[]>;
15
+ declare const arrayType: <T extends FunctionalType>(type: string) => ValuePropertyValidatorComponent<readonly T[]>;
16
+ declare const meetsRegex: <T extends FunctionalType>(regex: string | RegExp, flags?: string | undefined, errorMessage?: string) => ValuePropertyValidatorComponent<T>;
17
+ declare const choices: <T extends FunctionalType>(choiceArray: readonly T[]) => ValuePropertyValidatorComponent<T>;
18
+ declare const isDate: ValuePropertyValidatorComponent<Date>;
19
+ declare const isRequired: ValuePropertyValidatorComponent<any>;
20
+ declare const maxNumber: (max: Number) => ValuePropertyValidatorComponent<number>;
21
+ declare const minNumber: (min: Number) => ValuePropertyValidatorComponent<number>;
22
+ declare const maxTextLength: (max: Number) => ValuePropertyValidatorComponent<string>;
23
+ declare const minTextLength: (min: Number) => ValuePropertyValidatorComponent<string>;
24
24
  declare const referenceTypeMatch: <TModel extends FunctionalModel>(referencedModel: MaybeFunction<Model<TModel>>) => PropertyValidatorComponentTypeAdvanced<ModelInstance<TModel>, TModel>;
25
- declare const aggregateValidator: (value: any, methodOrMethods: PropertyValidatorComponent | readonly PropertyValidatorComponent[]) => PropertyValidator;
26
- declare const emptyValidator: PropertyValidatorComponentSync;
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>, options: object) => Promise<ModelErrors>;
25
+ declare const aggregateValidator: <T extends FunctionalModel>(value: any, methodOrMethods: PropertyValidatorComponent<T> | readonly PropertyValidatorComponent<T>[]) => PropertyValidator<T>;
26
+ declare const emptyValidator: PropertyValidatorComponentSync<any>;
27
+ declare const createPropertyValidator: <T extends Arrayable<FunctionalType>>(valueGetter: ValueGetter<T>, config: PropertyConfig<T>) => <TModel extends FunctionalModel>(instance: ModelInstance<TModel>, instanceData: JsonAble | TModel, propertyConfiguration: ValidatorConfiguration) => Promise<ValidationErrors>;
28
+ declare const createModelValidator: <T extends FunctionalModel>(validators: PropertyValidators<T>, modelValidators?: readonly ModelValidatorComponent<T>[] | undefined) => (instance: ModelInstance<T>, propertyConfiguration: ValidatorConfiguration) => Promise<ModelErrors<T>>;
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
  });
@@ -210,15 +210,15 @@ const emptyValidator = () => undefined;
210
210
  exports.emptyValidator = emptyValidator;
211
211
  const _boolChoice = (method) => (configValue) => {
212
212
  const func = method(configValue);
213
- const validatorWrapper = (value, modelInstance, modelData) => {
214
- return func(value, modelInstance, modelData);
213
+ const validatorWrapper = (value, modelInstance, modelData, configurations) => {
214
+ return func(value, modelInstance, modelData, configurations);
215
215
  };
216
216
  return validatorWrapper;
217
217
  };
218
218
  const simpleFuncWrap = (validator) => () => {
219
219
  return validator;
220
220
  };
221
- const CONFIG_TO_VALIDATE_METHOD = {
221
+ const CONFIG_TO_VALIDATE_METHOD = () => ({
222
222
  required: _boolChoice(simpleFuncWrap(isRequired)),
223
223
  isInteger: _boolChoice(simpleFuncWrap(isInteger)),
224
224
  isNumber: _boolChoice(simpleFuncWrap(isNumber)),
@@ -226,38 +226,41 @@ const CONFIG_TO_VALIDATE_METHOD = {
226
226
  isArray: _boolChoice(simpleFuncWrap(isArray)),
227
227
  isBoolean: _boolChoice(simpleFuncWrap(isBoolean)),
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* () {
232
- if (!config) {
233
- config = {};
234
- }
235
- const validators = [
236
- ...Object.entries(config).map(([key, value]) => {
237
- const method = CONFIG_TO_VALIDATE_METHOD[key];
238
- if (method) {
239
- return method(value);
240
- }
241
- return emptyValidator;
242
- }),
243
- ...(config.validators ? config.validators : []),
244
- ].filter(x => x);
245
- const value = yield valueGetter();
246
- const isRequiredValue = config.required
247
- ? true
248
- : validators.includes(isRequired);
249
- if (!value && !isRequiredValue) {
250
- return [];
251
- }
252
- const validator = aggregateValidator(value, validators);
253
- const errors = yield validator(instance, instanceData);
254
- return [...new Set((0, flatMap_1.default)(errors))];
231
+ const _propertyValidator = (instance, instanceData, propertyConfiguration) => __awaiter(void 0, void 0, void 0, function* () {
232
+ return Promise.resolve().then(() => __awaiter(void 0, void 0, void 0, function* () {
233
+ const configToValidateMethod = CONFIG_TO_VALIDATE_METHOD();
234
+ if (!config) {
235
+ config = {};
236
+ }
237
+ const validators = [
238
+ ...Object.entries(config).map(([key, value]) => {
239
+ const method = configToValidateMethod[key];
240
+ if (method) {
241
+ return method(value);
242
+ }
243
+ return emptyValidator;
244
+ }),
245
+ ...(config.validators ? config.validators : []),
246
+ ].filter(x => x);
247
+ const value = yield valueGetter();
248
+ const isRequiredValue = config.required
249
+ ? true
250
+ : validators.includes(isRequired);
251
+ if (!value && !isRequiredValue) {
252
+ return [];
253
+ }
254
+ const validator = aggregateValidator(value, validators);
255
+ const errors = yield validator(instance, instanceData, propertyConfiguration);
256
+ return [...new Set((0, flatMap_1.default)(errors))];
257
+ }));
255
258
  });
256
259
  return _propertyValidator;
257
260
  };
258
261
  exports.createPropertyValidator = createPropertyValidator;
259
262
  const createModelValidator = (validators, modelValidators) => {
260
- const _modelValidator = (instance, options) => __awaiter(void 0, void 0, void 0, function* () {
263
+ const _modelValidator = (instance, propertyConfiguration) => __awaiter(void 0, void 0, void 0, function* () {
261
264
  return Promise.resolve().then(() => __awaiter(void 0, void 0, void 0, function* () {
262
265
  if (!instance) {
263
266
  throw new Error(`Instance cannot be empty`);
@@ -265,10 +268,13 @@ const createModelValidator = (validators, modelValidators) => {
265
268
  const keysAndFunctions = Object.entries(validators);
266
269
  const instanceData = yield instance.toObj();
267
270
  const propertyValidationErrors = yield Promise.all(keysAndFunctions.map(([key, validator]) => __awaiter(void 0, void 0, void 0, function* () {
268
- return [key, yield validator(instance, instanceData)];
271
+ return [
272
+ key,
273
+ yield validator(instance, instanceData, propertyConfiguration),
274
+ ];
269
275
  })));
270
276
  const modelValidationErrors = (yield Promise.all(modelValidators
271
- ? modelValidators.map(validator => validator(instance, instanceData, options))
277
+ ? modelValidators.map(validator => validator(instance, instanceData, propertyConfiguration))
272
278
  : [])).filter(x => x);
273
279
  const propertyErrors = propertyValidationErrors
274
280
  .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":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}