pwi-plata-type 0.4.136 → 0.4.138

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.
Files changed (38) hide show
  1. package/__BUILD__/index.js +1 -1
  2. package/__BUILD__/index.js.map +1 -1
  3. package/__BUILD__/libs/models/index.js +21 -0
  4. package/__BUILD__/libs/models/index.js.map +1 -0
  5. package/__BUILD__/libs/models/model-template-env.js +48 -0
  6. package/__BUILD__/libs/models/model-template-env.js.map +1 -0
  7. package/__BUILD__/libs/models/model-template-union.js +50 -0
  8. package/__BUILD__/libs/models/model-template-union.js.map +1 -0
  9. package/__BUILD__/libs/models/model-template.js +88 -0
  10. package/__BUILD__/libs/models/model-template.js.map +1 -0
  11. package/__BUILD__/libs/models/model-union.js +1 -0
  12. package/__BUILD__/libs/models/model-union.js.map +1 -0
  13. package/__BUILD__/libs/models/model-validations.js.map +1 -0
  14. package/__BUILD__/libs/models/tools.js +114 -0
  15. package/__BUILD__/libs/models/tools.js.map +1 -0
  16. package/package.json +1 -1
  17. package/src/@types/exported.d.ts +1 -1
  18. package/src/@types/knex.d.ts +1 -1
  19. package/src/@types/model.d.ts +65 -7
  20. package/src/@types/sql.d.ts +3 -0
  21. package/src/bin/runtime/switch.ts +1 -1
  22. package/src/index.ts +1 -1
  23. package/src/libs/models/index.ts +4 -0
  24. package/src/libs/models/model-template-env.ts +58 -0
  25. package/src/libs/models/model-template-union.ts +55 -0
  26. package/src/libs/models/model-template.ts +104 -0
  27. package/src/libs/models/model-union.ts +0 -0
  28. package/src/libs/{model.ts → models/tools.ts} +31 -114
  29. package/src/libs/sql.ts +1 -1
  30. package/src/tests/model.env.test.ts +67 -0
  31. package/src/tests/model.test.ts +5 -3
  32. package/src/tests/model.union.test.ts +149 -0
  33. package/src/tests/sql.test.ts +1 -1
  34. package/__BUILD__/libs/model-validations.js.map +0 -1
  35. package/__BUILD__/libs/model.js +0 -200
  36. package/__BUILD__/libs/model.js.map +0 -1
  37. /package/__BUILD__/libs/{model-validations.js → models/model-validations.js} +0 -0
  38. /package/src/libs/{model-validations.ts → models/model-validations.ts} +0 -0
@@ -1,200 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.ModelTemplate = exports.Internals = void 0;
18
- var Internals;
19
- (function (Internals) {
20
- function hasValue(value) {
21
- if (value === null)
22
- return false;
23
- if (value === undefined)
24
- return false;
25
- return true;
26
- }
27
- Internals.hasValue = hasValue;
28
- function filterTemplate(value, template) {
29
- for (const param in template) {
30
- const t = template[param];
31
- if (t.length === undefined) {
32
- if (!Internals.hasValue(value[param])) {
33
- value[param] = Object.create(null);
34
- }
35
- value[param] = filterTemplate(value[param], t);
36
- continue;
37
- }
38
- if (typeof t[0] === 'function') {
39
- if (!Internals.hasValue(value[param])) {
40
- value[param] = null;
41
- }
42
- continue;
43
- }
44
- if (t[0].length !== undefined) {
45
- if (!Internals.hasValue(value[param])) {
46
- value[param] = [];
47
- }
48
- if (!Array.isArray(value[param])) {
49
- value[param] = [value[param]];
50
- }
51
- continue;
52
- }
53
- if (!Internals.hasValue(value[param])) {
54
- value[param] = [];
55
- continue;
56
- }
57
- if (!Array.isArray(value[param])) {
58
- if (typeof value[param] !== 'object') {
59
- value[param] = [];
60
- continue;
61
- }
62
- value[param] = [value[param]];
63
- }
64
- for (let i = 0; i < value[param].length; i++) {
65
- value[param][i] = filterTemplate(value[param][i], t[0]);
66
- }
67
- }
68
- return value;
69
- }
70
- Internals.filterTemplate = filterTemplate;
71
- async function validateParameter(value, pipeline, name) {
72
- for (const validation of pipeline) {
73
- const result = await validation(name, value);
74
- if (result.error !== undefined) {
75
- return result.error;
76
- }
77
- if (!result.continua) {
78
- break;
79
- }
80
- }
81
- return null;
82
- }
83
- Internals.validateParameter = validateParameter;
84
- async function validateTemplate(value, template, name) {
85
- const promises = [];
86
- for (const param in template) {
87
- const t = template[param];
88
- if (t.length === undefined) {
89
- promises.push(Plata.FastPromise(() => validateTemplate(value[param], t, `${name ?? ''}${param}.`)));
90
- continue;
91
- }
92
- if (typeof t[0] === 'function') {
93
- promises.push(Plata.FastPromise(() => validateParameter(value[param], t, `${name ?? ''}${param}`)));
94
- continue;
95
- }
96
- if (t[0].length !== undefined) {
97
- for (let i = 0; i < value[param].length; i++) {
98
- promises.push(Plata.FastPromise(() => validateParameter(value[param][i], t[0], `${name ?? ''}${param}[${i}]`)));
99
- }
100
- continue;
101
- }
102
- for (let i = 0; i < value[param].length; i++) {
103
- promises.push(Plata.FastPromise(() => validateTemplate(value[param][i], t[0], `${name ?? ''}${param}[${i}].`)));
104
- }
105
- }
106
- return Promise.all(promises).then(result => [].concat(...result).filter(v => v !== null), err => {
107
- return {
108
- errorID: 'BPLM0001',
109
- msg: `unexpected error while validating template (${name})`,
110
- error: err
111
- };
112
- });
113
- }
114
- Internals.validateTemplate = validateTemplate;
115
- })(Internals || (exports.Internals = Internals = {}));
116
- class ModelTemplate {
117
- template;
118
- converters;
119
- validations;
120
- filters;
121
- type;
122
- constructor(template, converters) {
123
- this.template = template;
124
- this.converters = converters;
125
- this.validations = new Map();
126
- this.filters = new Map();
127
- }
128
- addValidation(nome, callback) {
129
- this.validations.set(nome, callback);
130
- }
131
- addFilter(nome, callback) {
132
- this.filters.set(nome, callback);
133
- }
134
- convert = (value, to) => {
135
- const c = this.converters[to];
136
- if (c === undefined)
137
- return {
138
- errorID: 'BPLM0002',
139
- msg: 'Invalid Converter',
140
- error: to
141
- };
142
- try {
143
- return c(value);
144
- }
145
- catch (e) {
146
- return {
147
- errorID: 'BPLM0003',
148
- msg: 'Unexpected converter error',
149
- error: e
150
- };
151
- }
152
- };
153
- filter(value) {
154
- let v = Internals.filterTemplate(value, this.template);
155
- this.filters.forEach(f => {
156
- v = f(v);
157
- });
158
- return v;
159
- }
160
- async validate(value) {
161
- const v = this.filter(value);
162
- const errors = await Internals.validateTemplate(v, this.template);
163
- if (errors.errorID !== undefined) {
164
- return {
165
- value: v,
166
- errors: [errors]
167
- };
168
- }
169
- if (errors.length !== 0) {
170
- return {
171
- value: v,
172
- errors
173
- };
174
- }
175
- const promises = [];
176
- this.validations.forEach(validation => {
177
- promises.push(validation(v));
178
- });
179
- const result = await Plata.FastPromise(() => Promise.all(promises)).then(r => [].concat(...r).filter(v => v !== null), err => {
180
- return {
181
- errorID: 'BPLM0002',
182
- msg: `unexpected error while validating model`,
183
- error: err
184
- };
185
- });
186
- if (result.errorID !== undefined) {
187
- return {
188
- value: v,
189
- errors: [result]
190
- };
191
- }
192
- return {
193
- value: v,
194
- errors: result.length !== 0 ? result : undefined
195
- };
196
- }
197
- }
198
- exports.ModelTemplate = ModelTemplate;
199
- __exportStar(require("./model-validations"), exports);
200
- //# sourceMappingURL=model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/libs/model.ts"],"names":[],"mappings":"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"}