@subsquid/openreader 2.0.0 → 3.0.0
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/lib/context.d.ts +5 -2
- package/lib/context.d.ts.map +1 -1
- package/lib/ir/args.d.ts +1 -1
- package/lib/ir/args.d.ts.map +1 -1
- package/lib/ir/connection.d.ts +3 -4
- package/lib/ir/connection.d.ts.map +1 -1
- package/lib/ir/connection.js.map +1 -1
- package/lib/ir/fields.d.ts +6 -2
- package/lib/ir/fields.d.ts.map +1 -1
- package/lib/ir/fields.js +15 -0
- package/lib/ir/fields.js.map +1 -1
- package/lib/limit.size.d.ts +7 -2
- package/lib/limit.size.d.ts.map +1 -1
- package/lib/limit.size.js +106 -12
- package/lib/limit.size.js.map +1 -1
- package/lib/main.js +6 -9
- package/lib/main.js.map +1 -1
- package/lib/model.d.ts +3 -1
- package/lib/model.d.ts.map +1 -1
- package/lib/model.schema.d.ts +2 -2
- package/lib/model.schema.d.ts.map +1 -1
- package/lib/model.schema.js +29 -7
- package/lib/model.schema.js.map +1 -1
- package/lib/model.tools.d.ts +6 -1
- package/lib/model.tools.d.ts.map +1 -1
- package/lib/model.tools.js +111 -8
- package/lib/model.tools.js.map +1 -1
- package/lib/opencrud/orderBy.d.ts +2 -2
- package/lib/opencrud/orderBy.d.ts.map +1 -1
- package/lib/opencrud/orderBy.js +13 -17
- package/lib/opencrud/orderBy.js.map +1 -1
- package/lib/opencrud/schema.d.ts +4 -4
- package/lib/opencrud/schema.d.ts.map +1 -1
- package/lib/opencrud/schema.js +60 -64
- package/lib/opencrud/schema.js.map +1 -1
- package/lib/opencrud/tree.d.ts +9 -7
- package/lib/opencrud/tree.d.ts.map +1 -1
- package/lib/opencrud/tree.js +32 -14
- package/lib/opencrud/tree.js.map +1 -1
- package/lib/server.d.ts +16 -12
- package/lib/server.d.ts.map +1 -1
- package/lib/server.js +29 -4
- package/lib/server.js.map +1 -1
- package/lib/sql/cursor.js +2 -2
- package/lib/sql/cursor.js.map +1 -1
- package/lib/sql/mapping.d.ts +3 -1
- package/lib/sql/mapping.d.ts.map +1 -1
- package/lib/sql/mapping.js +16 -1
- package/lib/sql/mapping.js.map +1 -1
- package/lib/sql/printer.d.ts +29 -11
- package/lib/sql/printer.d.ts.map +1 -1
- package/lib/sql/printer.js +106 -10
- package/lib/sql/printer.js.map +1 -1
- package/lib/sql/query.d.ts +11 -11
- package/lib/sql/query.d.ts.map +1 -1
- package/lib/sql/query.js +41 -19
- package/lib/sql/query.js.map +1 -1
- package/lib/test/limits.test.d.ts +2 -0
- package/lib/test/limits.test.d.ts.map +1 -0
- package/lib/test/limits.test.js +159 -0
- package/lib/test/limits.test.js.map +1 -0
- package/lib/test/queryable.test.d.ts +2 -0
- package/lib/test/queryable.test.d.ts.map +1 -0
- package/lib/test/queryable.test.js +255 -0
- package/lib/test/queryable.test.js.map +1 -0
- package/lib/test/setup.d.ts +2 -1
- package/lib/test/setup.d.ts.map +1 -1
- package/lib/test/setup.js +5 -2
- package/lib/test/setup.js.map +1 -1
- package/lib/util/execute.d.ts +5 -0
- package/lib/util/execute.d.ts.map +1 -0
- package/lib/util/execute.js +28 -0
- package/lib/util/execute.js.map +1 -0
- package/lib/util/limit.d.ts +11 -0
- package/lib/util/limit.d.ts.map +1 -0
- package/lib/util/limit.js +39 -0
- package/lib/util/limit.js.map +1 -0
- package/package.json +3 -3
- package/src/context.ts +5 -2
- package/src/ir/args.ts +1 -1
- package/src/ir/connection.ts +3 -4
- package/src/ir/fields.ts +22 -2
- package/src/limit.size.ts +122 -13
- package/src/main.ts +18 -20
- package/src/model.schema.ts +40 -13
- package/src/model.tools.ts +121 -8
- package/src/model.ts +3 -1
- package/src/opencrud/orderBy.ts +13 -17
- package/src/opencrud/schema.ts +86 -85
- package/src/opencrud/tree.ts +55 -26
- package/src/server.ts +66 -26
- package/src/sql/cursor.ts +2 -2
- package/src/sql/mapping.ts +18 -1
- package/src/sql/printer.ts +137 -21
- package/src/sql/query.ts +50 -30
- package/src/test/limits.test.ts +163 -0
- package/src/test/queryable.test.ts +258 -0
- package/src/test/setup.ts +6 -3
- package/src/util/execute.ts +53 -0
- package/src/util/limit.ts +34 -0
package/lib/model.tools.js
CHANGED
|
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getFtsQuery = exports.getObject = exports.getEntity = exports.propTypeEquals = exports.validateIndexes = exports.validateLookups = exports.validateUnionTypes = exports.validateNames = exports.validateModel = exports.buildUnionProps = exports.getUnionProps = void 0;
|
|
6
|
+
exports.getFtsQuery = exports.getInterface = exports.getObject = exports.getEntity = exports.propTypeEquals = exports.validateQueryableInterfaces = exports.validateIndexes = exports.validateLookups = exports.validateUnionTypes = exports.validateNames = exports.validateModel = exports.getUniversalProperties = exports.getQueryableProperties = exports.getQueryableEntities = exports.buildUnionProps = exports.getUnionProps = void 0;
|
|
7
|
+
const util_internal_1 = require("@subsquid/util-internal");
|
|
7
8
|
const assert_1 = __importDefault(require("assert"));
|
|
8
9
|
const UNION_MAPS = new WeakMap();
|
|
9
10
|
function getUnionProps(model, unionName) {
|
|
@@ -21,8 +22,7 @@ function buildUnionProps(model, unionName) {
|
|
|
21
22
|
let union = model[unionName];
|
|
22
23
|
(0, assert_1.default)(union.kind == 'union');
|
|
23
24
|
let properties = {};
|
|
24
|
-
for (let
|
|
25
|
-
let objectName = union.variants[i];
|
|
25
|
+
for (let objectName of union.variants) {
|
|
26
26
|
let object = model[objectName];
|
|
27
27
|
(0, assert_1.default)(object.kind == 'object');
|
|
28
28
|
Object.assign(properties, object.properties);
|
|
@@ -34,12 +34,99 @@ function buildUnionProps(model, unionName) {
|
|
|
34
34
|
return { kind: 'object', properties };
|
|
35
35
|
}
|
|
36
36
|
exports.buildUnionProps = buildUnionProps;
|
|
37
|
+
const QUERYABLE_ENTITIES = new WeakMap();
|
|
38
|
+
function getQueryableEntities(model, queryableName) {
|
|
39
|
+
let cache = QUERYABLE_ENTITIES.get(model);
|
|
40
|
+
if (cache == null) {
|
|
41
|
+
cache = {};
|
|
42
|
+
QUERYABLE_ENTITIES.set(model, cache);
|
|
43
|
+
}
|
|
44
|
+
let entities = cache[queryableName];
|
|
45
|
+
if (entities)
|
|
46
|
+
return entities;
|
|
47
|
+
entities = cache[queryableName] = [];
|
|
48
|
+
for (let name in model) {
|
|
49
|
+
let item = model[name];
|
|
50
|
+
if (item.kind == 'entity' && item.interfaces?.includes(queryableName)) {
|
|
51
|
+
entities.push(name);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return entities;
|
|
55
|
+
}
|
|
56
|
+
exports.getQueryableEntities = getQueryableEntities;
|
|
57
|
+
function getQueryableProperties(model, queryableName) {
|
|
58
|
+
let queryable = getInterface(model, queryableName);
|
|
59
|
+
let props = {};
|
|
60
|
+
for (let entityName of getQueryableEntities(model, queryableName)) {
|
|
61
|
+
let entity = getEntity(model, entityName);
|
|
62
|
+
for (let key in queryable.properties) {
|
|
63
|
+
let ep = entity.properties[key];
|
|
64
|
+
if (ep == null)
|
|
65
|
+
throw new Error(`Entity ${entityName} doesn't implement ${queryableName} properly: .${key} property is missing`);
|
|
66
|
+
let prop = matchWithQueryableProp(queryable.properties[key], ep);
|
|
67
|
+
if (prop == null)
|
|
68
|
+
throw new Error(`Entity ${entityName} doesn't implement ${queryableName} properly: .${key} property types are incompatible`);
|
|
69
|
+
props[key] = prop;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return props;
|
|
73
|
+
}
|
|
74
|
+
exports.getQueryableProperties = getQueryableProperties;
|
|
75
|
+
function matchWithQueryableProp(queryableProp, entityProp) {
|
|
76
|
+
if (!queryableProp.nullable && entityProp.nullable)
|
|
77
|
+
return undefined;
|
|
78
|
+
let qt = queryableProp.type;
|
|
79
|
+
let et = entityProp.type;
|
|
80
|
+
switch (et.kind) {
|
|
81
|
+
case 'fk':
|
|
82
|
+
case 'lookup':
|
|
83
|
+
if (qt.kind == 'object' && qt.name == et.entity) {
|
|
84
|
+
return {
|
|
85
|
+
type: et,
|
|
86
|
+
nullable: queryableProp.nullable,
|
|
87
|
+
description: queryableProp.description
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
return undefined;
|
|
91
|
+
case 'list-lookup':
|
|
92
|
+
if (qt.kind == 'list' && qt.item.type.kind == 'object' && qt.item.type.name == et.entity) {
|
|
93
|
+
return {
|
|
94
|
+
type: et,
|
|
95
|
+
nullable: false,
|
|
96
|
+
description: queryableProp.description
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
return undefined;
|
|
100
|
+
default:
|
|
101
|
+
if (propTypeEquals(et, qt)) {
|
|
102
|
+
return queryableProp;
|
|
103
|
+
}
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
function getUniversalProperties(model, typeName) {
|
|
108
|
+
let item = model[typeName];
|
|
109
|
+
switch (item.kind) {
|
|
110
|
+
case 'entity':
|
|
111
|
+
case 'object':
|
|
112
|
+
return item.properties;
|
|
113
|
+
case 'union':
|
|
114
|
+
return getUnionProps(model, typeName).properties;
|
|
115
|
+
case 'interface':
|
|
116
|
+
(0, assert_1.default)(item.queryable);
|
|
117
|
+
return getQueryableProperties(model, typeName);
|
|
118
|
+
default:
|
|
119
|
+
throw (0, util_internal_1.unexpectedCase)(item.kind);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
exports.getUniversalProperties = getUniversalProperties;
|
|
37
123
|
function validateModel(model) {
|
|
38
124
|
// TODO: check all invariants we assume
|
|
39
125
|
validateNames(model);
|
|
40
126
|
validateUnionTypes(model);
|
|
41
127
|
validateLookups(model);
|
|
42
128
|
validateIndexes(model);
|
|
129
|
+
validateQueryableInterfaces(model);
|
|
43
130
|
}
|
|
44
131
|
exports.validateModel = validateModel;
|
|
45
132
|
const TYPE_NAME_REGEX = /^[A-Z][a-zA-Z0-9]*$/;
|
|
@@ -115,7 +202,7 @@ function validateLookups(model) {
|
|
|
115
202
|
if (prop.type.kind == 'lookup' || prop.type.kind == 'list-lookup') {
|
|
116
203
|
let lookupEntity = getEntity(model, prop.type.entity);
|
|
117
204
|
let lookupProperty = lookupEntity.properties[prop.type.field];
|
|
118
|
-
if (lookupProperty?.type.kind != 'fk' || lookupProperty.type.
|
|
205
|
+
if (lookupProperty?.type.kind != 'fk' || lookupProperty.type.entity != name) {
|
|
119
206
|
throw invalidProperty(name, key, `${prop.type.entity}.${prop.type.field} is not a foreign key pointing to ${name}`);
|
|
120
207
|
}
|
|
121
208
|
if (prop.type.kind == 'lookup' && !lookupProperty.unique) {
|
|
@@ -139,7 +226,7 @@ function validateIndexes(model) {
|
|
|
139
226
|
index.fields.forEach(f => {
|
|
140
227
|
let prop = item.properties[f.name];
|
|
141
228
|
if (prop == null)
|
|
142
|
-
throw new Error(`Entity ${name} doesn't have a property ${f.name}, but is a part of index`);
|
|
229
|
+
throw new Error(`Entity ${name} doesn't have a property ${f.name}, but it is a part of index`);
|
|
143
230
|
switch (prop.type.kind) {
|
|
144
231
|
case "scalar":
|
|
145
232
|
case "enum":
|
|
@@ -153,17 +240,27 @@ function validateIndexes(model) {
|
|
|
153
240
|
}
|
|
154
241
|
}
|
|
155
242
|
exports.validateIndexes = validateIndexes;
|
|
243
|
+
function validateQueryableInterfaces(model) {
|
|
244
|
+
for (let name in model) {
|
|
245
|
+
let item = model[name];
|
|
246
|
+
if (item.kind == 'interface' && item.queryable) {
|
|
247
|
+
getQueryableProperties(model, name);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
exports.validateQueryableInterfaces = validateQueryableInterfaces;
|
|
156
252
|
function invalidProperty(item, key, msg) {
|
|
157
253
|
return new Error(`Invalid property ${item}.${key}: ${msg}`);
|
|
158
254
|
}
|
|
159
255
|
function propTypeEquals(a, b) {
|
|
160
256
|
if (a.kind != b.kind)
|
|
161
257
|
return false;
|
|
162
|
-
if (a.kind == 'list')
|
|
163
|
-
return propTypeEquals(a.item.type, b.item.type);
|
|
164
258
|
switch (a.kind) {
|
|
259
|
+
case 'list':
|
|
260
|
+
return a.item.nullable == b.item.nullable
|
|
261
|
+
&& propTypeEquals(a.item.type, b.item.type);
|
|
165
262
|
case 'fk':
|
|
166
|
-
return a.
|
|
263
|
+
return a.entity == b.entity;
|
|
167
264
|
case 'lookup':
|
|
168
265
|
case 'list-lookup':
|
|
169
266
|
return a.entity == b.entity && a.field == b.field;
|
|
@@ -184,6 +281,12 @@ function getObject(model, name) {
|
|
|
184
281
|
return object;
|
|
185
282
|
}
|
|
186
283
|
exports.getObject = getObject;
|
|
284
|
+
function getInterface(model, name) {
|
|
285
|
+
let i = model[name];
|
|
286
|
+
(0, assert_1.default)(i.kind == 'interface', `${name} expected to be an interface`);
|
|
287
|
+
return i;
|
|
288
|
+
}
|
|
289
|
+
exports.getInterface = getInterface;
|
|
187
290
|
function getFtsQuery(model, name) {
|
|
188
291
|
let query = model[name];
|
|
189
292
|
(0, assert_1.default)(query.kind == 'fts', `${name} expected to be FTS query`);
|
package/lib/model.tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.tools.js","sourceRoot":"","sources":["../src/model.tools.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAI3B,MAAM,UAAU,GAAG,IAAI,OAAO,EAAqC,CAAA;AAGnE,SAAgB,aAAa,CAAC,KAAY,EAAE,SAAiB;IACzD,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC/B,IAAI,GAAG,IAAI,IAAI,EAAE;QACb,GAAG,GAAG,EAAE,CAAA;QACR,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;KAC7B;IACD,IAAI,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,GAAG,CAAC,SAAS,CAAC,CAAA;IACzC,OAAO,GAAG,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;AAC7D,CAAC;AARD,sCAQC;AAGD,SAAgB,eAAe,CAAC,KAAY,EAAE,SAAiB;IAC3D,IAAI,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAA;IAC5B,IAAA,gBAAM,EAAC,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,CAAA;IAC7B,IAAI,UAAU,GAAyB,EAAE,CAAA;IACzC,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"model.tools.js","sourceRoot":"","sources":["../src/model.tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ export declare type OpenCrudOrderByValue = string;
|
|
|
8
8
|
* A mapping between OpenCRUD enum variants and OrderBy specs
|
|
9
9
|
*/
|
|
10
10
|
export declare type OpenCrud_OrderBy_Mapping = ReadonlyMap<OpenCrudOrderByValue, OrderBy>;
|
|
11
|
-
export declare function getOrderByMapping(model: Model,
|
|
12
|
-
export declare function parseOrderBy(model: Model,
|
|
11
|
+
export declare function getOrderByMapping(model: Model, typeName: string): OpenCrud_OrderBy_Mapping;
|
|
12
|
+
export declare function parseOrderBy(model: Model, typeName: string, input: OpenCrudOrderByValue[]): OrderBy;
|
|
13
13
|
export declare function mergeOrderBy(list: OrderBy[]): OrderBy;
|
|
14
14
|
//# sourceMappingURL=orderBy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderBy.d.ts","sourceRoot":"","sources":["../../src/opencrud/orderBy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,UAAU,CAAA;AAEnC,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAA;AAGlC;;GAEG;AACH,oBAAY,oBAAoB,GAAG,MAAM,CAAA;AAGzC;;GAEG;AACH,oBAAY,wBAAwB,GAAG,WAAW,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;AAMjF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"orderBy.d.ts","sourceRoot":"","sources":["../../src/opencrud/orderBy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,UAAU,CAAA;AAEnC,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAA;AAGlC;;GAEG;AACH,oBAAY,oBAAoB,GAAG,MAAM,CAAA;AAGzC;;GAEG;AACH,oBAAY,wBAAwB,GAAG,WAAW,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;AAMjF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,wBAAwB,CAQ1F;AAuCD,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAAG,OAAO,CASnG;AAGD,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAerD"}
|
package/lib/opencrud/orderBy.js
CHANGED
|
@@ -7,28 +7,24 @@ exports.mergeOrderBy = exports.parseOrderBy = exports.getOrderByMapping = void 0
|
|
|
7
7
|
const assert_1 = __importDefault(require("assert"));
|
|
8
8
|
const model_tools_1 = require("../model.tools");
|
|
9
9
|
const MAPPING_CACHE = new WeakMap();
|
|
10
|
-
function getOrderByMapping(model,
|
|
10
|
+
function getOrderByMapping(model, typeName) {
|
|
11
11
|
let cache = MAPPING_CACHE.get(model);
|
|
12
12
|
if (cache == null) {
|
|
13
13
|
cache = {};
|
|
14
14
|
MAPPING_CACHE.set(model, cache);
|
|
15
15
|
}
|
|
16
|
-
if (cache[
|
|
17
|
-
return cache[
|
|
18
|
-
return cache[
|
|
16
|
+
if (cache[typeName])
|
|
17
|
+
return cache[typeName];
|
|
18
|
+
return cache[typeName] = buildOrderByMapping(model, typeName, 2);
|
|
19
19
|
}
|
|
20
20
|
exports.getOrderByMapping = getOrderByMapping;
|
|
21
21
|
function buildOrderByMapping(model, typeName, depth) {
|
|
22
22
|
if (depth <= 0)
|
|
23
23
|
return new Map();
|
|
24
|
-
let
|
|
25
|
-
if (object.kind == 'union') {
|
|
26
|
-
object = (0, model_tools_1.getUnionProps)(model, typeName);
|
|
27
|
-
}
|
|
28
|
-
(0, assert_1.default)(object.kind == 'entity' || object.kind == 'object');
|
|
24
|
+
let properties = (0, model_tools_1.getUniversalProperties)(model, typeName);
|
|
29
25
|
let m = new Map();
|
|
30
|
-
for (let key in
|
|
31
|
-
let propType =
|
|
26
|
+
for (let key in properties) {
|
|
27
|
+
let propType = properties[key].type;
|
|
32
28
|
switch (propType.kind) {
|
|
33
29
|
case 'scalar':
|
|
34
30
|
case 'enum':
|
|
@@ -44,10 +40,6 @@ function buildOrderByMapping(model, typeName, depth) {
|
|
|
44
40
|
}
|
|
45
41
|
break;
|
|
46
42
|
case 'fk':
|
|
47
|
-
for (let [name, spec] of buildOrderByMapping(model, propType.foreignEntity, depth - 1)) {
|
|
48
|
-
m.set(key + '_' + name, { [key]: spec });
|
|
49
|
-
}
|
|
50
|
-
break;
|
|
51
43
|
case 'lookup':
|
|
52
44
|
for (let [name, spec] of buildOrderByMapping(model, propType.entity, depth - 1)) {
|
|
53
45
|
m.set(key + '_' + name, { [key]: spec });
|
|
@@ -55,10 +47,14 @@ function buildOrderByMapping(model, typeName, depth) {
|
|
|
55
47
|
break;
|
|
56
48
|
}
|
|
57
49
|
}
|
|
50
|
+
if (model[typeName].kind == 'interface') {
|
|
51
|
+
m.set('_type_ASC', { _type: 'ASC' });
|
|
52
|
+
m.set('_type_DESC', { _type: 'DESC' });
|
|
53
|
+
}
|
|
58
54
|
return m;
|
|
59
55
|
}
|
|
60
|
-
function parseOrderBy(model,
|
|
61
|
-
let mapping = getOrderByMapping(model,
|
|
56
|
+
function parseOrderBy(model, typeName, input) {
|
|
57
|
+
let mapping = getOrderByMapping(model, typeName);
|
|
62
58
|
return mergeOrderBy(input.map(value => {
|
|
63
59
|
let spec = mapping.get(value);
|
|
64
60
|
(0, assert_1.default)(spec != null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderBy.js","sourceRoot":"","sources":["../../src/opencrud/orderBy.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAE3B,
|
|
1
|
+
{"version":3,"file":"orderBy.js","sourceRoot":"","sources":["../../src/opencrud/orderBy.ts"],"names":[],"mappings":"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"}
|
package/lib/opencrud/schema.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { GraphQLSchema } from
|
|
2
|
-
import { Model } from
|
|
1
|
+
import { GraphQLSchema } from 'graphql';
|
|
2
|
+
import { Model } from '../model';
|
|
3
3
|
export interface SchemaOptions {
|
|
4
4
|
model: Model;
|
|
5
5
|
subscriptions?: boolean;
|
|
@@ -15,13 +15,13 @@ export declare class SchemaBuilder {
|
|
|
15
15
|
private buildType;
|
|
16
16
|
private buildObjectFields;
|
|
17
17
|
private getPropType;
|
|
18
|
-
private
|
|
18
|
+
private listArguments;
|
|
19
19
|
private getWhere;
|
|
20
20
|
private buildPropWhereFilters;
|
|
21
21
|
private hasFilters;
|
|
22
22
|
private getOrderBy;
|
|
23
23
|
build(): GraphQLSchema;
|
|
24
|
-
private
|
|
24
|
+
private installListQuery;
|
|
25
25
|
private installEntityById;
|
|
26
26
|
private installEntityByUniqueInput;
|
|
27
27
|
private installRelayConnection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/opencrud/schema.ts"],"names":[],"mappings":"AAIA,OAAO,EAeH,aAAa,EAGhB,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/opencrud/schema.ts"],"names":[],"mappings":"AAIA,OAAO,EAeH,aAAa,EAGhB,MAAM,SAAS,CAAA;AAWhB,OAAO,EAAgC,KAAK,EAAO,MAAM,UAAU,CAAA;AAgBnE,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,KAAK,CAAA;IACZ,aAAa,CAAC,EAAE,OAAO,CAAA;CAC1B;AAGD,qBAAa,aAAa;IAMV,OAAO,CAAC,OAAO;IAL3B,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,OAAO,CAAsC;gBAEjC,OAAO,EAAE,aAAa;IAI1C,OAAO,CAAC,GAAG;IAkCX,OAAO,CAAC,SAAS;IAyCjB,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,WAAW;IA4BnB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,QAAQ;IAkChB,OAAO,CAAC,qBAAqB;IAwF7B,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,UAAU;IAsBlB,KAAK,IAAI,aAAa;IAkCtB,OAAO,CAAC,gBAAgB;IAwCxB,OAAO,CAAC,iBAAiB;IAwCzB,OAAO,CAAC,0BAA0B;IA2BlC,OAAO,CAAC,sBAAsB;IA8F9B,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,YAAY;CAavB"}
|