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
- async validate(obj) {
16
- let v = obj;
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
- v = model.filter(v);
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;IAE5F,YAAY,MAAS;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAA;IAChC,CAAC;IAEM,aAAa,CAAC,QAAoE;QACrF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAClC,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,GAAQ;QAC1B,IAAI,CAAC,GAAG,GAAG,CAAA;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YAE5B,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;gBAC5B,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;aACtB;SACJ;QAED;YACI,MAAM,QAAQ,GAAyC,EAAE,CAAA;YAEzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACzC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAE7B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;aAClE;YAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAE3C,MAAM,MAAM,GAAG,OAAO;iBACjB,MAAM,CAAC,CAAC,CAAC,EAAiC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC;iBACpE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAC1B;YAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,OAAO;oBACH,KAAK,EAAE,SAAS;oBAChB,MAAM;iBACT,CAAA;aACJ;SACJ;QAID;YACI,MAAM,QAAQ,GAAoC,EAAE,CAAA;YAEpD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAC1B,QAAQ,CAAC,IAAI,CACT,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CACjC,CACJ,CAAA;YAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAE1C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAErC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,OAAQ;oBACJ,MAAM;oBACN,KAAK,EAAE,SAAS;iBACnB,CAAA;aACJ;SACJ;QAED,OAAO;YACH,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,SAAS;SACpB,CAAA;IACL,CAAC;CACJ;AA5ED,oDA4EC"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pwi-plata-type",
3
- "version": "0.4.149",
3
+ "version": "0.4.151",
4
4
  "main": "__BUILD__/index",
5
5
  "types": "src/@types/exported.d.ts",
6
6
  "bin": {
@@ -108,7 +108,7 @@ declare namespace Model {
108
108
  }
109
109
 
110
110
  interface ModelClass {
111
- readonly type: unknown
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 async validate(obj: any): Promise<Model.ModelValidateReturnHelper<typeof this.type, undefined>> {
16
- let v = obj
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
- v = model.filter(v)
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>[] = []