@mrnafisia/type-query 1.0.26 → 1.0.29
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/README.md +2 -2
- package/dist/U.d.ts +2 -2
- package/dist/U.js +27 -27
- package/dist/context.d.ts +5 -5
- package/dist/context.js +85 -85
- package/dist/dictionary.d.ts +12 -12
- package/dist/dictionary.js +173 -173
- package/dist/entity.d.ts +3306 -3306
- package/dist/entity.js +960 -960
- package/dist/error.d.ts +4 -4
- package/dist/error.js +6 -6
- package/dist/index.d.ts +32 -32
- package/dist/index.js +35 -35
- package/dist/model.d.ts +991 -991
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +355 -293
- package/dist/model.js.map +1 -1
- package/dist/pool.d.ts +5 -5
- package/dist/pool.d.ts.map +1 -1
- package/dist/pool.js +120 -120
- package/dist/pool.js.map +1 -1
- package/dist/schema.d.ts +25 -25
- package/dist/schema.js +395 -395
- package/dist/testUtil.d.ts +4 -4
- package/dist/testUtil.js +330 -330
- package/dist/types/context.d.ts +55 -55
- package/dist/types/context.js +2 -2
- package/dist/types/entity.d.ts +70 -70
- package/dist/types/entity.js +2 -2
- package/dist/types/json.d.ts +8 -8
- package/dist/types/json.js +2 -2
- package/dist/types/model.d.ts +23 -23
- package/dist/types/model.d.ts.map +1 -1
- package/dist/types/model.js +2 -2
- package/dist/types/pool.d.ts +18 -17
- package/dist/types/pool.d.ts.map +1 -1
- package/dist/types/pool.js +2 -2
- package/dist/types/postgres.d.ts +9 -9
- package/dist/types/postgres.js +2 -2
- package/dist/types/table.d.ts +234 -234
- package/dist/types/table.js +2 -2
- package/dist/types/testUtil.d.ts +26 -26
- package/dist/types/testUtil.js +2 -2
- package/dist/utils.d.ts +67 -67
- package/dist/utils.js +216 -216
- package/package.json +39 -39
package/dist/model.js
CHANGED
|
@@ -1,294 +1,356 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.createModelUtils = void 0;
|
|
18
|
-
var decimal_js_1 = __importDefault(require("decimal.js"));
|
|
19
|
-
var never_catch_1 = require("never-catch");
|
|
20
|
-
var parseBoolean = function (v) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
var
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
return
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
return
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
var
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
case '
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
case 'character
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
case '
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
}
|
|
293
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.createModelUtils = void 0;
|
|
18
|
+
var decimal_js_1 = __importDefault(require("decimal.js"));
|
|
19
|
+
var never_catch_1 = require("never-catch");
|
|
20
|
+
var parseBoolean = function (v) {
|
|
21
|
+
switch (typeof v) {
|
|
22
|
+
case 'boolean':
|
|
23
|
+
return v;
|
|
24
|
+
case 'string':
|
|
25
|
+
switch (v) {
|
|
26
|
+
case 'true':
|
|
27
|
+
return true;
|
|
28
|
+
case 'false':
|
|
29
|
+
return false;
|
|
30
|
+
default:
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
default:
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
var parseNumber = function (v) {
|
|
38
|
+
switch (typeof v) {
|
|
39
|
+
case 'number':
|
|
40
|
+
return v;
|
|
41
|
+
case 'string':
|
|
42
|
+
var _v = Number(v);
|
|
43
|
+
return Number.isNaN(_v) ? undefined : _v;
|
|
44
|
+
default:
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
var parseBigInt = function (v) {
|
|
49
|
+
switch (typeof v) {
|
|
50
|
+
case 'bigint':
|
|
51
|
+
return v;
|
|
52
|
+
case 'number':
|
|
53
|
+
return BigInt(v);
|
|
54
|
+
case 'string':
|
|
55
|
+
try {
|
|
56
|
+
return BigInt(v);
|
|
57
|
+
}
|
|
58
|
+
catch (_) {
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
default:
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
var parseDecimal = function (v) {
|
|
66
|
+
if (v instanceof decimal_js_1.default) {
|
|
67
|
+
return v;
|
|
68
|
+
}
|
|
69
|
+
switch (typeof v) {
|
|
70
|
+
case 'number':
|
|
71
|
+
return new decimal_js_1.default(v);
|
|
72
|
+
case 'string':
|
|
73
|
+
try {
|
|
74
|
+
return new decimal_js_1.default(v);
|
|
75
|
+
}
|
|
76
|
+
catch (_) {
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
default:
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
var parseString = function (v) {
|
|
84
|
+
switch (typeof v) {
|
|
85
|
+
case 'boolean':
|
|
86
|
+
case 'number':
|
|
87
|
+
case 'bigint':
|
|
88
|
+
return v.toString();
|
|
89
|
+
case 'string':
|
|
90
|
+
return v;
|
|
91
|
+
default:
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
var parseDate = function (v) {
|
|
96
|
+
switch (typeof v) {
|
|
97
|
+
case 'number':
|
|
98
|
+
case 'string':
|
|
99
|
+
var _v = new Date(v);
|
|
100
|
+
return _v.toString() === 'Invalid Date' ? undefined : _v;
|
|
101
|
+
default:
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
var parseJSON = function (v) {
|
|
106
|
+
if (typeof v !== 'string') {
|
|
107
|
+
return undefined;
|
|
108
|
+
}
|
|
109
|
+
var _v;
|
|
110
|
+
try {
|
|
111
|
+
_v = JSON.parse(v);
|
|
112
|
+
}
|
|
113
|
+
catch (_) {
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
116
|
+
if (typeof _v !== 'object' || _v === null) {
|
|
117
|
+
return undefined;
|
|
118
|
+
}
|
|
119
|
+
return _v;
|
|
120
|
+
};
|
|
121
|
+
var validateNumberGenerator = function (_a) {
|
|
122
|
+
var min = _a.min, max = _a.max;
|
|
123
|
+
if (min === undefined) {
|
|
124
|
+
if (max === undefined) {
|
|
125
|
+
return function () { return true; };
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
return function (v) { return v <= max; };
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
if (max === undefined) {
|
|
133
|
+
return function (v) { return min <= v; };
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
return function (v) { return min <= v && v <= max; };
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
var validateDecimalGenerator = function (_a) {
|
|
141
|
+
var min = _a.min, max = _a.max;
|
|
142
|
+
if (min === undefined) {
|
|
143
|
+
if (max === undefined) {
|
|
144
|
+
return function () { return true; };
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
return function (v) { return v.comparedTo(max) >= 0; };
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
if (max === undefined) {
|
|
152
|
+
return function (v) { return 0 >= v.comparedTo(min); };
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
return function (v) { return 0 >= v.comparedTo(min) && v.comparedTo(max) >= 0; };
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
var validateSmallInt = validateNumberGenerator({ min: 0, max: 32767 });
|
|
160
|
+
var validateInteger = validateNumberGenerator({ min: 0, max: 2147483647 });
|
|
161
|
+
var validateBigInt = validateNumberGenerator({ min: 0, max: BigInt('9223372036854775807') });
|
|
162
|
+
var validateStringGenerator = function (_a) {
|
|
163
|
+
var regex = _a.regex, min = _a.min, max = _a.max;
|
|
164
|
+
if (regex === undefined) {
|
|
165
|
+
if (min === undefined) {
|
|
166
|
+
if (max === undefined) {
|
|
167
|
+
return function () { return true; };
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
return function (v) { return v.length <= max; };
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
if (max === undefined) {
|
|
175
|
+
return function (v) { return min <= v.length; };
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
return function (v) { return min <= v.length && v.length <= max; };
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
if (min === undefined) {
|
|
184
|
+
if (max === undefined) {
|
|
185
|
+
return function (v) { return regex.test(v); };
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
return function (v) { return regex.test(v) && v.length <= max; };
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
if (max === undefined) {
|
|
193
|
+
return function (v) { return regex.test(v) && min <= v.length; };
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
return function (v) { return regex.test(v) && min <= v.length && v.length <= max; };
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
var createModelUtils = function (columns, custom) {
|
|
202
|
+
var columnsParseAndValidate = Object.fromEntries(Object.entries(columns).map(function (_a) {
|
|
203
|
+
var _b, _c;
|
|
204
|
+
var key = _a[0], val = _a[1];
|
|
205
|
+
var parseFun = (_b = custom === null || custom === void 0 ? void 0 : custom.parse) === null || _b === void 0 ? void 0 : _b[key];
|
|
206
|
+
if (parseFun === undefined) {
|
|
207
|
+
switch (val.type) {
|
|
208
|
+
case 'boolean':
|
|
209
|
+
parseFun = parseBoolean;
|
|
210
|
+
break;
|
|
211
|
+
case 'smallint':
|
|
212
|
+
case 'integer':
|
|
213
|
+
case 'real':
|
|
214
|
+
case 'double precision':
|
|
215
|
+
parseFun = parseNumber;
|
|
216
|
+
break;
|
|
217
|
+
case 'bigint':
|
|
218
|
+
parseFun = parseBigInt;
|
|
219
|
+
break;
|
|
220
|
+
case 'numeric':
|
|
221
|
+
parseFun = parseDecimal;
|
|
222
|
+
break;
|
|
223
|
+
case 'character':
|
|
224
|
+
case 'character varying':
|
|
225
|
+
case 'text':
|
|
226
|
+
case 'uuid':
|
|
227
|
+
parseFun = parseString;
|
|
228
|
+
break;
|
|
229
|
+
case 'date':
|
|
230
|
+
case 'timestamp without time zone':
|
|
231
|
+
case 'timestamp with time zone':
|
|
232
|
+
parseFun = parseDate;
|
|
233
|
+
break;
|
|
234
|
+
case 'json':
|
|
235
|
+
case 'jsonb':
|
|
236
|
+
parseFun = parseJSON;
|
|
237
|
+
break;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
var validateFun = (_c = custom === null || custom === void 0 ? void 0 : custom.validate) === null || _c === void 0 ? void 0 : _c[key];
|
|
241
|
+
if (validateFun === undefined) {
|
|
242
|
+
switch (val.type) {
|
|
243
|
+
case 'smallint':
|
|
244
|
+
if (val.min !== undefined || val.max !== undefined) {
|
|
245
|
+
validateFun = validateNumberGenerator({ min: val.min, max: val.max });
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
validateFun = validateSmallInt;
|
|
249
|
+
}
|
|
250
|
+
break;
|
|
251
|
+
case 'integer':
|
|
252
|
+
if (val.min !== undefined || val.max !== undefined) {
|
|
253
|
+
validateFun = validateNumberGenerator({ min: val.min, max: val.max });
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
validateFun = validateInteger;
|
|
257
|
+
}
|
|
258
|
+
break;
|
|
259
|
+
case 'bigint':
|
|
260
|
+
if (val.min !== undefined || val.max !== undefined) {
|
|
261
|
+
validateFun = validateNumberGenerator({ min: val.min, max: val.max });
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
validateFun = validateBigInt;
|
|
265
|
+
}
|
|
266
|
+
break;
|
|
267
|
+
case 'real':
|
|
268
|
+
case 'double precision':
|
|
269
|
+
if (val.min !== undefined || val.max !== undefined) {
|
|
270
|
+
validateFun = validateNumberGenerator({ min: val.min, max: val.max });
|
|
271
|
+
}
|
|
272
|
+
else {
|
|
273
|
+
validateFun = function () { return true; };
|
|
274
|
+
}
|
|
275
|
+
break;
|
|
276
|
+
case 'numeric':
|
|
277
|
+
if (val.min !== undefined || val.max !== undefined) {
|
|
278
|
+
validateFun = validateDecimalGenerator({ min: val.min, max: val.max });
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
validateFun = function () { return true; };
|
|
282
|
+
}
|
|
283
|
+
break;
|
|
284
|
+
case 'character':
|
|
285
|
+
case 'character varying':
|
|
286
|
+
if (val.minLength !== undefined || val.maxLength !== undefined || val.regex !== undefined) {
|
|
287
|
+
validateFun = validateStringGenerator({
|
|
288
|
+
regex: val.regex,
|
|
289
|
+
min: val.minLength,
|
|
290
|
+
max: val.maxLength
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
else {
|
|
294
|
+
validateFun = function () { return true; };
|
|
295
|
+
}
|
|
296
|
+
break;
|
|
297
|
+
case 'boolean':
|
|
298
|
+
case 'text':
|
|
299
|
+
case 'uuid':
|
|
300
|
+
case 'date':
|
|
301
|
+
case 'timestamp without time zone':
|
|
302
|
+
case 'timestamp with time zone':
|
|
303
|
+
case 'json':
|
|
304
|
+
case 'jsonb':
|
|
305
|
+
validateFun = function () { return true; };
|
|
306
|
+
break;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
var parseWithValidate = function (v, validate) {
|
|
310
|
+
if (validate === void 0) { validate = false; }
|
|
311
|
+
var parsedValue = parseFun(v);
|
|
312
|
+
if (validate && parsedValue !== undefined && !validateFun(parsedValue)) {
|
|
313
|
+
return undefined;
|
|
314
|
+
}
|
|
315
|
+
return parsedValue;
|
|
316
|
+
};
|
|
317
|
+
return [key, { Parse: parseWithValidate, Validate: validateFun }];
|
|
318
|
+
}));
|
|
319
|
+
return __assign({ Parse: function (data, requires, optionals, validate) {
|
|
320
|
+
if (validate === void 0) { validate = false; }
|
|
321
|
+
var result = {};
|
|
322
|
+
var require;
|
|
323
|
+
for (var _i = 0, requires_1 = requires; _i < requires_1.length; _i++) {
|
|
324
|
+
require = requires_1[_i];
|
|
325
|
+
if (data[require] === undefined) {
|
|
326
|
+
return (0, never_catch_1.err)(require);
|
|
327
|
+
}
|
|
328
|
+
if (validate && !columnsParseAndValidate[require].Validate(data[require])) {
|
|
329
|
+
return (0, never_catch_1.err)(require);
|
|
330
|
+
}
|
|
331
|
+
result[require] = columnsParseAndValidate[require].Parse(data[require]);
|
|
332
|
+
}
|
|
333
|
+
var optional;
|
|
334
|
+
for (var _a = 0, optionals_1 = optionals; _a < optionals_1.length; _a++) {
|
|
335
|
+
optional = optionals_1[_a];
|
|
336
|
+
if (data[optional] === undefined) {
|
|
337
|
+
continue;
|
|
338
|
+
}
|
|
339
|
+
if (validate && !columnsParseAndValidate[optional].Validate(data[optional])) {
|
|
340
|
+
return (0, never_catch_1.err)(optional);
|
|
341
|
+
}
|
|
342
|
+
result[optional] = columnsParseAndValidate[optional].Parse(data[optional]);
|
|
343
|
+
}
|
|
344
|
+
return (0, never_catch_1.ok)(result);
|
|
345
|
+
}, Validate: function (data) {
|
|
346
|
+
var dataKey;
|
|
347
|
+
for (dataKey in data) {
|
|
348
|
+
if (!columnsParseAndValidate[dataKey].Validate(data[dataKey])) {
|
|
349
|
+
return (0, never_catch_1.err)(dataKey);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
return (0, never_catch_1.ok)(undefined);
|
|
353
|
+
} }, columnsParseAndValidate);
|
|
354
|
+
};
|
|
355
|
+
exports.createModelUtils = createModelUtils;
|
|
294
356
|
//# sourceMappingURL=model.js.map
|