@subsquid/openreader 1.0.2 → 2.1.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 +14 -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 +8 -0
- package/lib/limit.size.d.ts.map +1 -0
- package/lib/limit.size.js +107 -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 +59 -0
- package/lib/main.js.map +1 -0
- package/{dist → lib}/model.d.ts +11 -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} +62 -8
- 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 +527 -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 +42 -0
- package/lib/server.d.ts.map +1 -0
- package/lib/server.js +171 -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/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/{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/lib/test/setup.d.ts +17 -0
- package/lib/test/setup.d.ts.map +1 -0
- package/{dist → lib}/test/setup.js +18 -13
- 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/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/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/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/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 +18 -10
- package/src/context.ts +17 -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 +130 -0
- package/src/main.ts +74 -42
- package/src/{gql/schema.ts → model.schema.ts} +72 -9
- package/src/model.ts +13 -1
- package/src/{orderBy.ts → opencrud/orderBy.ts} +3 -10
- package/src/opencrud/schema.ts +639 -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 +175 -55
- 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/limits.test.ts +163 -0
- package/src/test/setup.ts +16 -11
- 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/execute.ts +53 -0
- package/src/util/lazy-transaction.ts +49 -0
- package/src/util/limit.ts +34 -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 +0 -14
- 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
package/dist/server.js
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
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.listen = exports.serve = void 0;
|
|
7
|
-
const apollo_server_core_1 = require("apollo-server-core");
|
|
8
|
-
const apollo_server_express_1 = require("apollo-server-express");
|
|
9
|
-
const assert_1 = __importDefault(require("assert"));
|
|
10
|
-
const express_1 = __importDefault(require("express"));
|
|
11
|
-
const fs_1 = __importDefault(require("fs"));
|
|
12
|
-
const http_1 = __importDefault(require("http"));
|
|
13
|
-
const path_1 = __importDefault(require("path"));
|
|
14
|
-
const db_1 = require("./db");
|
|
15
|
-
const opencrud_1 = require("./gql/opencrud");
|
|
16
|
-
const resolver_1 = require("./resolver");
|
|
17
|
-
async function serve(options) {
|
|
18
|
-
let { model, db } = options;
|
|
19
|
-
let dialect = options.dialect ?? 'postgres';
|
|
20
|
-
let resolvers = (0, resolver_1.buildResolvers)(model, dialect);
|
|
21
|
-
let typeDefs = (0, opencrud_1.buildServerSchema)(model, dialect);
|
|
22
|
-
let app = (0, express_1.default)();
|
|
23
|
-
let server = http_1.default.createServer(app);
|
|
24
|
-
let apollo = new apollo_server_express_1.ApolloServer({
|
|
25
|
-
typeDefs,
|
|
26
|
-
resolvers,
|
|
27
|
-
context: () => ({ openReaderTransaction: new db_1.PoolTransaction(db) }),
|
|
28
|
-
plugins: [
|
|
29
|
-
{
|
|
30
|
-
async requestDidStart() {
|
|
31
|
-
return {
|
|
32
|
-
willSendResponse(req) {
|
|
33
|
-
return req.context.openReaderTransaction.close();
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
},
|
|
38
|
-
(0, apollo_server_core_1.ApolloServerPluginDrainHttpServer)({ httpServer: server })
|
|
39
|
-
]
|
|
40
|
-
});
|
|
41
|
-
if (options.graphiqlConsole !== false) {
|
|
42
|
-
setupGraphiqlConsole(app);
|
|
43
|
-
}
|
|
44
|
-
await apollo.start();
|
|
45
|
-
apollo.applyMiddleware({ app });
|
|
46
|
-
return listen(apollo, server, options.port);
|
|
47
|
-
}
|
|
48
|
-
exports.serve = serve;
|
|
49
|
-
function listen(apollo, server, port) {
|
|
50
|
-
return new Promise((resolve, reject) => {
|
|
51
|
-
function onerror(err) {
|
|
52
|
-
cleanup();
|
|
53
|
-
reject(err);
|
|
54
|
-
}
|
|
55
|
-
function onlistening() {
|
|
56
|
-
cleanup();
|
|
57
|
-
let address = server.address();
|
|
58
|
-
(0, assert_1.default)(address != null && typeof address == 'object');
|
|
59
|
-
resolve({
|
|
60
|
-
port: address.port,
|
|
61
|
-
stop: () => apollo.stop()
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
function cleanup() {
|
|
65
|
-
server.removeListener('error', onerror);
|
|
66
|
-
server.removeListener('listening', onlistening);
|
|
67
|
-
}
|
|
68
|
-
server.on('error', onerror);
|
|
69
|
-
server.on('listening', onlistening);
|
|
70
|
-
server.listen(port);
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
exports.listen = listen;
|
|
74
|
-
function setupGraphiqlConsole(app) {
|
|
75
|
-
let assets = path_1.default.join(require.resolve('@subsquid/graphiql-console/package.json'), '../build');
|
|
76
|
-
let indexHtml = fs_1.default.readFileSync(path_1.default.join(assets, 'index.html'), 'utf-8')
|
|
77
|
-
.replace(/\/static\//g, 'console/static/')
|
|
78
|
-
.replace('/manifest.json', 'console/manifest.json')
|
|
79
|
-
.replace('${GRAPHQL_API}', 'graphql')
|
|
80
|
-
.replace('${APP_TITLE}', 'Query node playground');
|
|
81
|
-
app.use('/console', express_1.default.static(assets));
|
|
82
|
-
app.use('/graphql', (req, res, next) => {
|
|
83
|
-
if (req.path != '/')
|
|
84
|
-
return next();
|
|
85
|
-
if (req.method != 'GET' && req.method != 'HEAD')
|
|
86
|
-
return next();
|
|
87
|
-
if (req.query['query'])
|
|
88
|
-
return next();
|
|
89
|
-
res.vary('Accept');
|
|
90
|
-
if (!req.accepts('html'))
|
|
91
|
-
return next();
|
|
92
|
-
res.type('html').send(indexHtml);
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
exports.setupGraphiqlConsole = setupGraphiqlConsole;
|
|
96
|
-
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fts.test.js","sourceRoot":"","sources":["../../src/test/fts.test.ts"],"names":[],"mappings":";;AAAA,mCAA2D;AAG3D,SAAS,QAAQ,CAAC,OAAiB;IAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,6CAA6C,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAC1G,CAAC;AAGD,IAAA,mBAAW,GAAE,IAAI,QAAQ,CAAC,kBAAkB,EAAE;IAC1C,IAAA,mBAAW,EAAC;QACR;;;;wDAIgD,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;UACnE;QACF;;;;wDAIgD,QAAQ,CAAC,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;UAC9E;QACF,sFAAsF;QACtF,gHAAgH;QAChH,kFAAkF;QAClF,0GAA0G;QAC1G,kGAAkG;KACrG,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC;;;;;;;;;;;;KAYxB,CAAC,CAAA;IAEF,EAAE,CAAC,gEAAgE,EAAE;QACjE,OAAO,MAAM,CAAC,IAAI,CAAC;;;;;;;;;SASlB,EAAE;YACC,MAAM,EAAE,CAAC;oBACL,IAAI,EAAE,EAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAC;oBACvB,SAAS,EAAE,uCAAuC;iBACrD,CAAC;SACL,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uEAAuE,EAAE;QACxE,OAAO,MAAM,CAAC,IAAI,CAAC;;;;;;;;;SASlB,EAAE;YACC,MAAM,EAAE,CAAC;oBACL,IAAI,EAAE,EAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,oCAAoC,EAAC;oBAC1D,SAAS,EAAE,0DAA0D;iBACxE,CAAC;SACL,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0BAA0B,EAAE;QAC3B,OAAO,MAAM,CAAC,IAAI,CAAC;;;;;;;;;SASlB,EAAE;YACC,MAAM,EAAE;gBACJ,EAAC,IAAI,EAAE,EAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAC,EAAC;gBAC7B,EAAC,IAAI,EAAE,EAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,oCAAoC,EAAC,EAAC;gBAC5D,EAAC,IAAI,EAAE,EAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAC,EAAC;aAC5B;SACJ,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2BAA2B,EAAE;QAC5B,OAAO,MAAM,CAAC,IAAI,CAAC;;;;;;;;;SASlB,EAAE;YACC,MAAM,EAAE;gBACJ,EAAC,IAAI,EAAE,EAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAC,EAAC;gBAC7B,EAAC,IAAI,EAAE,EAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAC,EAAC;aAC5B;SACJ,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
|
package/dist/test/setup.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Client } from "gql-test-client";
|
|
2
|
-
export declare function isCockroach(): boolean;
|
|
3
|
-
export declare const db_config: {
|
|
4
|
-
host: string;
|
|
5
|
-
port: number;
|
|
6
|
-
user: string;
|
|
7
|
-
password: string;
|
|
8
|
-
database: string;
|
|
9
|
-
};
|
|
10
|
-
export declare function databaseInit(sql: string[]): Promise<void>;
|
|
11
|
-
export declare function databaseDelete(): Promise<void>;
|
|
12
|
-
export declare function useDatabase(sql: string[]): void;
|
|
13
|
-
export declare function useServer(schema: string): Client;
|
|
14
|
-
//# sourceMappingURL=setup.d.ts.map
|
package/dist/test/setup.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/test/setup.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAA;AAOtC,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAGD,eAAO,MAAM,SAAS;;;;;;CAQrB,CAAA;AAcD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzD;AAGD,wBAAgB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAK9C;AAGD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAK/C;AAGD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAgBhD"}
|
package/dist/test/setup.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/test/setup.ts"],"names":[],"mappings":";;;AAAA,2DAAqD;AACrD,qDAAsC;AACtC,qCAA6B;AAC7B,2BAAuD;AACvD,0CAAqD;AACrD,sCAAgD;AAGhD,SAAgB,WAAW;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,WAAW,CAAA;AAC7C,CAAC;AAFD,kCAEC;AAGY,QAAA,SAAS,GAAG;IACrB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,QAAQ,CAAC,IAAA,6BAAa,EACxB,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CACzE,CAAC;IACF,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,WAAW;CACxB,CAAA;AAGD,KAAK,UAAU,UAAU,CAAC,KAA4C;IAClE,IAAI,MAAM,GAAG,IAAI,WAAQ,CAAC,iBAAS,CAAC,CAAA;IACpC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAA;IACtB,IAAI;QACA,MAAM,KAAK,CAAC,MAAM,CAAC,CAAA;KACtB;YAAS;QACN,MAAM,MAAM,CAAC,GAAG,EAAE,CAAA;KACrB;AACL,CAAC;AAGD,SAAgB,YAAY,CAAC,GAAa;IACtC,OAAO,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;SAC7B;IACL,CAAC,CAAC,CAAA;AACN,CAAC;AAND,oCAMC;AAGD,SAAgB,cAAc;IAC1B,OAAO,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC7B,MAAM,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACxD,MAAM,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;AACN,CAAC;AALD,wCAKC;AAGD,SAAgB,WAAW,CAAC,GAAa;IACrC,MAAM,CAAC,KAAK,IAAI,EAAE;QACd,MAAM,cAAc,EAAE,CAAA;QACtB,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;AACN,CAAC;AALD,kCAKC;AAGD,SAAgB,SAAS,CAAC,MAAc;IACpC,IAAI,MAAM,GAAG,IAAI,wBAAM,CAAC,aAAa,CAAC,CAAA;IACtC,IAAI,EAAE,GAAG,IAAI,SAAI,CAAC,iBAAS,CAAC,CAAA;IAC5B,IAAI,IAAiC,CAAA;IACrC,MAAM,CAAC,KAAK,IAAI,EAAE;QACd,IAAI,GAAG,MAAM,IAAA,cAAK,EAAC;YACf,EAAE;YACF,KAAK,EAAE,IAAA,mBAAU,EAAC,IAAA,oBAAW,EAAC,IAAA,eAAK,EAAC,MAAM,CAAC,CAAC,CAAC;YAC7C,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU;SACpD,CAAC,CAAA;QACF,MAAM,CAAC,QAAQ,GAAG,oBAAoB,IAAI,CAAC,IAAI,UAAU,CAAA;IAC7D,CAAC,CAAC,CAAA;IACF,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IACzB,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA;IACrB,OAAO,MAAM,CAAA;AACjB,CAAC;AAhBD,8BAgBC"}
|
package/dist/util.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAIA,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE3D;AAGD,wBAAgB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAErD;AAGD,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEvD;AAGD,wBAAgB,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAElD;AAGD,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAEjD;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAEpD;AAGD,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAIlD;AAGD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAEhE"}
|
package/dist/util.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;;;;AAAA,uDAAwE;AACxE,oDAA2B;AAG3B,SAAgB,gBAAgB,CAAC,UAAkB;IAC/C,OAAO,IAAA,sBAAQ,EAAC,IAAA,yBAAW,EAAC,UAAU,CAAC,CAAC,CAAA;AAC5C,CAAC;AAFD,4CAEC;AAGD,SAAgB,QAAQ,CAAC,YAAoB;IACzC,OAAO,IAAA,yBAAW,EAAC,YAAY,CAAC,CAAA;AACpC,CAAC;AAFD,4BAEC;AAGD,SAAgB,UAAU,CAAC,YAAoB;IAC3C,OAAO,IAAA,yBAAW,EAAC,YAAY,CAAC,GAAG,KAAK,CAAA;AAC5C,CAAC;AAFD,gCAEC;AAGD,SAAgB,OAAO,CAAC,UAAkB;IACtC,OAAO,IAAA,yBAAW,EAAC,UAAU,CAAC,CAAA;AAClC,CAAC;AAFD,0BAEC;AAGD,SAAgB,WAAW,CAAI,IAAa;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAC9C,CAAC;AAFD,kCAEC;AAGD,SAAgB,eAAe,CAAC,KAAa;IACzC,OAAO,IAAI,KAAK,CAAC,qBAAqB,KAAK,EAAE,CAAC,CAAA;AAClD,CAAC;AAFD,0CAEC;AAGD,SAAgB,KAAK,CAAC,GAAoB;IACtC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAa,CAAC,CAAA;IAC/B,IAAA,gBAAM,EAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAChC,OAAO,CAAC,CAAA;AACZ,CAAC;AAJD,sBAIC;AAGD,SAAgB,aAAa,CAAC,IAAY,EAAE,KAAa;IACrD,OAAO,IAAI,SAAS,CAAC,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC,CAAA;AACnD,CAAC;AAFD,sCAEC"}
|
package/dist/where.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export declare type WhereOp = '-' | // no operator
|
|
2
|
-
'isNull' | 'eq' | 'not_eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'not_in' | 'contains' | 'not_contains' | 'containsInsensitive' | 'not_containsInsensitive' | 'startsWith' | 'not_startsWith' | 'endsWith' | 'not_endsWith' | 'containsAll' | 'containsAny' | 'containsNone' | 'some' | 'every' | 'none' | 'jsonContains' | 'jsonHasKey';
|
|
3
|
-
export declare function parseWhereField(field: string): {
|
|
4
|
-
op: WhereOp;
|
|
5
|
-
field: string;
|
|
6
|
-
};
|
|
7
|
-
export declare function hasConditions(where?: any): where is any;
|
|
8
|
-
export declare function whereOpToSqlOperator(op: WhereOp): string;
|
|
9
|
-
//# sourceMappingURL=where.d.ts.map
|
package/dist/where.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"where.d.ts","sourceRoot":"","sources":["../src/where.ts"],"names":[],"mappings":"AACA,oBAAY,OAAO,GACf,GAAG,GAAG,cAAc;AACpB,QAAQ,GACR,IAAI,GAAG,QAAQ,GACf,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,IAAI,GAAG,QAAQ,GACf,UAAU,GAAG,cAAc,GAC3B,qBAAqB,GAAG,yBAAyB,GACjD,YAAY,GAAG,gBAAgB,GAC/B,UAAU,GAAG,cAAc,GAC3B,aAAa,GACb,aAAa,GACb,cAAc,GACd,MAAM,GACN,OAAO,GACP,MAAM,GACN,cAAc,GACd,YAAY,CAAA;AAwChB,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAQ3E;AAGD,wBAAgB,aAAa,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,KAAK,IAAI,GAAG,CAsBvD;AAGD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,CAqBxD"}
|
package/dist/where.js
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.whereOpToSqlOperator = exports.hasConditions = exports.parseWhereField = void 0;
|
|
4
|
-
const ENDINGS = [
|
|
5
|
-
'isNull',
|
|
6
|
-
'eq',
|
|
7
|
-
'not_eq',
|
|
8
|
-
'gt',
|
|
9
|
-
'gte',
|
|
10
|
-
'lt',
|
|
11
|
-
'lte',
|
|
12
|
-
'in',
|
|
13
|
-
'not_in',
|
|
14
|
-
'contains',
|
|
15
|
-
'not_contains',
|
|
16
|
-
'containsInsensitive',
|
|
17
|
-
'not_containsInsensitive',
|
|
18
|
-
'startsWith',
|
|
19
|
-
'not_startsWith',
|
|
20
|
-
'endsWith',
|
|
21
|
-
'not_endsWith',
|
|
22
|
-
'containsAll',
|
|
23
|
-
'containsAny',
|
|
24
|
-
'containsNone',
|
|
25
|
-
'some',
|
|
26
|
-
'every',
|
|
27
|
-
'none',
|
|
28
|
-
'jsonContains',
|
|
29
|
-
'jsonHasKey',
|
|
30
|
-
].sort((a, b) => b.length - a.length).map(e => '_' + e);
|
|
31
|
-
function parseEnding(field) {
|
|
32
|
-
for (let i = 0; i < ENDINGS.length; i++) {
|
|
33
|
-
if (field.endsWith(ENDINGS[i]))
|
|
34
|
-
return ENDINGS[i].slice(1);
|
|
35
|
-
}
|
|
36
|
-
return '';
|
|
37
|
-
}
|
|
38
|
-
function parseWhereField(field) {
|
|
39
|
-
let ending = parseEnding(field);
|
|
40
|
-
if (!ending)
|
|
41
|
-
return { op: '-', field };
|
|
42
|
-
let fieldName = field.slice(0, -(ending.length + 1));
|
|
43
|
-
return {
|
|
44
|
-
op: ending,
|
|
45
|
-
field: fieldName
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
exports.parseWhereField = parseWhereField;
|
|
49
|
-
function hasConditions(where) {
|
|
50
|
-
if (where == null)
|
|
51
|
-
return false;
|
|
52
|
-
for (let key in where) {
|
|
53
|
-
switch (key) {
|
|
54
|
-
case 'AND':
|
|
55
|
-
case 'OR':
|
|
56
|
-
break;
|
|
57
|
-
default:
|
|
58
|
-
return true;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
if (Array.isArray(where.AND)) {
|
|
62
|
-
if (where.AND.some(hasConditions))
|
|
63
|
-
return true;
|
|
64
|
-
}
|
|
65
|
-
else if (where.AND && hasConditions(where.AND)) {
|
|
66
|
-
return true;
|
|
67
|
-
}
|
|
68
|
-
if (Array.isArray(where.OR)) {
|
|
69
|
-
if (where.OR.some(hasConditions))
|
|
70
|
-
return true;
|
|
71
|
-
}
|
|
72
|
-
else if (where.OR && hasConditions(where.OR)) {
|
|
73
|
-
return true;
|
|
74
|
-
}
|
|
75
|
-
return false;
|
|
76
|
-
}
|
|
77
|
-
exports.hasConditions = hasConditions;
|
|
78
|
-
function whereOpToSqlOperator(op) {
|
|
79
|
-
switch (op) {
|
|
80
|
-
case 'eq':
|
|
81
|
-
return '=';
|
|
82
|
-
case 'not_eq':
|
|
83
|
-
return '!=';
|
|
84
|
-
case 'gt':
|
|
85
|
-
return '>';
|
|
86
|
-
case 'gte':
|
|
87
|
-
return '>=';
|
|
88
|
-
case 'lt':
|
|
89
|
-
return '<';
|
|
90
|
-
case 'lte':
|
|
91
|
-
return '<=';
|
|
92
|
-
case 'in':
|
|
93
|
-
return 'IN';
|
|
94
|
-
case 'not_in':
|
|
95
|
-
return 'NOT IN';
|
|
96
|
-
default:
|
|
97
|
-
throw new Error(`Operator ${op} doesn't have SQL analog`);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
exports.whereOpToSqlOperator = whereOpToSqlOperator;
|
|
101
|
-
//# sourceMappingURL=where.js.map
|
package/dist/where.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"where.js","sourceRoot":"","sources":["../src/where.ts"],"names":[],"mappings":"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"}
|
package/src/gql/opencrud.ts
DELETED
|
@@ -1,350 +0,0 @@
|
|
|
1
|
-
import {Output} from "@subsquid/util-internal-code-printer"
|
|
2
|
-
import {toCamelCase, toPlural} from "@subsquid/util-naming"
|
|
3
|
-
import assert from "assert"
|
|
4
|
-
import {DocumentNode, parse, print} from "graphql"
|
|
5
|
-
import type {Dialect} from "../dialect"
|
|
6
|
-
import type {Entity, Enum, FTS_Query, Interface, JsonObject, Model, Prop, Union} from "../model"
|
|
7
|
-
import {getOrderByMapping} from "../orderBy"
|
|
8
|
-
import {toQueryListField} from "../util"
|
|
9
|
-
import {customScalars} from "./scalars"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export function generateOpenCrudQueries(model: Model, dialect: Dialect): string {
|
|
13
|
-
let out = new Output()
|
|
14
|
-
|
|
15
|
-
generatePageInfoType()
|
|
16
|
-
|
|
17
|
-
for (let name in model) {
|
|
18
|
-
let item = model[name]
|
|
19
|
-
switch(item.kind) {
|
|
20
|
-
case 'entity':
|
|
21
|
-
generateOrderByInput(name)
|
|
22
|
-
generateWhereUniqueInput(name)
|
|
23
|
-
generateWhereInput(name, item)
|
|
24
|
-
generateObjectType(name, item)
|
|
25
|
-
generateEntityConnection(name)
|
|
26
|
-
break
|
|
27
|
-
case 'object':
|
|
28
|
-
if (hasFilters(item)) {
|
|
29
|
-
generateWhereInput(name, item)
|
|
30
|
-
}
|
|
31
|
-
generateObjectType(name, item)
|
|
32
|
-
break
|
|
33
|
-
case 'interface':
|
|
34
|
-
generateObjectType(name, item)
|
|
35
|
-
break
|
|
36
|
-
case 'union':
|
|
37
|
-
generateUnionWhereInput(name, item)
|
|
38
|
-
generateUnionType(name, item)
|
|
39
|
-
break
|
|
40
|
-
case 'enum':
|
|
41
|
-
generateEnumType(name, item)
|
|
42
|
-
break
|
|
43
|
-
case 'fts':
|
|
44
|
-
assert(dialect == 'postgres', `Full-text search queries are not supported by ${dialect}`)
|
|
45
|
-
generateFtsTypes(name, item)
|
|
46
|
-
break
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
out.block('type Query', () => {
|
|
51
|
-
for (let name in model) {
|
|
52
|
-
let item = model[name]
|
|
53
|
-
if (item.kind == 'entity') {
|
|
54
|
-
out.line(`${toCamelCase(name)}ById(id: ID!): ${name}`)
|
|
55
|
-
out.line(`${toCamelCase(name)}ByUniqueInput(where: ${name}WhereUniqueInput!): ${name} @deprecated(reason: "Use \`${toCamelCase(name)}ById\`")`)
|
|
56
|
-
out.line(`${toQueryListField(name)}${manyArguments(name)}: [${name}!]!`)
|
|
57
|
-
out.line(`${toQueryListField(name)}Connection${connectionArguments(name)}: ${toPlural(name)}Connection!`)
|
|
58
|
-
}
|
|
59
|
-
if (item.kind == 'fts') {
|
|
60
|
-
generateFtsQuery(name, item)
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
})
|
|
64
|
-
|
|
65
|
-
function generateObjectType(name: string, object: Entity | JsonObject | Interface): void {
|
|
66
|
-
let head: string
|
|
67
|
-
if (object.kind == 'interface') {
|
|
68
|
-
head = `interface ${name}`
|
|
69
|
-
} else {
|
|
70
|
-
head = `type ${name}`
|
|
71
|
-
if (object.interfaces?.length) {
|
|
72
|
-
head += ` implements ${object.interfaces.join(' & ')}`
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
generateDescription(object.description)
|
|
76
|
-
out.block(head, () => {
|
|
77
|
-
for (let key in object.properties) {
|
|
78
|
-
let prop = object.properties[key]
|
|
79
|
-
let gqlType = renderPropType(prop)
|
|
80
|
-
generateDescription(prop.description)
|
|
81
|
-
if (prop.type.kind == 'list-lookup') {
|
|
82
|
-
out.line(`${key}${manyArguments(prop.type.entity)}: ${gqlType}`)
|
|
83
|
-
} else {
|
|
84
|
-
out.line(`${key}: ${gqlType}`)
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
})
|
|
88
|
-
out.line()
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
function renderPropType(prop: Prop): string {
|
|
92
|
-
switch(prop.type.kind) {
|
|
93
|
-
case "list":
|
|
94
|
-
return `[${renderPropType(prop.type.item)}]${prop.nullable ? '' : '!'}`
|
|
95
|
-
case 'fk':
|
|
96
|
-
return `${prop.type.foreignEntity}${prop.nullable ? '' : '!'}`
|
|
97
|
-
case 'lookup':
|
|
98
|
-
return prop.type.entity
|
|
99
|
-
case 'list-lookup':
|
|
100
|
-
return `[${prop.type.entity}!]!`
|
|
101
|
-
default:
|
|
102
|
-
return prop.type.name + (prop.nullable ? '' : '!')
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
function manyArguments(entityName: string): string {
|
|
107
|
-
return `(where: ${entityName}WhereInput orderBy: [${entityName}OrderByInput] offset: Int limit: Int)`
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
function connectionArguments(entityName: string): string {
|
|
111
|
-
return `(orderBy: [${entityName}OrderByInput!]! after: String first: Int where: ${entityName}WhereInput)`
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
function generateOrderByInput(entityName: string): void {
|
|
115
|
-
out.block(`enum ${entityName}OrderByInput`, () => {
|
|
116
|
-
let mapping = getOrderByMapping(model, entityName)
|
|
117
|
-
for (let key of mapping.keys()) {
|
|
118
|
-
out.line(key)
|
|
119
|
-
}
|
|
120
|
-
})
|
|
121
|
-
out.line()
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
function generateWhereUniqueInput(entityName: string): void {
|
|
125
|
-
out.block(`input ${entityName}WhereUniqueInput`, () => {
|
|
126
|
-
out.line('id: ID!')
|
|
127
|
-
})
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
function generateWhereInput(name: string, object: Entity | JsonObject): void {
|
|
131
|
-
out.block(`input ${name}WhereInput`, () => {
|
|
132
|
-
generatePropsFilters(object.properties)
|
|
133
|
-
if (object.kind == 'entity') {
|
|
134
|
-
out.line(`AND: [${name}WhereInput!]`)
|
|
135
|
-
out.line(`OR: [${name}WhereInput!]`)
|
|
136
|
-
}
|
|
137
|
-
})
|
|
138
|
-
out.line()
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
function generatePropsFilters(props: Record<string, Prop>): void {
|
|
142
|
-
for (let key in props) {
|
|
143
|
-
let prop = props[key]
|
|
144
|
-
switch(prop.type.kind) {
|
|
145
|
-
case 'scalar':
|
|
146
|
-
case 'enum':
|
|
147
|
-
generateIsNullFilter(key, prop)
|
|
148
|
-
generateScalarFilters(key, prop.type.name)
|
|
149
|
-
break
|
|
150
|
-
case 'list':
|
|
151
|
-
generateIsNullFilter(key, prop)
|
|
152
|
-
if (prop.type.item.type.kind == 'scalar' || prop.type.item.type.kind == 'enum') {
|
|
153
|
-
let item = prop.type.item.type.name
|
|
154
|
-
out.line(`${key}_containsAll: [${item}!]`)
|
|
155
|
-
out.line(`${key}_containsAny: [${item}!]`)
|
|
156
|
-
out.line(`${key}_containsNone: [${item}!]`)
|
|
157
|
-
}
|
|
158
|
-
break
|
|
159
|
-
case 'object':
|
|
160
|
-
generateIsNullFilter(key, prop)
|
|
161
|
-
if (hasFilters(getObject(prop.type.name))) {
|
|
162
|
-
out.line(`${key}: ${prop.type.name}WhereInput`)
|
|
163
|
-
}
|
|
164
|
-
break
|
|
165
|
-
case 'union':
|
|
166
|
-
generateIsNullFilter(key, prop)
|
|
167
|
-
out.line(`${key}: ${prop.type.name}WhereInput`)
|
|
168
|
-
break
|
|
169
|
-
case 'fk':
|
|
170
|
-
generateIsNullFilter(key, prop)
|
|
171
|
-
out.line(`${key}: ${prop.type.foreignEntity}WhereInput`)
|
|
172
|
-
break
|
|
173
|
-
case 'lookup':
|
|
174
|
-
out.line(`${key}: ${prop.type.entity}WhereInput`)
|
|
175
|
-
break
|
|
176
|
-
case 'list-lookup':
|
|
177
|
-
out.line(`${key}_every: ${prop.type.entity}WhereInput`)
|
|
178
|
-
out.line(`${key}_some: ${prop.type.entity}WhereInput`)
|
|
179
|
-
out.line(`${key}_none: ${prop.type.entity}WhereInput`)
|
|
180
|
-
break
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
function generateIsNullFilter(key: string, prop: Prop): void {
|
|
186
|
-
if (!prop.nullable) return
|
|
187
|
-
out.line(`${key}_isNull: Boolean`)
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
function hasFilters(obj: JsonObject): boolean {
|
|
191
|
-
for (let key in obj.properties) {
|
|
192
|
-
let propType = obj.properties[key].type
|
|
193
|
-
switch(propType.kind) {
|
|
194
|
-
case 'scalar':
|
|
195
|
-
case 'enum':
|
|
196
|
-
case 'union':
|
|
197
|
-
return true
|
|
198
|
-
case 'object': {
|
|
199
|
-
let ref = getObject(propType.name)
|
|
200
|
-
if (ref !== obj && hasFilters(ref)) {
|
|
201
|
-
return true
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
return false
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
function getObject(name: string): JsonObject {
|
|
210
|
-
let obj = model[name]
|
|
211
|
-
assert(obj.kind == 'object')
|
|
212
|
-
return obj
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
function generateUnionWhereInput(name: string, union: Union): void {
|
|
216
|
-
out.block(`input ${name}WhereInput`, () => {
|
|
217
|
-
// TODO: unify and use enum
|
|
218
|
-
out.line('isTypeOf_eq: String')
|
|
219
|
-
out.line('isTypeOf_not_eq: String')
|
|
220
|
-
out.line('isTypeOf_in: [String!]')
|
|
221
|
-
out.line('isTypeOf_not_in: [String!]')
|
|
222
|
-
|
|
223
|
-
let props: Record<string, Prop> = {}
|
|
224
|
-
union.variants.forEach(variant => {
|
|
225
|
-
let obj = getObject(variant)
|
|
226
|
-
Object.assign(props, obj.properties)
|
|
227
|
-
})
|
|
228
|
-
|
|
229
|
-
generatePropsFilters(props)
|
|
230
|
-
})
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
function generateScalarFilters(fieldName: string, graphqlType: string): void {
|
|
234
|
-
out.line(`${fieldName}_eq: ${graphqlType}`)
|
|
235
|
-
out.line(`${fieldName}_not_eq: ${graphqlType}`)
|
|
236
|
-
|
|
237
|
-
switch(graphqlType) {
|
|
238
|
-
case 'ID':
|
|
239
|
-
case 'String':
|
|
240
|
-
case 'Int':
|
|
241
|
-
case 'Float':
|
|
242
|
-
case 'DateTime':
|
|
243
|
-
case 'BigInt':
|
|
244
|
-
out.line(`${fieldName}_gt: ${graphqlType}`)
|
|
245
|
-
out.line(`${fieldName}_gte: ${graphqlType}`)
|
|
246
|
-
out.line(`${fieldName}_lt: ${graphqlType}`)
|
|
247
|
-
out.line(`${fieldName}_lte: ${graphqlType}`)
|
|
248
|
-
out.line(`${fieldName}_in: [${graphqlType}!]`)
|
|
249
|
-
out.line(`${fieldName}_not_in: [${graphqlType}!]`)
|
|
250
|
-
break
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
if (graphqlType == 'String' || graphqlType == 'ID') {
|
|
254
|
-
out.line(`${fieldName}_contains: ${graphqlType}`)
|
|
255
|
-
out.line(`${fieldName}_not_contains: ${graphqlType}`)
|
|
256
|
-
out.line(`${fieldName}_containsInsensitive: ${graphqlType}`)
|
|
257
|
-
out.line(`${fieldName}_not_containsInsensitive: ${graphqlType}`)
|
|
258
|
-
out.line(`${fieldName}_startsWith: ${graphqlType}`)
|
|
259
|
-
out.line(`${fieldName}_not_startsWith: ${graphqlType}`)
|
|
260
|
-
out.line(`${fieldName}_endsWith: ${graphqlType}`)
|
|
261
|
-
out.line(`${fieldName}_not_endsWith: ${graphqlType}`)
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
if (model[graphqlType]?.kind == 'enum') {
|
|
265
|
-
out.line(`${fieldName}_in: [${graphqlType}!]`)
|
|
266
|
-
out.line(`${fieldName}_not_in: [${graphqlType}!]`)
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
if (graphqlType == 'JSON') {
|
|
270
|
-
out.line(`${fieldName}_jsonContains: ${graphqlType}`)
|
|
271
|
-
out.line(`${fieldName}_jsonHasKey: ${graphqlType}`)
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
function generateUnionType(name: string, union: Union) {
|
|
276
|
-
generateDescription(union.description)
|
|
277
|
-
out.line(`union ${name} = ${union.variants.join(' | ')}`)
|
|
278
|
-
out.line()
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
function generateEnumType(name: string, e: Enum): void {
|
|
282
|
-
generateDescription(e.description)
|
|
283
|
-
out.block(`enum ${name}`, () => {
|
|
284
|
-
for (let key in e.values) {
|
|
285
|
-
out.line(key)
|
|
286
|
-
}
|
|
287
|
-
})
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
function generatePageInfoType(): void {
|
|
291
|
-
out.block(`type PageInfo`, () => {
|
|
292
|
-
out.line('hasNextPage: Boolean!')
|
|
293
|
-
out.line('hasPreviousPage: Boolean!')
|
|
294
|
-
out.line('startCursor: String!')
|
|
295
|
-
out.line('endCursor: String!')
|
|
296
|
-
})
|
|
297
|
-
out.line()
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
function generateEntityConnection(name: string): void {
|
|
301
|
-
out.block(`type ${name}Edge`, () => {
|
|
302
|
-
out.line(`node: ${name}!`)
|
|
303
|
-
out.line(`cursor: String!`)
|
|
304
|
-
})
|
|
305
|
-
out.line()
|
|
306
|
-
out.block(`type ${toPlural(name)}Connection`, () => {
|
|
307
|
-
out.line(`edges: [${name}Edge!]!`)
|
|
308
|
-
out.line(`pageInfo: PageInfo!`)
|
|
309
|
-
out.line(`totalCount: Int!`)
|
|
310
|
-
})
|
|
311
|
-
out.line()
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
function generateFtsTypes(name: string, query: FTS_Query): void {
|
|
315
|
-
let itemType = name + '_Item'
|
|
316
|
-
out.line(`union ${itemType} = ${query.sources.map(s => s.entity).join(' | ')}`)
|
|
317
|
-
out.line()
|
|
318
|
-
out.block(`type ${name}_Output`, () => {
|
|
319
|
-
out.line(`item: ${itemType}!`)
|
|
320
|
-
out.line(`rank: Float!`)
|
|
321
|
-
out.line(`highlight: String!`)
|
|
322
|
-
})
|
|
323
|
-
out.line()
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
function generateFtsQuery(name: string, query: FTS_Query): void {
|
|
327
|
-
let where = query.sources.map(src => {
|
|
328
|
-
return `where${src.entity}: ${src.entity}WhereInput`
|
|
329
|
-
})
|
|
330
|
-
out.line(`${name}(text: String! ${where.join(' ')} limit: Int offset: Int): [${name}_Output!]!`)
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
function generateDescription(description?: string): void {
|
|
334
|
-
if (description) {
|
|
335
|
-
out.line(print({
|
|
336
|
-
kind: 'StringValue',
|
|
337
|
-
value: description
|
|
338
|
-
}))
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
return out.toString()
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
export function buildServerSchema(model: Model, dialect: Dialect): DocumentNode {
|
|
347
|
-
let scalars = ['ID'].concat(Object.keys(customScalars)).map(name => 'scalar ' + name).join('\n')
|
|
348
|
-
let queries = generateOpenCrudQueries(model, dialect)
|
|
349
|
-
return parse(scalars + '\n\n' + queries)
|
|
350
|
-
}
|