@subsquid/openreader 1.0.3 → 2.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/bin/main.js +1 -1
- package/lib/context.d.ts +11 -0
- package/lib/context.d.ts.map +1 -0
- package/lib/context.js +3 -0
- package/lib/context.js.map +1 -0
- package/lib/db.d.ts +23 -0
- package/lib/db.d.ts.map +1 -0
- package/lib/db.js +57 -0
- package/lib/db.js.map +1 -0
- package/{dist → lib}/dialect.d.ts +0 -0
- package/{dist → lib}/dialect.d.ts.map +0 -0
- package/{dist → lib}/dialect.js +0 -0
- package/{dist → lib}/dialect.js.map +0 -0
- package/lib/ir/args.d.ts +47 -0
- package/lib/ir/args.d.ts.map +1 -0
- package/lib/ir/args.js +3 -0
- package/lib/ir/args.js.map +1 -0
- package/lib/ir/connection.d.ts +30 -0
- package/lib/ir/connection.d.ts.map +1 -0
- package/lib/ir/connection.js +17 -0
- package/lib/ir/connection.js.map +1 -0
- package/lib/ir/fields.d.ts +22 -0
- package/lib/ir/fields.d.ts.map +1 -0
- package/lib/ir/fields.js +3 -0
- package/lib/ir/fields.js.map +1 -0
- package/lib/limit.size.d.ts +3 -0
- package/lib/limit.size.d.ts.map +1 -0
- package/lib/limit.size.js +44 -0
- package/lib/limit.size.js.map +1 -0
- package/{dist → lib}/main.d.ts +0 -0
- package/{dist → lib}/main.d.ts.map +0 -0
- package/lib/main.js +53 -0
- package/lib/main.js.map +1 -0
- package/{dist → lib}/model.d.ts +10 -1
- package/lib/model.d.ts.map +1 -0
- package/{dist → lib}/model.js +0 -0
- package/{dist → lib}/model.js.map +0 -0
- package/{dist/gql/schema.d.ts → lib/model.schema.d.ts} +2 -2
- package/lib/model.schema.d.ts.map +1 -0
- package/{dist/gql/schema.js → lib/model.schema.js} +44 -7
- package/lib/model.schema.js.map +1 -0
- package/{dist → lib}/model.tools.d.ts +0 -0
- package/{dist → lib}/model.tools.d.ts.map +0 -0
- package/{dist → lib}/model.tools.js +0 -0
- package/{dist → lib}/model.tools.js.map +0 -0
- package/{dist → lib/opencrud}/orderBy.d.ts +2 -5
- package/lib/opencrud/orderBy.d.ts.map +1 -0
- package/{dist → lib/opencrud}/orderBy.js +1 -1
- package/lib/opencrud/orderBy.js.map +1 -0
- package/lib/opencrud/schema.d.ts +31 -0
- package/lib/opencrud/schema.d.ts.map +1 -0
- package/lib/opencrud/schema.js +522 -0
- package/lib/opencrud/schema.js.map +1 -0
- package/lib/opencrud/tree.d.ts +8 -0
- package/lib/opencrud/tree.d.ts.map +1 -0
- package/lib/opencrud/tree.js +131 -0
- package/lib/opencrud/tree.js.map +1 -0
- package/lib/opencrud/where.d.ts +7 -0
- package/lib/opencrud/where.d.ts.map +1 -0
- package/lib/opencrud/where.js +141 -0
- package/lib/opencrud/where.js.map +1 -0
- package/{dist/gql → lib}/scalars/BigInt.d.ts +0 -0
- package/lib/scalars/BigInt.d.ts.map +1 -0
- package/{dist/gql → lib}/scalars/BigInt.js +1 -1
- package/lib/scalars/BigInt.js.map +1 -0
- package/{dist/gql → lib}/scalars/Bytes.d.ts +0 -0
- package/lib/scalars/Bytes.d.ts.map +1 -0
- package/{dist/gql → lib}/scalars/Bytes.js +2 -2
- package/lib/scalars/Bytes.js.map +1 -0
- package/{dist/gql → lib}/scalars/DateTime.d.ts +0 -0
- package/lib/scalars/DateTime.d.ts.map +1 -0
- package/{dist/gql → lib}/scalars/DateTime.js +1 -1
- package/lib/scalars/DateTime.js.map +1 -0
- package/{dist/gql → lib}/scalars/JSON.d.ts +0 -0
- package/lib/scalars/JSON.d.ts.map +1 -0
- package/{dist/gql → lib}/scalars/JSON.js +0 -0
- package/lib/scalars/JSON.js.map +1 -0
- package/{dist/gql → lib}/scalars/index.d.ts +0 -0
- package/lib/scalars/index.d.ts.map +1 -0
- package/{dist/gql → lib}/scalars/index.js +0 -0
- package/lib/scalars/index.js.map +1 -0
- package/lib/server.d.ts +38 -0
- package/lib/server.d.ts.map +1 -0
- package/lib/server.js +146 -0
- package/lib/server.js.map +1 -0
- package/lib/sql/cursor.d.ts +52 -0
- package/lib/sql/cursor.d.ts.map +1 -0
- package/lib/sql/cursor.js +234 -0
- package/lib/sql/cursor.js.map +1 -0
- package/lib/sql/mapping.d.ts +4 -0
- package/lib/sql/mapping.d.ts.map +1 -0
- package/lib/sql/mapping.js +71 -0
- package/lib/sql/mapping.js.map +1 -0
- package/lib/sql/printer.d.ts +37 -0
- package/lib/sql/printer.d.ts.map +1 -0
- package/lib/sql/printer.js +311 -0
- package/lib/sql/printer.js.map +1 -0
- package/lib/sql/query.d.ts +46 -0
- package/lib/sql/query.d.ts.map +1 -0
- package/lib/sql/query.js +134 -0
- package/lib/sql/query.js.map +1 -0
- package/lib/sql/util.d.ts +30 -0
- package/lib/sql/util.d.ts.map +1 -0
- package/lib/sql/util.js +75 -0
- package/lib/sql/util.js.map +1 -0
- package/lib/subscription.d.ts +18 -0
- package/lib/subscription.d.ts.map +1 -0
- package/lib/subscription.js +47 -0
- package/lib/subscription.js.map +1 -0
- package/{dist → lib}/test/basic.test.d.ts +0 -0
- package/{dist → lib}/test/basic.test.d.ts.map +0 -0
- package/{dist → lib}/test/basic.test.js +0 -0
- package/{dist → lib}/test/basic.test.js.map +0 -0
- package/{dist → lib}/test/connection.test.d.ts +0 -0
- package/{dist → lib}/test/connection.test.d.ts.map +0 -0
- package/{dist → lib}/test/connection.test.js +0 -0
- package/{dist → lib}/test/connection.test.js.map +0 -0
- package/{dist → lib}/test/fts.test.d.ts +0 -0
- package/{dist → lib}/test/fts.test.d.ts.map +0 -0
- package/{dist → lib}/test/fts.test.js +1 -1
- package/lib/test/fts.test.js.map +1 -0
- package/{dist → lib}/test/isNull.test.d.ts +0 -0
- package/{dist → lib}/test/isNull.test.d.ts.map +0 -0
- package/{dist → lib}/test/isNull.test.js +0 -0
- package/{dist → lib}/test/isNull.test.js.map +0 -0
- package/{dist → lib}/test/lists.test.d.ts +0 -0
- package/{dist → lib}/test/lists.test.d.ts.map +0 -0
- package/{dist → lib}/test/lists.test.js +0 -0
- package/{dist → lib}/test/lists.test.js.map +0 -0
- package/{dist → lib}/test/lookup.test.d.ts +0 -0
- package/{dist → lib}/test/lookup.test.d.ts.map +0 -0
- package/{dist → lib}/test/lookup.test.js +0 -0
- package/{dist → lib}/test/lookup.test.js.map +0 -0
- package/{dist → lib}/test/regressions.test.d.ts +0 -0
- package/{dist → lib}/test/regressions.test.d.ts.map +0 -0
- package/{dist → lib}/test/regressions.test.js +0 -0
- package/{dist → lib}/test/regressions.test.js.map +0 -0
- package/{dist → lib}/test/scalars.test.d.ts +0 -0
- package/{dist → lib}/test/scalars.test.d.ts.map +0 -0
- package/{dist → lib}/test/scalars.test.js +0 -0
- package/{dist → lib}/test/scalars.test.js.map +0 -0
- package/{dist → lib}/test/setup.d.ts +3 -1
- package/lib/test/setup.d.ts.map +1 -0
- package/{dist → lib}/test/setup.js +14 -12
- package/lib/test/setup.js.map +1 -0
- package/lib/test/subscription.test.d.ts +2 -0
- package/lib/test/subscription.test.d.ts.map +1 -0
- package/lib/test/subscription.test.js +99 -0
- package/lib/test/subscription.test.js.map +1 -0
- package/{dist → lib}/test/tools.test.d.ts +0 -0
- package/{dist → lib}/test/tools.test.d.ts.map +0 -0
- package/{dist → lib}/test/tools.test.js +0 -0
- package/{dist → lib}/test/tools.test.js.map +0 -0
- package/{dist → lib}/test/typed-json.test.d.ts +0 -0
- package/{dist → lib}/test/typed-json.test.d.ts.map +0 -0
- package/{dist → lib}/test/typed-json.test.js +0 -0
- package/{dist → lib}/test/typed-json.test.js.map +0 -0
- package/{dist → lib}/test/unions.test.d.ts +0 -0
- package/{dist → lib}/test/unions.test.d.ts.map +0 -0
- package/{dist → lib}/test/unions.test.js +0 -0
- package/{dist → lib}/test/unions.test.js.map +0 -0
- package/{dist → lib}/test/where.test.d.ts +0 -0
- package/{dist → lib}/test/where.test.d.ts.map +0 -0
- package/{dist → lib}/test/where.test.js +0 -0
- package/{dist → lib}/test/where.test.js.map +0 -0
- package/{dist → lib}/tools.d.ts +0 -0
- package/{dist → lib}/tools.d.ts.map +0 -0
- package/{dist → lib}/tools.js +3 -3
- package/{dist → lib}/tools.js.map +1 -1
- package/lib/util/error-handling.d.ts +11 -0
- package/lib/util/error-handling.d.ts.map +1 -0
- package/lib/util/error-handling.js +42 -0
- package/lib/util/error-handling.js.map +1 -0
- package/lib/util/lazy-transaction.d.ts +10 -0
- package/lib/util/lazy-transaction.d.ts.map +1 -0
- package/lib/util/lazy-transaction.js +43 -0
- package/lib/util/lazy-transaction.js.map +1 -0
- package/lib/util/resolve-tree.d.ts +14 -0
- package/lib/util/resolve-tree.d.ts.map +1 -0
- package/lib/util/resolve-tree.js +52 -0
- package/lib/util/resolve-tree.js.map +1 -0
- package/{dist → lib/util}/util.d.ts +2 -3
- package/lib/util/util.d.ts.map +1 -0
- package/{dist → lib/util}/util.js +9 -13
- package/lib/util/util.js.map +1 -0
- package/package.json +17 -9
- package/src/context.ts +14 -0
- package/src/db.ts +46 -57
- package/src/ir/args.ts +85 -0
- package/src/ir/connection.ts +48 -0
- package/src/ir/fields.ts +40 -0
- package/src/limit.size.ts +46 -0
- package/src/main.ts +61 -38
- package/src/{gql/schema.ts → model.schema.ts} +51 -8
- package/src/model.ts +12 -1
- package/src/{orderBy.ts → opencrud/orderBy.ts} +3 -10
- package/src/opencrud/schema.ts +632 -0
- package/src/opencrud/tree.ts +144 -0
- package/src/opencrud/where.ts +141 -0
- package/src/{gql/scalars → scalars}/BigInt.ts +1 -1
- package/src/{gql/scalars → scalars}/Bytes.ts +4 -4
- package/src/{gql/scalars → scalars}/DateTime.ts +1 -1
- package/src/{gql/scalars → scalars}/JSON.ts +0 -0
- package/src/{gql/scalars → scalars}/index.ts +0 -0
- package/src/server.ts +128 -48
- package/src/sql/cursor.ts +291 -0
- package/src/sql/mapping.ts +66 -0
- package/src/sql/printer.ts +328 -0
- package/src/sql/query.ts +194 -0
- package/src/sql/util.ts +89 -0
- package/src/subscription.ts +46 -0
- package/src/test/fts.test.ts +1 -1
- package/src/test/setup.ts +12 -10
- package/src/test/subscription.test.ts +98 -0
- package/src/tools.ts +1 -1
- package/src/util/error-handling.ts +40 -0
- package/src/util/lazy-transaction.ts +49 -0
- package/src/util/resolve-tree.ts +65 -0
- package/src/{util.ts → util/util.ts} +9 -14
- package/dist/db.d.ts +0 -28
- package/dist/db.d.ts.map +0 -1
- package/dist/db.js +0 -69
- package/dist/db.js.map +0 -1
- package/dist/gql/opencrud.d.ts +0 -6
- package/dist/gql/opencrud.d.ts.map +0 -1
- package/dist/gql/opencrud.js +0 -326
- package/dist/gql/opencrud.js.map +0 -1
- package/dist/gql/scalars/BigInt.d.ts.map +0 -1
- package/dist/gql/scalars/BigInt.js.map +0 -1
- package/dist/gql/scalars/Bytes.d.ts.map +0 -1
- package/dist/gql/scalars/Bytes.js.map +0 -1
- package/dist/gql/scalars/DateTime.d.ts.map +0 -1
- package/dist/gql/scalars/DateTime.js.map +0 -1
- package/dist/gql/scalars/JSON.d.ts.map +0 -1
- package/dist/gql/scalars/JSON.js.map +0 -1
- package/dist/gql/scalars/index.d.ts.map +0 -1
- package/dist/gql/scalars/index.js.map +0 -1
- package/dist/gql/schema.d.ts.map +0 -1
- package/dist/gql/schema.js.map +0 -1
- package/dist/main.js +0 -44
- package/dist/main.js.map +0 -1
- package/dist/model.d.ts.map +0 -1
- package/dist/orderBy.d.ts.map +0 -1
- package/dist/orderBy.js.map +0 -1
- package/dist/queryBuilder.d.ts +0 -56
- package/dist/queryBuilder.d.ts.map +0 -1
- package/dist/queryBuilder.js +0 -733
- package/dist/queryBuilder.js.map +0 -1
- package/dist/relayConnection.d.ts +0 -37
- package/dist/relayConnection.d.ts.map +0 -1
- package/dist/relayConnection.js +0 -43
- package/dist/relayConnection.js.map +0 -1
- package/dist/requestedFields.d.ts +0 -33
- package/dist/requestedFields.d.ts.map +0 -1
- package/dist/requestedFields.js +0 -179
- package/dist/requestedFields.js.map +0 -1
- package/dist/resolver.d.ts +0 -9
- package/dist/resolver.d.ts.map +0 -1
- package/dist/resolver.js +0 -158
- package/dist/resolver.js.map +0 -1
- package/dist/server.d.ts +0 -22
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -96
- package/dist/server.js.map +0 -1
- package/dist/test/fts.test.js.map +0 -1
- package/dist/test/setup.d.ts.map +0 -1
- package/dist/test/setup.js.map +0 -1
- package/dist/util.d.ts.map +0 -1
- package/dist/util.js.map +0 -1
- package/dist/where.d.ts +0 -9
- package/dist/where.d.ts.map +0 -1
- package/dist/where.js +0 -101
- package/dist/where.js.map +0 -1
- package/src/gql/opencrud.ts +0 -350
- package/src/queryBuilder.ts +0 -891
- package/src/relayConnection.ts +0 -80
- package/src/requestedFields.ts +0 -246
- package/src/resolver.ts +0 -201
- package/src/where.ts +0 -119
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.parseEntityListArguments = exports.parseResolveTree = void 0;
|
|
7
|
+
const util_internal_1 = require("@subsquid/util-internal");
|
|
8
|
+
const assert_1 = __importDefault(require("assert"));
|
|
9
|
+
const resolve_tree_1 = require("../util/resolve-tree");
|
|
10
|
+
const util_1 = require("../util/util");
|
|
11
|
+
const orderBy_1 = require("./orderBy");
|
|
12
|
+
const where_1 = require("./where");
|
|
13
|
+
function parseResolveTree(model, objectName, schema, tree) {
|
|
14
|
+
let requests = [];
|
|
15
|
+
let requestedScalars = {};
|
|
16
|
+
let object = model[objectName];
|
|
17
|
+
(0, assert_1.default)(object.kind == "entity" || object.kind == "object");
|
|
18
|
+
let fields = (0, resolve_tree_1.simplifyResolveTree)(schema, tree, objectName).fields;
|
|
19
|
+
for (let alias in fields) {
|
|
20
|
+
let f = fields[alias];
|
|
21
|
+
let prop = object.properties[f.name];
|
|
22
|
+
switch (prop.type.kind) {
|
|
23
|
+
case "scalar":
|
|
24
|
+
case "enum":
|
|
25
|
+
case "list":
|
|
26
|
+
if (requestedScalars[f.name] == null) {
|
|
27
|
+
requestedScalars[f.name] = true;
|
|
28
|
+
requests.push({
|
|
29
|
+
field: f.name,
|
|
30
|
+
aliases: [f.name],
|
|
31
|
+
kind: prop.type.kind,
|
|
32
|
+
type: prop.type,
|
|
33
|
+
prop,
|
|
34
|
+
index: 0
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
break;
|
|
38
|
+
case "object":
|
|
39
|
+
requests.push({
|
|
40
|
+
field: f.name,
|
|
41
|
+
aliases: [f.alias],
|
|
42
|
+
kind: prop.type.kind,
|
|
43
|
+
type: prop.type,
|
|
44
|
+
prop,
|
|
45
|
+
index: 0,
|
|
46
|
+
children: parseResolveTree(model, prop.type.name, schema, f)
|
|
47
|
+
});
|
|
48
|
+
break;
|
|
49
|
+
case "union": {
|
|
50
|
+
let union = model[prop.type.name];
|
|
51
|
+
(0, assert_1.default)(union.kind == "union");
|
|
52
|
+
let children = [];
|
|
53
|
+
for (let variant of union.variants) {
|
|
54
|
+
for (let req of parseResolveTree(model, variant, schema, f)) {
|
|
55
|
+
req.ifType = variant;
|
|
56
|
+
children.push(req);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
requests.push({
|
|
60
|
+
field: f.name,
|
|
61
|
+
aliases: [f.alias],
|
|
62
|
+
kind: prop.type.kind,
|
|
63
|
+
type: prop.type,
|
|
64
|
+
prop,
|
|
65
|
+
index: 0,
|
|
66
|
+
children
|
|
67
|
+
});
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
case "fk":
|
|
71
|
+
requests.push({
|
|
72
|
+
field: f.name,
|
|
73
|
+
aliases: [f.alias],
|
|
74
|
+
kind: prop.type.kind,
|
|
75
|
+
type: prop.type,
|
|
76
|
+
prop,
|
|
77
|
+
index: 0,
|
|
78
|
+
children: parseResolveTree(model, prop.type.foreignEntity, schema, f)
|
|
79
|
+
});
|
|
80
|
+
break;
|
|
81
|
+
case "lookup":
|
|
82
|
+
requests.push({
|
|
83
|
+
field: f.name,
|
|
84
|
+
aliases: [f.alias],
|
|
85
|
+
kind: prop.type.kind,
|
|
86
|
+
type: prop.type,
|
|
87
|
+
prop,
|
|
88
|
+
index: 0,
|
|
89
|
+
children: parseResolveTree(model, prop.type.entity, schema, f)
|
|
90
|
+
});
|
|
91
|
+
break;
|
|
92
|
+
case "list-lookup":
|
|
93
|
+
requests.push({
|
|
94
|
+
field: f.name,
|
|
95
|
+
aliases: [f.alias],
|
|
96
|
+
kind: prop.type.kind,
|
|
97
|
+
type: prop.type,
|
|
98
|
+
prop,
|
|
99
|
+
index: 0,
|
|
100
|
+
args: parseEntityListArguments(model, prop.type.entity, f.args),
|
|
101
|
+
children: parseResolveTree(model, prop.type.entity, schema, f)
|
|
102
|
+
});
|
|
103
|
+
break;
|
|
104
|
+
default:
|
|
105
|
+
throw (0, util_internal_1.unexpectedCase)();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return requests;
|
|
109
|
+
}
|
|
110
|
+
exports.parseResolveTree = parseResolveTree;
|
|
111
|
+
function parseEntityListArguments(model, entityName, gqlArgs) {
|
|
112
|
+
let args = {};
|
|
113
|
+
let where = (0, where_1.parseWhere)(gqlArgs.where);
|
|
114
|
+
if (where) {
|
|
115
|
+
args.where = where;
|
|
116
|
+
}
|
|
117
|
+
if (gqlArgs.orderBy) {
|
|
118
|
+
args.orderBy = (0, orderBy_1.parseOrderBy)(model, entityName, (0, util_1.ensureArray)(gqlArgs.orderBy));
|
|
119
|
+
}
|
|
120
|
+
if (gqlArgs.offset) {
|
|
121
|
+
(0, assert_1.default)(typeof gqlArgs.offset == "number");
|
|
122
|
+
args.offset = gqlArgs.offset;
|
|
123
|
+
}
|
|
124
|
+
if (gqlArgs.limit != null) {
|
|
125
|
+
(0, assert_1.default)(typeof gqlArgs.limit == "number");
|
|
126
|
+
args.limit = gqlArgs.limit;
|
|
127
|
+
}
|
|
128
|
+
return args;
|
|
129
|
+
}
|
|
130
|
+
exports.parseEntityListArguments = parseEntityListArguments;
|
|
131
|
+
//# sourceMappingURL=tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/opencrud/tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"where.d.ts","sourceRoot":"","sources":["../../src/opencrud/where.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAA;AAIhC,wBAAgB,UAAU,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,KAAK,GAAG,SAAS,CAgF5D;AAeD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG;IAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAO3E"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.parseWhereKey = exports.parseWhere = void 0;
|
|
7
|
+
const util_internal_1 = require("@subsquid/util-internal");
|
|
8
|
+
const assert_1 = __importDefault(require("assert"));
|
|
9
|
+
const util_1 = require("../util/util");
|
|
10
|
+
function parseWhere(whereArg) {
|
|
11
|
+
if (whereArg == null)
|
|
12
|
+
return undefined;
|
|
13
|
+
let { AND, OR, ...fields } = whereArg;
|
|
14
|
+
let conj = [];
|
|
15
|
+
for (let key in fields) {
|
|
16
|
+
let arg = fields[key];
|
|
17
|
+
let { field, op } = parseWhereKey(key);
|
|
18
|
+
switch (op) {
|
|
19
|
+
case "REF":
|
|
20
|
+
case "every": {
|
|
21
|
+
let where = parseWhere(arg);
|
|
22
|
+
where && conj.push({ op, field, where });
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
case "some":
|
|
26
|
+
case "none":
|
|
27
|
+
conj.push({ op, field, where: parseWhere(arg) });
|
|
28
|
+
break;
|
|
29
|
+
case "in":
|
|
30
|
+
case "not_in":
|
|
31
|
+
conj.push({ op, field, values: (0, util_1.ensureArray)(arg) });
|
|
32
|
+
break;
|
|
33
|
+
case "eq":
|
|
34
|
+
case "not_eq":
|
|
35
|
+
case "gt":
|
|
36
|
+
case "gte":
|
|
37
|
+
case "lt":
|
|
38
|
+
case "lte":
|
|
39
|
+
case "contains":
|
|
40
|
+
case "not_contains":
|
|
41
|
+
case "containsInsensitive":
|
|
42
|
+
case "not_containsInsensitive":
|
|
43
|
+
case "startsWith":
|
|
44
|
+
case "not_startsWith":
|
|
45
|
+
case "endsWith":
|
|
46
|
+
case "not_endsWith":
|
|
47
|
+
case "jsonHasKey":
|
|
48
|
+
case "jsonContains":
|
|
49
|
+
conj.push({ op, field, value: arg });
|
|
50
|
+
break;
|
|
51
|
+
case "containsNone":
|
|
52
|
+
case "containsAll":
|
|
53
|
+
case "containsAny":
|
|
54
|
+
conj.push({ op, field, value: (0, util_1.ensureArray)(arg) });
|
|
55
|
+
break;
|
|
56
|
+
case "isNull":
|
|
57
|
+
(0, assert_1.default)(typeof arg == 'boolean');
|
|
58
|
+
conj.push({ op, field, yes: arg });
|
|
59
|
+
break;
|
|
60
|
+
default:
|
|
61
|
+
throw (0, util_internal_1.unexpectedCase)(op);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (AND) {
|
|
65
|
+
for (let arg of (0, util_1.ensureArray)(AND)) {
|
|
66
|
+
let where = parseWhere(arg);
|
|
67
|
+
if (where) {
|
|
68
|
+
conj.push(where);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
let conjunction = toCondition('AND', conj);
|
|
73
|
+
if (OR) {
|
|
74
|
+
let disjunctions = [];
|
|
75
|
+
if (conjunction) {
|
|
76
|
+
disjunctions.push(conjunction);
|
|
77
|
+
}
|
|
78
|
+
for (let arg of (0, util_1.ensureArray)(OR)) {
|
|
79
|
+
let where = parseWhere(arg);
|
|
80
|
+
if (where) {
|
|
81
|
+
disjunctions.push(where);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return toCondition('OR', disjunctions);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
return conjunction;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.parseWhere = parseWhere;
|
|
91
|
+
function toCondition(op, operands) {
|
|
92
|
+
switch (operands.length) {
|
|
93
|
+
case 0:
|
|
94
|
+
return undefined;
|
|
95
|
+
case 1:
|
|
96
|
+
return operands[0];
|
|
97
|
+
default:
|
|
98
|
+
return { op, args: operands };
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function parseWhereKey(key) {
|
|
102
|
+
let m = WHERE_KEY_REGEX.exec(key);
|
|
103
|
+
if (m) {
|
|
104
|
+
return { op: m[2], field: m[1] };
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
return { op: 'REF', field: key };
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
exports.parseWhereKey = parseWhereKey;
|
|
111
|
+
const WHERE_KEY_REGEX = (() => {
|
|
112
|
+
let ops = [
|
|
113
|
+
"eq",
|
|
114
|
+
"not_eq",
|
|
115
|
+
"gt",
|
|
116
|
+
"gte",
|
|
117
|
+
"lt",
|
|
118
|
+
"lte",
|
|
119
|
+
"contains",
|
|
120
|
+
"not_contains",
|
|
121
|
+
"containsInsensitive",
|
|
122
|
+
"not_containsInsensitive",
|
|
123
|
+
"startsWith",
|
|
124
|
+
"not_startsWith",
|
|
125
|
+
"endsWith",
|
|
126
|
+
"not_endsWith",
|
|
127
|
+
"containsAll",
|
|
128
|
+
"containsAny",
|
|
129
|
+
"containsNone",
|
|
130
|
+
"jsonContains",
|
|
131
|
+
"jsonHasKey",
|
|
132
|
+
"isNull",
|
|
133
|
+
"some",
|
|
134
|
+
"every",
|
|
135
|
+
"none",
|
|
136
|
+
"in",
|
|
137
|
+
"not_in",
|
|
138
|
+
];
|
|
139
|
+
return new RegExp(`^([^_]*)_(${ops.join('|')})$`);
|
|
140
|
+
})();
|
|
141
|
+
//# sourceMappingURL=where.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"where.js","sourceRoot":"","sources":["../../src/opencrud/where.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BigInt.d.ts","sourceRoot":"","sources":["../../src/scalars/BigInt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,SAAS,CAAA;AAIzC,eAAO,MAAM,YAAY,mBAwBvB,CAAA"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BigIntScalar = void 0;
|
|
4
4
|
const graphql_1 = require("graphql");
|
|
5
|
-
const util_1 = require("
|
|
5
|
+
const util_1 = require("../util/util");
|
|
6
6
|
exports.BigIntScalar = new graphql_1.GraphQLScalarType({
|
|
7
7
|
name: 'BigInt',
|
|
8
8
|
description: 'Big number integer',
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BigInt.js","sourceRoot":"","sources":["../../src/scalars/BigInt.ts"],"names":[],"mappings":";;;AAAA,qCAAyC;AACzC,uCAA0C;AAG7B,QAAA,YAAY,GAAG,IAAI,2BAAiB,CAAC;IAC9C,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,oBAAoB;IACjC,SAAS,CAAC,KAA+B;QACrC,OAAO,EAAE,GAAC,KAAK,CAAA;IACnB,CAAC;IACD,UAAU,CAAC,KAAa;QACpB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,IAAA,oBAAa,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAC1D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC;IACD,YAAY,CAAC,GAAG;QACZ,QAAO,GAAG,CAAC,IAAI,EAAE;YACb,KAAK,aAAa;gBACd,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oBACrB,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;iBAC3B;qBAAM;oBACH,MAAM,IAAA,oBAAa,EAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;iBAC3C;YACL,KAAK,UAAU;gBACX,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC5B;gBACI,OAAO,IAAI,CAAA;SAClB;IACL,CAAC;CACJ,CAAC,CAAA;AAGF,SAAS,QAAQ,CAAC,CAAS;IACvB,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAChC,CAAC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Bytes.d.ts","sourceRoot":"","sources":["../../src/scalars/Bytes.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAC,MAAM,SAAS,CAAA;AAIzC,eAAO,MAAM,WAAW,mBAsBtB,CAAA"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.BytesScalar = void 0;
|
|
4
4
|
const util_internal_hex_1 = require("@subsquid/util-internal-hex");
|
|
5
5
|
const graphql_1 = require("graphql");
|
|
6
|
-
const util_1 = require("
|
|
6
|
+
const util_1 = require("../util/util");
|
|
7
7
|
exports.BytesScalar = new graphql_1.GraphQLScalarType({
|
|
8
8
|
name: 'Bytes',
|
|
9
9
|
description: 'Binary data encoded as a hex string always prefixed with 0x',
|
|
@@ -14,7 +14,7 @@ exports.BytesScalar = new graphql_1.GraphQLScalarType({
|
|
|
14
14
|
return value.toLowerCase();
|
|
15
15
|
}
|
|
16
16
|
else {
|
|
17
|
-
return
|
|
17
|
+
return (0, util_internal_hex_1.toHex)(value);
|
|
18
18
|
}
|
|
19
19
|
},
|
|
20
20
|
parseValue(value) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Bytes.js","sourceRoot":"","sources":["../../src/scalars/Bytes.ts"],"names":[],"mappings":";;;AAAA,mEAAmE;AACnE,qCAAyC;AACzC,uCAA0C;AAG7B,QAAA,WAAW,GAAG,IAAI,2BAAiB,CAAC;IAC7C,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,6DAA6D;IAC1E,SAAS,CAAC,KAA0B;QAChC,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE;YAC1B,IAAI,CAAC,IAAA,yBAAK,EAAC,KAAK,CAAC;gBAAE,MAAM,IAAA,oBAAa,EAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YACtD,OAAO,KAAK,CAAC,WAAW,EAAE,CAAA;SAC7B;aAAM;YACH,OAAO,IAAA,yBAAK,EAAC,KAAK,CAAC,CAAA;SACtB;IACL,CAAC;IACD,UAAU,CAAC,KAAa;QACpB,OAAO,IAAA,6BAAS,EAAC,KAAK,CAAC,CAAA;IAC3B,CAAC;IACD,YAAY,CAAC,GAAG;QACZ,QAAO,GAAG,CAAC,IAAI,EAAE;YACb,KAAK,aAAa;gBACd,OAAO,IAAA,6BAAS,EAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC/B;gBACI,OAAO,IAAI,CAAA;SAClB;IACL,CAAC;CACJ,CAAC,CAAA"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateTime.d.ts","sourceRoot":"","sources":["../../src/scalars/DateTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,SAAS,CAAA;AAIzC,eAAO,MAAM,cAAc,mBAuBzB,CAAA"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DateTimeScalar = void 0;
|
|
4
4
|
const graphql_1 = require("graphql");
|
|
5
|
-
const util_1 = require("
|
|
5
|
+
const util_1 = require("../util/util");
|
|
6
6
|
exports.DateTimeScalar = new graphql_1.GraphQLScalarType({
|
|
7
7
|
name: 'DateTime',
|
|
8
8
|
description: 'A date-time string in simplified extended ISO 8601 format (YYYY-MM-DDTHH:mm:ss.sssZ)',
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateTime.js","sourceRoot":"","sources":["../../src/scalars/DateTime.ts"],"names":[],"mappings":";;;AAAA,qCAAyC;AACzC,uCAA0C;AAG7B,QAAA,cAAc,GAAG,IAAI,2BAAiB,CAAC;IAChD,IAAI,EAAE,UAAU;IAChB,WAAW,EACP,sFAAsF;IAC1F,SAAS,CAAC,KAAoB;QAC1B,IAAI,KAAK,YAAY,IAAI,EAAE;YACvB,OAAO,KAAK,CAAC,WAAW,EAAE,CAAA;SAC7B;aAAM;YACH,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAA,oBAAa,EAAC,UAAU,EAAE,KAAK,CAAC,CAAA;YACvE,OAAO,KAAK,CAAA;SACf;IACL,CAAC;IACD,UAAU,CAAC,KAAa;QACpB,OAAO,aAAa,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IACD,YAAY,CAAC,GAAG;QACZ,QAAO,GAAG,CAAC,IAAI,EAAE;YACb,KAAK,aAAa;gBACd,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACnC;gBACI,OAAO,IAAI,CAAA;SAClB;IACL,CAAC;CACJ,CAAC,CAAA;AAGF,yIAAyI;AACzI,MAAM,cAAc,GAAG,oHAAoH,CAAA;AAG3I,SAAS,mBAAmB,CAAC,CAAS;IAClC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjC,CAAC;AAGD,SAAS,aAAa,CAAC,CAAS;IAC5B,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAAE,MAAM,IAAA,oBAAa,EAAC,UAAU,EAAE,CAAC,CAAC,CAAA;IAC/D,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC7B,IAAI,KAAK,CAAC,SAAS,CAAC;QAAE,MAAM,IAAA,oBAAa,EAAC,UAAU,EAAE,CAAC,CAAC,CAAA;IACxD,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAAA;AAC9B,CAAC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JSON.d.ts","sourceRoot":"","sources":["../../src/scalars/JSON.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,SAAS,CAAA;AAGzC,eAAO,MAAM,UAAU,mBAGrB,CAAA"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JSON.js","sourceRoot":"","sources":["../../src/scalars/JSON.ts"],"names":[],"mappings":";;;AAAA,qCAAyC;AAG5B,QAAA,UAAU,GAAG,IAAI,2BAAiB,CAAC;IAC5C,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,4CAA4C;CAC5D,CAAC,CAAA"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scalars/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa;;;;;CAKzB,CAAA"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scalars/index.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,mCAAmC;AACnC,yCAAyC;AACzC,iCAAiC;AAGpB,QAAA,aAAa,GAAG;IACzB,MAAM,EAAE,qBAAY;IACpB,KAAK,EAAE,mBAAW;IAClB,QAAQ,EAAE,yBAAc;IACxB,IAAI,EAAE,iBAAU;CACnB,CAAA"}
|
package/lib/server.d.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { Logger } from "@subsquid/logger";
|
|
2
|
+
import { ListeningServer } from "@subsquid/util-internal-http-server";
|
|
3
|
+
import { PluginDefinition } from "apollo-server-core";
|
|
4
|
+
import express from "express";
|
|
5
|
+
import { GraphQLSchema } from "graphql";
|
|
6
|
+
import type { Pool } from "pg";
|
|
7
|
+
import { Context } from "./context";
|
|
8
|
+
import type { Dialect } from "./dialect";
|
|
9
|
+
import type { Model } from "./model";
|
|
10
|
+
export interface ServerOptions {
|
|
11
|
+
port: number | string;
|
|
12
|
+
model: Model;
|
|
13
|
+
connection: Pool;
|
|
14
|
+
dialect?: Dialect;
|
|
15
|
+
subscriptions?: boolean;
|
|
16
|
+
subscriptionPollInterval?: number;
|
|
17
|
+
subscriptionConnection?: Pool;
|
|
18
|
+
graphiqlConsole?: boolean;
|
|
19
|
+
log?: Logger;
|
|
20
|
+
maxRequestSizeBytes?: number;
|
|
21
|
+
}
|
|
22
|
+
export declare function serve(options: ServerOptions): Promise<ListeningServer>;
|
|
23
|
+
export declare type Dispose = () => Promise<void>;
|
|
24
|
+
export interface ApolloOptions {
|
|
25
|
+
port: number | string;
|
|
26
|
+
disposals: Dispose[];
|
|
27
|
+
context: () => Context;
|
|
28
|
+
schema: GraphQLSchema;
|
|
29
|
+
plugins?: PluginDefinition[];
|
|
30
|
+
subscriptions?: boolean;
|
|
31
|
+
graphiqlConsole?: boolean;
|
|
32
|
+
log?: Logger;
|
|
33
|
+
maxRequestSizeBytes?: number;
|
|
34
|
+
}
|
|
35
|
+
export declare function runApollo(options: ApolloOptions): Promise<ListeningServer>;
|
|
36
|
+
export declare function addServerCleanup(disposals: Dispose[], server: Promise<ListeningServer>, log?: Logger): Promise<ListeningServer>;
|
|
37
|
+
export declare function setupGraphiqlConsole(app: express.Application): void;
|
|
38
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAS,eAAe,EAAC,MAAM,qCAAqC,CAAA;AAC3E,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAA;AAEnD,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,EAAC,aAAa,EAAC,MAAM,SAAS,CAAA;AAIrC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,IAAI,CAAA;AAE5B,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAEjC,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACtC,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,SAAS,CAAA;AAKlC,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,IAAI,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,sBAAsB,CAAC,EAAE,IAAI,CAAA;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAGD,wBAAsB,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAsB5E;AAGD,oBAAY,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;AAGzC,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,SAAS,EAAE,OAAO,EAAE,CAAA;IACpB,OAAO,EAAE,MAAM,OAAO,CAAA;IACtB,MAAM,EAAE,aAAa,CAAA;IACrB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAGD,wBAAsB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CA2EhF;AAGD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAmB/H;AAGD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,GAAG,IAAI,CAsBnE"}
|
package/lib/server.js
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.setupGraphiqlConsole = exports.addServerCleanup = exports.runApollo = exports.serve = void 0;
|
|
7
|
+
const util_internal_http_server_1 = require("@subsquid/util-internal-http-server");
|
|
8
|
+
const apollo_server_express_1 = require("apollo-server-express");
|
|
9
|
+
const express_1 = __importDefault(require("express"));
|
|
10
|
+
const fs_1 = __importDefault(require("fs"));
|
|
11
|
+
const ws_1 = require("graphql-ws/lib/use/ws");
|
|
12
|
+
const http_1 = __importDefault(require("http"));
|
|
13
|
+
const path_1 = __importDefault(require("path"));
|
|
14
|
+
const ws_2 = require("ws");
|
|
15
|
+
const db_1 = require("./db");
|
|
16
|
+
const schema_1 = require("./opencrud/schema");
|
|
17
|
+
const error_handling_1 = require("./util/error-handling");
|
|
18
|
+
async function serve(options) {
|
|
19
|
+
let { connection, subscriptionConnection, subscriptionPollInterval } = options;
|
|
20
|
+
let dialect = options.dialect ?? 'postgres';
|
|
21
|
+
let schema = new schema_1.SchemaBuilder(options).build();
|
|
22
|
+
let context = () => {
|
|
23
|
+
return {
|
|
24
|
+
openreader: new db_1.PoolOpenreaderContext(dialect, connection, subscriptionConnection, subscriptionPollInterval)
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
let disposals = [];
|
|
28
|
+
return addServerCleanup(disposals, runApollo({
|
|
29
|
+
port: options.port,
|
|
30
|
+
schema,
|
|
31
|
+
context,
|
|
32
|
+
disposals,
|
|
33
|
+
subscriptions: options.subscriptions,
|
|
34
|
+
log: options.log,
|
|
35
|
+
graphiqlConsole: options.graphiqlConsole,
|
|
36
|
+
maxRequestSizeBytes: options.maxRequestSizeBytes
|
|
37
|
+
}), options.log);
|
|
38
|
+
}
|
|
39
|
+
exports.serve = serve;
|
|
40
|
+
async function runApollo(options) {
|
|
41
|
+
let { disposals, context, schema, log } = options;
|
|
42
|
+
let maxRequestSizeBytes = options.maxRequestSizeBytes ?? 256 * 1024;
|
|
43
|
+
let app = (0, express_1.default)();
|
|
44
|
+
let server = http_1.default.createServer(app);
|
|
45
|
+
if (options.subscriptions) {
|
|
46
|
+
let wsServer = new ws_2.WebSocketServer({
|
|
47
|
+
server,
|
|
48
|
+
path: '/graphql',
|
|
49
|
+
maxPayload: maxRequestSizeBytes
|
|
50
|
+
});
|
|
51
|
+
let wsServerCleanup = (0, ws_1.useServer)({
|
|
52
|
+
schema,
|
|
53
|
+
context,
|
|
54
|
+
onError(ctx, message, errors) {
|
|
55
|
+
if (log) {
|
|
56
|
+
// FIXME: we don't want to log client errors
|
|
57
|
+
for (let err of errors) {
|
|
58
|
+
(0, error_handling_1.logGraphQLError)(log, err);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
onNext(_ctx, _message, args, result) {
|
|
63
|
+
args.contextValue.openreader.close();
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
}, wsServer);
|
|
67
|
+
disposals.push(async () => wsServerCleanup.dispose());
|
|
68
|
+
}
|
|
69
|
+
let apollo = new apollo_server_express_1.ApolloServer({
|
|
70
|
+
schema,
|
|
71
|
+
context,
|
|
72
|
+
stopOnTerminationSignals: false,
|
|
73
|
+
plugins: [
|
|
74
|
+
...options.plugins || [],
|
|
75
|
+
{
|
|
76
|
+
async requestDidStart() {
|
|
77
|
+
return {
|
|
78
|
+
willSendResponse(req) {
|
|
79
|
+
return req.context.openreader.close();
|
|
80
|
+
},
|
|
81
|
+
async didEncounterErrors(req) {
|
|
82
|
+
if (req.operation && log) {
|
|
83
|
+
for (let err of req.errors) {
|
|
84
|
+
(0, error_handling_1.logGraphQLError)(log, err);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
]
|
|
92
|
+
});
|
|
93
|
+
if (options.graphiqlConsole !== false) {
|
|
94
|
+
setupGraphiqlConsole(app);
|
|
95
|
+
}
|
|
96
|
+
await apollo.start();
|
|
97
|
+
disposals.push(() => apollo.stop());
|
|
98
|
+
apollo.applyMiddleware({
|
|
99
|
+
app,
|
|
100
|
+
bodyParserConfig: {
|
|
101
|
+
limit: maxRequestSizeBytes
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
return (0, util_internal_http_server_1.listen)(server, options.port);
|
|
105
|
+
}
|
|
106
|
+
exports.runApollo = runApollo;
|
|
107
|
+
function addServerCleanup(disposals, server, log) {
|
|
108
|
+
async function cleanup() {
|
|
109
|
+
for (let i = disposals.length - 1; i >= 0; i--) {
|
|
110
|
+
await disposals[i]().catch(err => log?.error(err));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return server.then(s => {
|
|
114
|
+
return {
|
|
115
|
+
port: s.port,
|
|
116
|
+
close: () => s.close().finally(cleanup)
|
|
117
|
+
};
|
|
118
|
+
}, async (err) => {
|
|
119
|
+
await cleanup();
|
|
120
|
+
throw err;
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
exports.addServerCleanup = addServerCleanup;
|
|
124
|
+
function setupGraphiqlConsole(app) {
|
|
125
|
+
let assets = path_1.default.join(require.resolve('@subsquid/graphiql-console/package.json'), '../build');
|
|
126
|
+
let indexHtml = fs_1.default.readFileSync(path_1.default.join(assets, 'index.html'), 'utf-8')
|
|
127
|
+
.replace(/\/static\//g, 'console/static/')
|
|
128
|
+
.replace('/manifest.json', 'console/manifest.json')
|
|
129
|
+
.replace('${GRAPHQL_API}', 'graphql')
|
|
130
|
+
.replace('${APP_TITLE}', 'Query node playground');
|
|
131
|
+
app.use('/console', express_1.default.static(assets));
|
|
132
|
+
app.use('/graphql', (req, res, next) => {
|
|
133
|
+
if (req.path != '/')
|
|
134
|
+
return next();
|
|
135
|
+
if (req.method != 'GET' && req.method != 'HEAD')
|
|
136
|
+
return next();
|
|
137
|
+
if (req.query['query'])
|
|
138
|
+
return next();
|
|
139
|
+
res.vary('Accept');
|
|
140
|
+
if (!req.accepts('html'))
|
|
141
|
+
return next();
|
|
142
|
+
res.type('html').send(indexHtml);
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
exports.setupGraphiqlConsole = setupGraphiqlConsole;
|
|
146
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Dialect } from "../dialect";
|
|
2
|
+
import { Entity, Model, ObjectPropType, Prop, UnionPropType } from "../model";
|
|
3
|
+
import { AliasSet, JoinSet } from "./util";
|
|
4
|
+
export interface CursorCtx {
|
|
5
|
+
model: Model;
|
|
6
|
+
dialect: Dialect;
|
|
7
|
+
aliases: AliasSet;
|
|
8
|
+
join: JoinSet;
|
|
9
|
+
}
|
|
10
|
+
export interface Cursor {
|
|
11
|
+
output(field: string): string;
|
|
12
|
+
native(field: string): string;
|
|
13
|
+
ref(field: string): string;
|
|
14
|
+
child(field: string): Cursor;
|
|
15
|
+
prop(field: string): Prop;
|
|
16
|
+
}
|
|
17
|
+
export declare class EntityCursor implements Cursor {
|
|
18
|
+
private ctx;
|
|
19
|
+
private entityName;
|
|
20
|
+
readonly entity: Entity;
|
|
21
|
+
readonly table: string;
|
|
22
|
+
readonly tableAlias: string;
|
|
23
|
+
constructor(ctx: CursorCtx, entityName: string, joined?: {
|
|
24
|
+
on: string;
|
|
25
|
+
rhs: string;
|
|
26
|
+
});
|
|
27
|
+
private ident;
|
|
28
|
+
private column;
|
|
29
|
+
private _columnName;
|
|
30
|
+
prop(field: string): Prop;
|
|
31
|
+
output(field: string): string;
|
|
32
|
+
native(field: string): string;
|
|
33
|
+
ref(field: string): string;
|
|
34
|
+
child(field: string): Cursor;
|
|
35
|
+
tsv(queryName: string): string;
|
|
36
|
+
doc(queryName: string): string;
|
|
37
|
+
}
|
|
38
|
+
export declare class ObjectCursor implements Cursor {
|
|
39
|
+
private ctx;
|
|
40
|
+
private prefix;
|
|
41
|
+
private object;
|
|
42
|
+
readonly isUnion: boolean;
|
|
43
|
+
constructor(ctx: CursorCtx, prefix: string, type: ObjectPropType | UnionPropType);
|
|
44
|
+
private json;
|
|
45
|
+
private string;
|
|
46
|
+
prop(field: string): Prop;
|
|
47
|
+
output(field: string): string;
|
|
48
|
+
native(field: string): string;
|
|
49
|
+
ref(field: string): string;
|
|
50
|
+
child(field: string): Cursor;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=cursor.d.ts.map
|