pwi-plata-type 0.4.149 → 0.4.151
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.
|
@@ -5,6 +5,7 @@ class ModelTemplateCombine {
|
|
|
5
5
|
type;
|
|
6
6
|
models;
|
|
7
7
|
validations;
|
|
8
|
+
filters;
|
|
8
9
|
constructor(models) {
|
|
9
10
|
this.models = models;
|
|
10
11
|
this.validations = new Set();
|
|
@@ -12,14 +13,25 @@ class ModelTemplateCombine {
|
|
|
12
13
|
addValidation(callback) {
|
|
13
14
|
this.validations.add(callback);
|
|
14
15
|
}
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
addFilters(callback) {
|
|
17
|
+
this.addFilters(callback);
|
|
18
|
+
}
|
|
19
|
+
filter(obj) {
|
|
20
|
+
let value = obj;
|
|
17
21
|
for (let i = 0; i < this.models.length; i++) {
|
|
18
22
|
const model = this.models[i];
|
|
19
23
|
if (model.filter !== undefined) {
|
|
20
|
-
|
|
24
|
+
value = model.filter(value);
|
|
21
25
|
}
|
|
22
26
|
}
|
|
27
|
+
this.filters.forEach(f => { value = f(value); });
|
|
28
|
+
return value;
|
|
29
|
+
}
|
|
30
|
+
async validate(obj, skipFilter) {
|
|
31
|
+
let v = obj;
|
|
32
|
+
if (!skipFilter) {
|
|
33
|
+
v = this.filter(v);
|
|
34
|
+
}
|
|
23
35
|
{
|
|
24
36
|
const promises = [];
|
|
25
37
|
for (let i = 0; i < this.models.length; i++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-template-combine.js","sourceRoot":"","sources":["../../../src/libs/models/model-template-combine.ts"],"names":[],"mappings":";;;AAAA,MAAa,oBAAoB;IACpB,IAAI,CAAyB;IAC7B,MAAM,CAAG;IACF,WAAW,CAAiE;
|
|
1
|
+
{"version":3,"file":"model-template-combine.js","sourceRoot":"","sources":["../../../src/libs/models/model-template-combine.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/@types/model.d.ts
CHANGED
|
@@ -108,7 +108,7 @@ declare namespace Model {
|
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
interface ModelClass {
|
|
111
|
-
readonly type:
|
|
111
|
+
readonly type: Record<string | number, any>
|
|
112
112
|
filter?: (value: any) => any
|
|
113
113
|
validate(value: any, skipFilter?: true): Promise<Model.ModelValidateReturnHelper<any, any>>
|
|
114
114
|
|
|
@@ -2,6 +2,7 @@ export class ModelTemplateCombine<const T extends readonly Model.ModelClass[]> {
|
|
|
2
2
|
readonly type: ArrayCombine<T>['type']
|
|
3
3
|
readonly models: T
|
|
4
4
|
public readonly validations: Set<(value: typeof this.type) => Promise<Model.ValidateReturn>>
|
|
5
|
+
public readonly filters: Set<(value: Model.RemoveTypesForFilter<typeof this.type>) => ArrayCombine<T>['type']>
|
|
5
6
|
|
|
6
7
|
constructor(models: T) {
|
|
7
8
|
this.models = models
|
|
@@ -12,16 +13,32 @@ export class ModelTemplateCombine<const T extends readonly Model.ModelClass[]> {
|
|
|
12
13
|
this.validations.add(callback)
|
|
13
14
|
}
|
|
14
15
|
|
|
15
|
-
public
|
|
16
|
-
|
|
16
|
+
public addFilters(callback: (value: Model.RemoveTypesForFilter<typeof this.type>) => Model.RemoveTypesForFilter<typeof this.type>) {
|
|
17
|
+
this.addFilters(callback)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
public filter(obj: any): any {
|
|
21
|
+
let value = obj
|
|
17
22
|
for (let i = 0; i < this.models.length; i++) {
|
|
18
23
|
const model = this.models[i]
|
|
19
24
|
|
|
20
25
|
if (model.filter !== undefined) {
|
|
21
|
-
|
|
26
|
+
value = model.filter(value)
|
|
22
27
|
}
|
|
23
28
|
}
|
|
24
29
|
|
|
30
|
+
this.filters.forEach(f => { value = f(value)})
|
|
31
|
+
|
|
32
|
+
return value
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public async validate(obj: any, skipFilter?: true): Promise<Model.ModelValidateReturnHelper<typeof this.type, undefined>> {
|
|
36
|
+
let v = obj
|
|
37
|
+
|
|
38
|
+
if (!skipFilter) {
|
|
39
|
+
v = this.filter(v)
|
|
40
|
+
}
|
|
41
|
+
|
|
25
42
|
{ // Valida as models
|
|
26
43
|
const promises: Promise<{ errors?: PlataError[] }>[] = []
|
|
27
44
|
|
|
@@ -46,7 +63,6 @@ export class ModelTemplateCombine<const T extends readonly Model.ModelClass[]> {
|
|
|
46
63
|
}
|
|
47
64
|
}
|
|
48
65
|
|
|
49
|
-
|
|
50
66
|
|
|
51
67
|
{ // Validacoes adicionais
|
|
52
68
|
const promises: Promise<Model.ValidateReturn>[] = []
|