thesimplevalidation 2.2.0 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Validation.d.ts
CHANGED
|
@@ -5,7 +5,12 @@ export declare class Validation<TModel extends {}> {
|
|
|
5
5
|
private originalModel;
|
|
6
6
|
private modelInfo;
|
|
7
7
|
private isDisabled;
|
|
8
|
-
constructor(originalModel: TModel
|
|
8
|
+
constructor(originalModel: TModel, modelInfo: {
|
|
9
|
+
[K in keyof TModel]?: {
|
|
10
|
+
validators?: Array<Validator<TModel, K>>;
|
|
11
|
+
key?: string;
|
|
12
|
+
};
|
|
13
|
+
});
|
|
9
14
|
disable: () => Validation<TModel>;
|
|
10
15
|
enable: () => Validation<TModel>;
|
|
11
16
|
getisEnabled: () => boolean;
|
package/dist/Validation.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import get from "lodash.get";
|
|
2
2
|
import isEqual from "lodash.isequal";
|
|
3
3
|
export class Validation {
|
|
4
|
-
constructor(originalModel) {
|
|
4
|
+
constructor(originalModel, modelInfo) {
|
|
5
5
|
this.isDisabled = false;
|
|
6
6
|
this.disable = () => {
|
|
7
7
|
this.isDisabled = true;
|
|
@@ -19,11 +19,14 @@ export class Validation {
|
|
|
19
19
|
return this;
|
|
20
20
|
};
|
|
21
21
|
this.useNoValidators = () => {
|
|
22
|
-
this.modelInfo
|
|
22
|
+
for (const field in this.modelInfo) {
|
|
23
|
+
delete this.modelInfo[field]?.validators;
|
|
24
|
+
}
|
|
23
25
|
return this;
|
|
24
26
|
};
|
|
25
27
|
this.useValidators = (key, ...validators) => {
|
|
26
28
|
this.modelInfo[key] = {
|
|
29
|
+
...this.modelInfo[key],
|
|
27
30
|
validators: validators,
|
|
28
31
|
};
|
|
29
32
|
return this;
|
|
@@ -31,6 +34,7 @@ export class Validation {
|
|
|
31
34
|
this.isPropertyDirty = (model, field, key = null) => {
|
|
32
35
|
if (this.isDisabled === true)
|
|
33
36
|
return false;
|
|
37
|
+
const fieldKey = key ?? this.modelInfo[field]?.key ?? null;
|
|
34
38
|
const originalField = this.originalModel[field];
|
|
35
39
|
const modelField = model[field];
|
|
36
40
|
if (Array.isArray(originalField) && Array.isArray(modelField)) {
|
|
@@ -39,16 +43,17 @@ export class Validation {
|
|
|
39
43
|
for (let index = 0; index < originalField.length; index++) {
|
|
40
44
|
if (originalField[index] === modelField[index])
|
|
41
45
|
continue;
|
|
42
|
-
if (
|
|
46
|
+
if (fieldKey == null)
|
|
43
47
|
return true;
|
|
44
|
-
if (get(originalField[index],
|
|
48
|
+
if (get(originalField[index], fieldKey) !==
|
|
49
|
+
get(modelField[index], fieldKey))
|
|
45
50
|
return true;
|
|
46
51
|
}
|
|
47
52
|
return false;
|
|
48
53
|
}
|
|
49
|
-
if (
|
|
54
|
+
if (fieldKey == null)
|
|
50
55
|
return !isEqual(this.originalModel[field], model[field]);
|
|
51
|
-
return get(this.originalModel[field],
|
|
56
|
+
return (get(this.originalModel[field], fieldKey) !== get(model[field], fieldKey));
|
|
52
57
|
};
|
|
53
58
|
this.getOriginalProperty = (field) => {
|
|
54
59
|
return this.originalModel[field];
|
|
@@ -107,7 +112,7 @@ export class Validation {
|
|
|
107
112
|
return result;
|
|
108
113
|
};
|
|
109
114
|
this.originalModel = structuredClone(originalModel);
|
|
110
|
-
this.modelInfo =
|
|
115
|
+
this.modelInfo = modelInfo;
|
|
111
116
|
}
|
|
112
117
|
}
|
|
113
118
|
//# sourceMappingURL=Validation.js.map
|
package/dist/Validation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Validation.js","sourceRoot":"","sources":["../src/Validation.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,YAAY,CAAC;AAC7B,OAAO,OAAO,MAAM,gBAAgB,CAAC;AAKrC,MAAM,OAAO,UAAU;
|
|
1
|
+
{"version":3,"file":"Validation.js","sourceRoot":"","sources":["../src/Validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@ export { SimpleValidator } from "./simple/SimpleValidator";
|
|
|
2
2
|
export type { SimpleValidatorSetup } from "./simple/SimpleValidatorSetup";
|
|
3
3
|
export { BooleanValidator } from "./boolean/BooleanValidator";
|
|
4
4
|
export type { BooleanValidatorSetup } from "./boolean/BooleanValidatorSetup";
|
|
5
|
+
export { EmailValidator } from "./email/EmailValidator";
|
|
6
|
+
export type { EmailValidatorSetup } from "./email/EmailValidatorSetup";
|
|
5
7
|
export { RequiredValidator } from "./required/RequiredValidator";
|
|
6
8
|
export { MinValidator } from "./min/MinValidator";
|
|
7
9
|
export type { MinValidatorSetup } from "./min/MinValidatorSetup";
|
package/dist/validators/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { SimpleValidator } from "./simple/SimpleValidator";
|
|
2
2
|
export { BooleanValidator } from "./boolean/BooleanValidator";
|
|
3
|
+
export { EmailValidator } from "./email/EmailValidator";
|
|
3
4
|
export { RequiredValidator } from "./required/RequiredValidator";
|
|
4
5
|
export { MinValidator } from "./min/MinValidator";
|
|
5
6
|
export { MaxValidator } from "./max/MaxValidator";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|