@snowtop/ent 0.1.0-alpha10 → 0.1.0-alpha101
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/action/action.d.ts +37 -31
- package/action/action.js +22 -7
- package/action/executor.d.ts +3 -3
- package/action/executor.js +8 -3
- package/action/experimental_action.d.ts +32 -22
- package/action/experimental_action.js +35 -9
- package/action/index.d.ts +2 -0
- package/action/index.js +7 -1
- package/action/orchestrator.d.ts +40 -16
- package/action/orchestrator.js +230 -62
- package/action/privacy.d.ts +2 -2
- package/action/relative_value.d.ts +47 -0
- package/action/relative_value.js +125 -0
- package/action/transaction.d.ts +10 -0
- package/action/transaction.js +23 -0
- package/auth/auth.d.ts +1 -1
- package/core/base.d.ts +49 -26
- package/core/base.js +7 -1
- package/core/clause.d.ts +88 -7
- package/core/clause.js +355 -63
- package/core/config.d.ts +12 -1
- package/core/config.js +7 -1
- package/core/context.d.ts +5 -3
- package/core/context.js +20 -2
- package/core/convert.d.ts +1 -1
- package/core/date.js +1 -5
- package/core/db.d.ts +11 -8
- package/core/db.js +20 -8
- package/core/ent.d.ts +81 -25
- package/core/ent.js +636 -193
- package/core/loaders/assoc_count_loader.d.ts +3 -2
- package/core/loaders/assoc_count_loader.js +10 -2
- package/core/loaders/assoc_edge_loader.d.ts +2 -2
- package/core/loaders/assoc_edge_loader.js +8 -11
- package/core/loaders/index.d.ts +1 -1
- package/core/loaders/index.js +1 -3
- package/core/loaders/index_loader.d.ts +2 -2
- package/core/loaders/loader.js +5 -5
- package/core/loaders/object_loader.d.ts +6 -5
- package/core/loaders/object_loader.js +67 -59
- package/core/loaders/query_loader.d.ts +6 -12
- package/core/loaders/query_loader.js +52 -11
- package/core/loaders/raw_count_loader.d.ts +2 -2
- package/core/loaders/raw_count_loader.js +5 -1
- package/core/logger.d.ts +1 -1
- package/core/logger.js +1 -0
- package/core/privacy.d.ts +25 -24
- package/core/privacy.js +21 -25
- package/core/query/assoc_query.d.ts +7 -6
- package/core/query/assoc_query.js +9 -1
- package/core/query/custom_clause_query.d.ts +26 -0
- package/core/query/custom_clause_query.js +78 -0
- package/core/query/custom_query.d.ts +20 -5
- package/core/query/custom_query.js +87 -12
- package/core/query/index.d.ts +1 -0
- package/core/query/index.js +3 -1
- package/core/query/query.d.ts +8 -4
- package/core/query/query.js +101 -53
- package/core/query/shared_assoc_test.d.ts +2 -1
- package/core/query/shared_assoc_test.js +35 -45
- package/core/query/shared_test.d.ts +8 -1
- package/core/query/shared_test.js +469 -236
- package/core/viewer.d.ts +3 -3
- package/core/viewer.js +1 -1
- package/graphql/graphql.d.ts +14 -7
- package/graphql/graphql.js +23 -7
- package/graphql/index.d.ts +0 -1
- package/graphql/index.js +1 -4
- package/graphql/query/connection_type.d.ts +9 -9
- package/graphql/query/edge_connection.d.ts +9 -9
- package/graphql/query/page_info.d.ts +1 -1
- package/graphql/query/shared_assoc_test.js +1 -1
- package/graphql/query/shared_edge_connection.js +1 -19
- package/imports/index.d.ts +6 -1
- package/imports/index.js +19 -4
- package/index.d.ts +12 -5
- package/index.js +20 -7
- package/package.json +17 -16
- package/parse_schema/parse.d.ts +29 -9
- package/parse_schema/parse.js +118 -11
- package/schema/base_schema.d.ts +5 -3
- package/schema/base_schema.js +5 -0
- package/schema/field.d.ts +74 -20
- package/schema/field.js +174 -69
- package/schema/index.d.ts +2 -2
- package/schema/index.js +5 -1
- package/schema/json_field.d.ts +13 -1
- package/schema/json_field.js +28 -1
- package/schema/schema.d.ts +81 -18
- package/schema/schema.js +24 -17
- package/schema/struct_field.d.ts +11 -1
- package/schema/struct_field.js +57 -21
- package/scripts/custom_compiler.js +10 -6
- package/scripts/custom_graphql.js +117 -30
- package/scripts/{transform_code.d.ts → migrate_v0.1.d.ts} +0 -0
- package/scripts/migrate_v0.1.js +36 -0
- package/scripts/{transform_schema.d.ts → move_types.d.ts} +0 -0
- package/scripts/move_types.js +117 -0
- package/scripts/read_schema.js +20 -5
- package/testutils/action/complex_schemas.d.ts +69 -0
- package/testutils/action/complex_schemas.js +398 -0
- package/testutils/builder.d.ts +46 -47
- package/testutils/builder.js +108 -65
- package/testutils/db/fixture.d.ts +10 -0
- package/testutils/db/fixture.js +26 -0
- package/testutils/db/{test_db.d.ts → temp_db.d.ts} +24 -8
- package/testutils/db/{test_db.js → temp_db.js} +179 -44
- package/testutils/db/value.d.ts +7 -0
- package/testutils/db/value.js +251 -0
- package/testutils/db_mock.d.ts +16 -4
- package/testutils/db_mock.js +51 -6
- package/testutils/db_time_zone.d.ts +4 -0
- package/testutils/db_time_zone.js +41 -0
- package/testutils/ent-graphql-tests/index.d.ts +7 -1
- package/testutils/ent-graphql-tests/index.js +27 -8
- package/testutils/fake_data/const.d.ts +2 -1
- package/testutils/fake_data/const.js +3 -0
- package/testutils/fake_data/fake_contact.d.ts +7 -3
- package/testutils/fake_data/fake_contact.js +15 -8
- package/testutils/fake_data/fake_event.d.ts +5 -2
- package/testutils/fake_data/fake_event.js +9 -7
- package/testutils/fake_data/fake_tag.d.ts +36 -0
- package/testutils/fake_data/fake_tag.js +89 -0
- package/testutils/fake_data/fake_user.d.ts +7 -4
- package/testutils/fake_data/fake_user.js +18 -16
- package/testutils/fake_data/index.js +5 -1
- package/testutils/fake_data/internal.d.ts +2 -0
- package/testutils/fake_data/internal.js +7 -1
- package/testutils/fake_data/tag_query.d.ts +13 -0
- package/testutils/fake_data/tag_query.js +43 -0
- package/testutils/fake_data/test_helpers.d.ts +11 -4
- package/testutils/fake_data/test_helpers.js +28 -12
- package/testutils/fake_data/user_query.d.ts +13 -6
- package/testutils/fake_data/user_query.js +54 -22
- package/testutils/fake_log.d.ts +3 -3
- package/testutils/parse_sql.d.ts +6 -0
- package/testutils/parse_sql.js +16 -2
- package/testutils/test_edge_global_schema.d.ts +15 -0
- package/testutils/test_edge_global_schema.js +62 -0
- package/testutils/write.d.ts +2 -2
- package/testutils/write.js +33 -7
- package/tsc/ast.d.ts +26 -2
- package/tsc/ast.js +163 -17
- package/tsc/compilerOptions.d.ts +2 -1
- package/tsc/compilerOptions.js +11 -2
- package/tsc/move_generated.d.ts +1 -0
- package/tsc/move_generated.js +164 -0
- package/tsc/transform.d.ts +22 -0
- package/tsc/transform.js +181 -0
- package/tsc/transform_action.d.ts +22 -0
- package/tsc/transform_action.js +183 -0
- package/tsc/transform_ent.d.ts +17 -0
- package/tsc/transform_ent.js +59 -0
- package/tsc/transform_schema.d.ts +27 -0
- package/{scripts → tsc}/transform_schema.js +145 -119
- package/graphql/enums.d.ts +0 -3
- package/graphql/enums.js +0 -25
- package/scripts/transform_code.js +0 -114
package/parse_schema/parse.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseSchema = void 0;
|
|
4
|
-
|
|
4
|
+
const cosmiconfig_1 = require("cosmiconfig");
|
|
5
|
+
async function processFields(src, patternName) {
|
|
5
6
|
const ret = [];
|
|
6
7
|
let m = {};
|
|
7
8
|
if (Array.isArray(src)) {
|
|
@@ -36,6 +37,19 @@ function processFields(src, patternName) {
|
|
|
36
37
|
else {
|
|
37
38
|
delete f.polymorphic;
|
|
38
39
|
}
|
|
40
|
+
if (field.private) {
|
|
41
|
+
// convert boolean into object
|
|
42
|
+
// we keep boolean as an option to keep API simple
|
|
43
|
+
if (typeof field.private === "boolean") {
|
|
44
|
+
f.private = {};
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
f.private = field.private;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
delete f.private;
|
|
52
|
+
}
|
|
39
53
|
// convert string to object to make API consumed by go simple
|
|
40
54
|
if (f.fieldEdge && f.fieldEdge.inverseEdge) {
|
|
41
55
|
if (typeof f.fieldEdge.inverseEdge === "string") {
|
|
@@ -47,26 +61,48 @@ function processFields(src, patternName) {
|
|
|
47
61
|
if (patternName) {
|
|
48
62
|
f.patternName = patternName;
|
|
49
63
|
}
|
|
64
|
+
if (field.serverDefault !== undefined) {
|
|
65
|
+
f.serverDefault = await transformServerDefault(name, field, field.serverDefault);
|
|
66
|
+
}
|
|
50
67
|
transformType(field.type);
|
|
51
68
|
if (field.getDerivedFields) {
|
|
52
|
-
f.derivedFields = processFields(field.getDerivedFields(name));
|
|
69
|
+
f.derivedFields = await processFields(field.getDerivedFields(name));
|
|
53
70
|
}
|
|
54
71
|
if (field.type.subFields) {
|
|
55
|
-
f.type.subFields = processFields(field.type.subFields);
|
|
72
|
+
f.type.subFields = await processFields(field.type.subFields);
|
|
56
73
|
}
|
|
57
74
|
if (field.type.unionFields) {
|
|
58
|
-
f.type.unionFields = processFields(field.type.unionFields);
|
|
75
|
+
f.type.unionFields = await processFields(field.type.unionFields);
|
|
59
76
|
}
|
|
60
77
|
if (field.type.listElemType &&
|
|
61
78
|
field.type.listElemType.subFields &&
|
|
62
79
|
// check to avoid ts-ignore below. exists just for tsc
|
|
63
80
|
f.type.listElemType) {
|
|
64
|
-
f.type.listElemType.subFields = processFields(field.type.listElemType.subFields);
|
|
81
|
+
f.type.listElemType.subFields = await processFields(field.type.listElemType.subFields);
|
|
65
82
|
}
|
|
66
83
|
ret.push(f);
|
|
67
84
|
}
|
|
68
85
|
return ret;
|
|
69
86
|
}
|
|
87
|
+
async function transformServerDefault(name, f, value) {
|
|
88
|
+
if (f.valid) {
|
|
89
|
+
if (!(await f.valid(value))) {
|
|
90
|
+
throw new Error(`invalid value ${value} passed to field ${name}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (f.format) {
|
|
94
|
+
value = await f.format(value);
|
|
95
|
+
}
|
|
96
|
+
switch (typeof value) {
|
|
97
|
+
case "boolean":
|
|
98
|
+
case "number":
|
|
99
|
+
case "bigint":
|
|
100
|
+
case "string":
|
|
101
|
+
return `${value}`;
|
|
102
|
+
default:
|
|
103
|
+
throw new Error(`invalid value ${value} passed to field ${name}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
70
106
|
function transformImportType(typ) {
|
|
71
107
|
if (!typ.importType) {
|
|
72
108
|
return;
|
|
@@ -108,12 +144,12 @@ function processEdgeGroups(processedSchema, edgeGroups) {
|
|
|
108
144
|
processedSchema.assocEdgeGroups.push(group2);
|
|
109
145
|
}
|
|
110
146
|
}
|
|
111
|
-
function processPattern(patterns, pattern, processedSchema) {
|
|
147
|
+
async function processPattern(patterns, pattern, processedSchema) {
|
|
112
148
|
let ret = {
|
|
113
149
|
...pattern,
|
|
114
150
|
};
|
|
115
151
|
const name = pattern.name;
|
|
116
|
-
const fields = processFields(pattern.fields, pattern.name);
|
|
152
|
+
const fields = await processFields(pattern.fields, pattern.name);
|
|
117
153
|
processedSchema.fields.push(...fields);
|
|
118
154
|
if (pattern.edges) {
|
|
119
155
|
const edges = processEdges(pattern.edges, pattern.name);
|
|
@@ -130,6 +166,7 @@ function processPattern(patterns, pattern, processedSchema) {
|
|
|
130
166
|
name: pattern.name,
|
|
131
167
|
assocEdges: edges,
|
|
132
168
|
fields: fields,
|
|
169
|
+
disableMixin: pattern.disableMixin,
|
|
133
170
|
};
|
|
134
171
|
}
|
|
135
172
|
else {
|
|
@@ -171,9 +208,13 @@ function processAction(action) {
|
|
|
171
208
|
ret.actionOnlyFields = actionOnlyFields;
|
|
172
209
|
return ret;
|
|
173
210
|
}
|
|
174
|
-
function parseSchema(potentialSchemas) {
|
|
211
|
+
async function parseSchema(potentialSchemas, globalSchema) {
|
|
175
212
|
let schemas = {};
|
|
176
213
|
let patterns = {};
|
|
214
|
+
let parsedGlobalSchema;
|
|
215
|
+
if (globalSchema) {
|
|
216
|
+
parsedGlobalSchema = await parseGlobalSchema(globalSchema);
|
|
217
|
+
}
|
|
177
218
|
for (const key in potentialSchemas) {
|
|
178
219
|
const value = potentialSchemas[key];
|
|
179
220
|
let schema;
|
|
@@ -189,6 +230,7 @@ function parseSchema(potentialSchemas) {
|
|
|
189
230
|
}
|
|
190
231
|
let processedSchema = {
|
|
191
232
|
fields: [],
|
|
233
|
+
fieldOverrides: schema.fieldOverrides,
|
|
192
234
|
schemaPath: schema.schemaPath,
|
|
193
235
|
tableName: schema.tableName,
|
|
194
236
|
enumTable: schema.enumTable,
|
|
@@ -202,9 +244,11 @@ function parseSchema(potentialSchemas) {
|
|
|
202
244
|
};
|
|
203
245
|
// let's put patterns first just so we have id, created_at, updated_at first
|
|
204
246
|
// ¯\_(ツ)_/¯
|
|
247
|
+
let patternNames = [];
|
|
205
248
|
if (schema.patterns) {
|
|
206
249
|
for (const pattern of schema.patterns) {
|
|
207
|
-
const ret = processPattern(patterns, pattern, processedSchema);
|
|
250
|
+
const ret = await processPattern(patterns, pattern, processedSchema);
|
|
251
|
+
patternNames.push(pattern.name);
|
|
208
252
|
if (ret.transformsSelect) {
|
|
209
253
|
if (processedSchema.transformsSelect) {
|
|
210
254
|
throw new Error(`can only have one pattern which transforms default querying behavior`);
|
|
@@ -219,8 +263,9 @@ function parseSchema(potentialSchemas) {
|
|
|
219
263
|
}
|
|
220
264
|
}
|
|
221
265
|
}
|
|
222
|
-
const fields = processFields(schema.fields);
|
|
266
|
+
const fields = await processFields(schema.fields);
|
|
223
267
|
processedSchema.fields.push(...fields);
|
|
268
|
+
processedSchema.patternNames = patternNames;
|
|
224
269
|
if (schema.edges) {
|
|
225
270
|
const edges = processEdges(schema.edges);
|
|
226
271
|
processedSchema.assocEdges.push(...edges);
|
|
@@ -230,6 +275,68 @@ function parseSchema(potentialSchemas) {
|
|
|
230
275
|
}
|
|
231
276
|
schemas[key] = processedSchema;
|
|
232
277
|
}
|
|
233
|
-
|
|
278
|
+
const rome = translatePrettier();
|
|
279
|
+
return {
|
|
280
|
+
schemas,
|
|
281
|
+
patterns,
|
|
282
|
+
globalSchema: parsedGlobalSchema,
|
|
283
|
+
config: {
|
|
284
|
+
rome,
|
|
285
|
+
},
|
|
286
|
+
};
|
|
234
287
|
}
|
|
235
288
|
exports.parseSchema = parseSchema;
|
|
289
|
+
function translatePrettier() {
|
|
290
|
+
const r = (0, cosmiconfig_1.cosmiconfigSync)("prettier").search();
|
|
291
|
+
if (!r) {
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
const ret = {};
|
|
295
|
+
if (r.config.printWidth !== undefined) {
|
|
296
|
+
ret.lineWidth = parseInt(r.config.printWidth);
|
|
297
|
+
}
|
|
298
|
+
if (r.config.useTabs) {
|
|
299
|
+
ret.indentStyle = "tab";
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
ret.indentStyle = "space";
|
|
303
|
+
}
|
|
304
|
+
if (r.config.tabWidth !== undefined) {
|
|
305
|
+
ret.indentSize = parseInt(r.config.tabWidth);
|
|
306
|
+
}
|
|
307
|
+
if (r.config.singleQuote) {
|
|
308
|
+
ret.quoteStyle = "single";
|
|
309
|
+
}
|
|
310
|
+
else {
|
|
311
|
+
ret.quoteStyle = "double";
|
|
312
|
+
}
|
|
313
|
+
if (r.config.quoteProps !== undefined) {
|
|
314
|
+
if (r.config.quoteProps === "consistent") {
|
|
315
|
+
// rome doesn't support this
|
|
316
|
+
ret.quoteProperties = "as-needed";
|
|
317
|
+
}
|
|
318
|
+
else {
|
|
319
|
+
ret.quoteProperties = r.config.quoteProps;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
if (r.config.trailingComma !== undefined) {
|
|
323
|
+
ret.trailingComma = r.config.trailingComma;
|
|
324
|
+
}
|
|
325
|
+
return ret;
|
|
326
|
+
}
|
|
327
|
+
async function parseGlobalSchema(s) {
|
|
328
|
+
const ret = {
|
|
329
|
+
globalEdges: [],
|
|
330
|
+
extraEdgeFields: [],
|
|
331
|
+
initForEdges: !!s.extraEdgeFields ||
|
|
332
|
+
s.transformEdgeRead !== undefined ||
|
|
333
|
+
s.transformEdgeWrite !== undefined,
|
|
334
|
+
};
|
|
335
|
+
if (s.extraEdgeFields) {
|
|
336
|
+
ret.extraEdgeFields = await processFields(s.extraEdgeFields);
|
|
337
|
+
}
|
|
338
|
+
if (s.edges) {
|
|
339
|
+
ret.globalEdges = processEdges(s.edges);
|
|
340
|
+
}
|
|
341
|
+
return ret;
|
|
342
|
+
}
|
package/schema/base_schema.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FieldMap, Pattern, FieldOverrideMap } from "./schema";
|
|
2
2
|
import { Action, AssocEdgeGroup, Constraint, Edge, Index, Schema } from ".";
|
|
3
3
|
export declare const Timestamps: Pattern;
|
|
4
4
|
export declare const Node: Pattern;
|
|
5
5
|
export interface SchemaConfig extends Schema {
|
|
6
6
|
}
|
|
7
7
|
export declare class EntSchema implements Schema {
|
|
8
|
-
fields: FieldMap
|
|
8
|
+
fields: FieldMap;
|
|
9
|
+
fieldOverrides: FieldOverrideMap | undefined;
|
|
9
10
|
tableName: string | undefined;
|
|
10
11
|
patterns: Pattern[];
|
|
11
12
|
edges: Edge[] | undefined;
|
|
@@ -21,7 +22,8 @@ export declare class EntSchema implements Schema {
|
|
|
21
22
|
constructor(cfg: SchemaConfig);
|
|
22
23
|
}
|
|
23
24
|
export declare class EntSchemaWithTZ implements Schema {
|
|
24
|
-
fields: FieldMap
|
|
25
|
+
fields: FieldMap;
|
|
26
|
+
fieldOverrides: FieldOverrideMap | undefined;
|
|
25
27
|
tableName: string | undefined;
|
|
26
28
|
patterns: Pattern[];
|
|
27
29
|
edges: Edge[] | undefined;
|
package/schema/base_schema.js
CHANGED
|
@@ -66,6 +66,7 @@ let nodeFieldsWithTZ = {
|
|
|
66
66
|
exports.Node = {
|
|
67
67
|
name: "node",
|
|
68
68
|
fields: nodeFields,
|
|
69
|
+
disableMixin: true,
|
|
69
70
|
};
|
|
70
71
|
// Ent schema. has Node Pattern by default.
|
|
71
72
|
// exists just to have less typing and easier for clients to implement
|
|
@@ -73,6 +74,7 @@ class EntSchema {
|
|
|
73
74
|
constructor(cfg) {
|
|
74
75
|
this.patterns = [exports.Node];
|
|
75
76
|
this.fields = cfg.fields;
|
|
77
|
+
this.fieldOverrides = cfg.fieldOverrides;
|
|
76
78
|
this.tableName = cfg.tableName;
|
|
77
79
|
if (cfg.patterns) {
|
|
78
80
|
this.patterns.push(...cfg.patterns);
|
|
@@ -95,9 +97,11 @@ class EntSchemaWithTZ {
|
|
|
95
97
|
// default schema added
|
|
96
98
|
name: "nodeWithTZ",
|
|
97
99
|
fields: nodeFieldsWithTZ,
|
|
100
|
+
disableMixin: true,
|
|
98
101
|
},
|
|
99
102
|
];
|
|
100
103
|
this.fields = cfg.fields;
|
|
104
|
+
this.fieldOverrides = cfg.fieldOverrides;
|
|
101
105
|
this.tableName = cfg.tableName;
|
|
102
106
|
if (cfg.patterns) {
|
|
103
107
|
this.patterns.push(...cfg.patterns);
|
|
@@ -131,6 +135,7 @@ class BaseEntSchemaWithTZ {
|
|
|
131
135
|
// default schema added
|
|
132
136
|
name: "nodeWithTZ",
|
|
133
137
|
fields: nodeFieldsWithTZ,
|
|
138
|
+
disableMixin: true,
|
|
134
139
|
},
|
|
135
140
|
];
|
|
136
141
|
}
|
package/schema/field.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Builder } from "../action/action";
|
|
1
2
|
import { Field, FieldMap, FieldOptions, ForeignKey, PolymorphicOptions, Type } from "./schema";
|
|
2
3
|
export declare abstract class BaseField {
|
|
3
4
|
name: string;
|
|
@@ -24,31 +25,36 @@ export declare class UUIDField extends BaseField implements Field {
|
|
|
24
25
|
valid(val: any): Promise<boolean>;
|
|
25
26
|
}
|
|
26
27
|
export declare function UUIDType(options?: FieldOptions): UUIDField;
|
|
27
|
-
export interface IntegerOptions extends
|
|
28
|
-
min?: number;
|
|
29
|
-
max?: number;
|
|
28
|
+
export interface IntegerOptions extends NumberOptions<number> {
|
|
30
29
|
}
|
|
31
|
-
export
|
|
30
|
+
export interface NumberOptions<T> extends FieldOptions {
|
|
31
|
+
min?: T;
|
|
32
|
+
max?: T;
|
|
33
|
+
}
|
|
34
|
+
export declare class NumberField<T> extends BaseField {
|
|
32
35
|
type: Type;
|
|
33
36
|
private validators;
|
|
34
37
|
private options;
|
|
35
|
-
constructor(options?:
|
|
36
|
-
getOptions():
|
|
38
|
+
constructor(options?: NumberOptions<T>);
|
|
39
|
+
getOptions(): NumberOptions<T>;
|
|
37
40
|
private handleOptions;
|
|
38
|
-
min(l:
|
|
39
|
-
max(l:
|
|
41
|
+
min(l: T): this;
|
|
42
|
+
max(l: T): this;
|
|
40
43
|
valid(val: any): boolean;
|
|
41
44
|
validate(validator: (str: number) => boolean): this;
|
|
42
45
|
}
|
|
46
|
+
export declare class IntegerField extends NumberField<number> implements Field {
|
|
47
|
+
type: Type;
|
|
48
|
+
}
|
|
43
49
|
export declare function IntegerType(options?: IntegerOptions): IntegerField;
|
|
44
|
-
export declare class BigIntegerField extends
|
|
50
|
+
export declare class BigIntegerField extends NumberField<BigInt> implements Field {
|
|
45
51
|
type: Type;
|
|
46
52
|
}
|
|
47
|
-
export declare function BigIntegerType(options
|
|
48
|
-
export declare class FloatField extends
|
|
53
|
+
export declare function BigIntegerType(options?: NumberOptions<BigInt>): BigIntegerField;
|
|
54
|
+
export declare class FloatField extends NumberField<number> implements Field {
|
|
49
55
|
type: Type;
|
|
50
56
|
}
|
|
51
|
-
export declare function FloatType(options?:
|
|
57
|
+
export declare function FloatType(options?: NumberOptions<number>): FloatField;
|
|
52
58
|
export declare class BooleanField extends BaseField implements Field {
|
|
53
59
|
type: Type;
|
|
54
60
|
}
|
|
@@ -88,6 +94,18 @@ export declare class StringField extends BaseField implements Field {
|
|
|
88
94
|
trimLeft(): this;
|
|
89
95
|
trimRight(): this;
|
|
90
96
|
}
|
|
97
|
+
interface PolymorphicStringOptions extends StringOptions {
|
|
98
|
+
parentFieldToValidate: string;
|
|
99
|
+
types?: string[];
|
|
100
|
+
}
|
|
101
|
+
export declare class PolymorphicStringField extends StringField {
|
|
102
|
+
private opts;
|
|
103
|
+
private camelCaseVals;
|
|
104
|
+
constructor(opts: PolymorphicStringOptions);
|
|
105
|
+
validateWithFullData(val: any, b: Builder<any>): boolean;
|
|
106
|
+
valid(val: any): boolean;
|
|
107
|
+
format(val: any): any;
|
|
108
|
+
}
|
|
91
109
|
export declare function StringType(options?: StringOptions): StringField;
|
|
92
110
|
export interface TimestampOptions extends FieldOptions {
|
|
93
111
|
withTimezone?: boolean;
|
|
@@ -118,31 +136,66 @@ export declare class DateField extends BaseField implements Field {
|
|
|
118
136
|
format(val: any): any;
|
|
119
137
|
}
|
|
120
138
|
export declare function DateType(options?: FieldOptions): DateField;
|
|
121
|
-
declare type
|
|
139
|
+
declare type StringEnumMap = {
|
|
122
140
|
[key: string]: string;
|
|
123
141
|
};
|
|
142
|
+
/**
|
|
143
|
+
* @deprecated use StringEnumOptions
|
|
144
|
+
*/
|
|
124
145
|
export interface EnumOptions extends FieldOptions {
|
|
125
146
|
values?: string[];
|
|
126
|
-
map?:
|
|
147
|
+
map?: StringEnumMap;
|
|
127
148
|
tsType?: string;
|
|
128
149
|
graphQLType?: string;
|
|
129
150
|
createEnumType?: boolean;
|
|
151
|
+
disableUnknownType?: boolean;
|
|
130
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* @deprecated Use StringEnumField
|
|
155
|
+
*/
|
|
131
156
|
export declare class EnumField extends BaseField implements Field {
|
|
132
157
|
type: Type;
|
|
133
158
|
private values?;
|
|
134
159
|
private map?;
|
|
135
|
-
constructor(options:
|
|
136
|
-
|
|
160
|
+
constructor(options: StringEnumOptions);
|
|
161
|
+
valid(val: any): boolean;
|
|
162
|
+
format(val: any): any;
|
|
163
|
+
}
|
|
164
|
+
export declare class StringEnumField extends EnumField {
|
|
165
|
+
}
|
|
166
|
+
export interface PolymorphicStringEnumOptions extends EnumOptions {
|
|
167
|
+
parentFieldToValidate: string;
|
|
168
|
+
}
|
|
169
|
+
export interface StringEnumOptions extends EnumOptions {
|
|
170
|
+
}
|
|
171
|
+
export declare function EnumType(options: StringEnumOptions): EnumField;
|
|
172
|
+
declare type IntEnumMap = {
|
|
173
|
+
[key: string]: number;
|
|
174
|
+
};
|
|
175
|
+
export interface IntegerEnumOptions extends FieldOptions {
|
|
176
|
+
map: IntEnumMap;
|
|
177
|
+
deprecated?: IntEnumMap;
|
|
178
|
+
tsType?: string;
|
|
179
|
+
graphQLType?: string;
|
|
180
|
+
}
|
|
181
|
+
export declare class IntegerEnumField extends BaseField implements Field {
|
|
182
|
+
type: Type;
|
|
183
|
+
private map;
|
|
184
|
+
constructor(options: IntegerEnumOptions);
|
|
137
185
|
valid(val: any): boolean;
|
|
138
186
|
format(val: any): any;
|
|
139
187
|
}
|
|
140
|
-
export declare function
|
|
188
|
+
export declare function IntegerEnumType(options: IntegerEnumOptions): IntegerEnumField;
|
|
189
|
+
interface ListOptions extends FieldOptions {
|
|
190
|
+
disableJSONStringify?: boolean;
|
|
191
|
+
}
|
|
141
192
|
export declare class ListField extends BaseField {
|
|
142
193
|
private field;
|
|
194
|
+
private options?;
|
|
143
195
|
type: Type;
|
|
144
196
|
private validators;
|
|
145
|
-
constructor(field: Field, options?:
|
|
197
|
+
constructor(field: Field, options?: ListOptions | undefined);
|
|
198
|
+
__getElemField(): Field;
|
|
146
199
|
validate(validator: (val: any[]) => boolean): this;
|
|
147
200
|
valid(val: any): Promise<boolean>;
|
|
148
201
|
private postgresVal;
|
|
@@ -153,7 +206,7 @@ export declare class ListField extends BaseField {
|
|
|
153
206
|
range(start: any, stop: any): this;
|
|
154
207
|
}
|
|
155
208
|
export declare function StringListType(options?: StringOptions): ListField;
|
|
156
|
-
export declare function IntListType(options
|
|
209
|
+
export declare function IntListType(options?: FieldOptions): ListField;
|
|
157
210
|
export declare function IntegerListType(options?: FieldOptions): ListField;
|
|
158
211
|
export declare function FloatListType(options?: FieldOptions): ListField;
|
|
159
212
|
export declare function BigIntegerListType(options: FieldOptions): ListField;
|
|
@@ -163,6 +216,7 @@ export declare function TimestamptzListType(options?: TimestampOptions): ListFie
|
|
|
163
216
|
export declare function TimeListType(options?: TimeOptions): ListField;
|
|
164
217
|
export declare function TimetzListType(options: TimeOptions): ListField;
|
|
165
218
|
export declare function DateListType(options?: FieldOptions): ListField;
|
|
166
|
-
export declare function EnumListType(options:
|
|
219
|
+
export declare function EnumListType(options: StringEnumOptions): ListField;
|
|
220
|
+
export declare function IntegerEnumListType(options: IntegerEnumOptions): ListField;
|
|
167
221
|
export declare function UUIDListType(options?: FieldOptions): ListField;
|
|
168
222
|
export {};
|