@subsquid/openreader 0.0.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -15
- package/bin/main.js +2 -0
- package/dist/db.d.ts +27 -0
- package/dist/db.js +69 -0
- package/dist/db.js.map +1 -0
- package/dist/gql/opencrud.js +19 -14
- package/dist/gql/opencrud.js.map +1 -1
- package/dist/gql/schema.d.ts +2 -0
- package/dist/gql/schema.js +55 -24
- package/dist/gql/schema.js.map +1 -1
- package/dist/main.d.ts +1 -3
- package/dist/main.js +9 -63
- package/dist/main.js.map +1 -1
- package/dist/model.d.ts +12 -3
- package/dist/model.tools.d.ts +2 -0
- package/dist/model.tools.js +51 -4
- package/dist/model.tools.js.map +1 -1
- package/dist/orderBy.js +5 -0
- package/dist/orderBy.js.map +1 -1
- package/dist/queryBuilder.d.ts +6 -5
- package/dist/queryBuilder.js +86 -69
- package/dist/queryBuilder.js.map +1 -1
- package/dist/requestedFields.js +11 -4
- package/dist/requestedFields.js.map +1 -1
- package/dist/resolver.d.ts +3 -4
- package/dist/resolver.js +37 -21
- package/dist/resolver.js.map +1 -1
- package/dist/scalars.d.ts +19 -17
- package/dist/scalars.js +45 -55
- package/dist/scalars.js.map +1 -1
- package/dist/server.d.ts +11 -17
- package/dist/server.js +73 -97
- package/dist/server.js.map +1 -1
- package/dist/tools.d.ts +2 -0
- package/dist/tools.js +51 -0
- package/dist/tools.js.map +1 -0
- package/dist/util.d.ts +0 -12
- package/dist/util.js +6 -56
- package/dist/util.js.map +1 -1
- package/package.json +28 -19
package/dist/scalars.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scalars.js","sourceRoot":"","sources":["../src/scalars.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"scalars.js","sourceRoot":"","sources":["../src/scalars.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -1,25 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { ApolloServer } from "apollo-server-express";
|
|
3
3
|
import express from "express";
|
|
4
|
-
import
|
|
5
|
-
import { Pool } from "pg";
|
|
6
|
-
import {
|
|
4
|
+
import http from "http";
|
|
5
|
+
import type { Pool } from "pg";
|
|
6
|
+
import type { Model } from "./model";
|
|
7
7
|
export interface ListeningServer {
|
|
8
8
|
readonly port: number;
|
|
9
9
|
stop(): Promise<void>;
|
|
10
10
|
}
|
|
11
11
|
export interface ServerOptions {
|
|
12
|
-
|
|
12
|
+
model: Model;
|
|
13
13
|
db: Pool;
|
|
14
|
+
port: number | string;
|
|
15
|
+
graphiqlConsole?: boolean;
|
|
14
16
|
}
|
|
15
|
-
export declare
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
constructor(options: ServerOptions);
|
|
19
|
-
buildTypeDefs(): DocumentNode;
|
|
20
|
-
buildResolvers(): IResolvers;
|
|
21
|
-
buildContext(): () => Promise<ResolverContext>;
|
|
22
|
-
buildPlugins(): PluginDefinition[];
|
|
23
|
-
applyConsole(app: express.Application): void;
|
|
24
|
-
listen(port?: number | string): Promise<ListeningServer>;
|
|
25
|
-
}
|
|
17
|
+
export declare function serve(options: ServerOptions): Promise<ListeningServer>;
|
|
18
|
+
export declare function listen(apollo: ApolloServer, server: http.Server, port: number | string): Promise<ListeningServer>;
|
|
19
|
+
export declare function setupGraphiqlConsole(app: express.Application): void;
|
package/dist/server.js
CHANGED
|
@@ -3,7 +3,7 @@ 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.
|
|
6
|
+
exports.setupGraphiqlConsole = exports.listen = exports.serve = void 0;
|
|
7
7
|
const apollo_server_core_1 = require("apollo-server-core");
|
|
8
8
|
const apollo_server_express_1 = require("apollo-server-express");
|
|
9
9
|
const assert_1 = __importDefault(require("assert"));
|
|
@@ -11,109 +11,85 @@ const express_1 = __importDefault(require("express"));
|
|
|
11
11
|
const fs_1 = __importDefault(require("fs"));
|
|
12
12
|
const http_1 = __importDefault(require("http"));
|
|
13
13
|
const path_1 = __importDefault(require("path"));
|
|
14
|
+
const db_1 = require("./db");
|
|
14
15
|
const opencrud_1 = require("./gql/opencrud");
|
|
15
|
-
const schema_1 = require("./gql/schema");
|
|
16
16
|
const resolver_1 = require("./resolver");
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return async () => {
|
|
30
|
-
let db = await this.db.connect();
|
|
31
|
-
try {
|
|
32
|
-
await db.query('START TRANSACTION ISOLATION LEVEL SERIALIZABLE READ ONLY');
|
|
33
|
-
}
|
|
34
|
-
catch (e) {
|
|
35
|
-
db.release();
|
|
36
|
-
throw e;
|
|
37
|
-
}
|
|
38
|
-
return { db, model: this.model };
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
buildPlugins() {
|
|
42
|
-
return [{
|
|
17
|
+
async function serve(options) {
|
|
18
|
+
let { model, db } = options;
|
|
19
|
+
let resolvers = (0, resolver_1.buildResolvers)(model);
|
|
20
|
+
let typeDefs = (0, opencrud_1.buildServerSchema)(model);
|
|
21
|
+
let app = (0, express_1.default)();
|
|
22
|
+
let server = http_1.default.createServer(app);
|
|
23
|
+
let apollo = new apollo_server_express_1.ApolloServer({
|
|
24
|
+
typeDefs,
|
|
25
|
+
resolvers,
|
|
26
|
+
context: () => ({ openReaderTransaction: new db_1.PoolTransaction(db) }),
|
|
27
|
+
plugins: [
|
|
28
|
+
{
|
|
43
29
|
async requestDidStart() {
|
|
44
30
|
return {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
try {
|
|
48
|
-
await ctx.db.query('COMMIT');
|
|
49
|
-
}
|
|
50
|
-
finally {
|
|
51
|
-
ctx.db.release();
|
|
52
|
-
}
|
|
31
|
+
willSendResponse(req) {
|
|
32
|
+
return req.context.openReaderTransaction.close();
|
|
53
33
|
}
|
|
54
34
|
};
|
|
55
35
|
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
.replace('/manifest.json', 'console/manifest.json')
|
|
63
|
-
.replace('${GRAPHQL_API}', 'graphql')
|
|
64
|
-
.replace('${APP_TITLE}', 'Query node playground');
|
|
65
|
-
app.use('/console', express_1.default.static(assets));
|
|
66
|
-
app.use('/graphql', (req, res, next) => {
|
|
67
|
-
if (req.path != '/')
|
|
68
|
-
return next();
|
|
69
|
-
if (req.method != 'GET' && req.method != 'HEAD')
|
|
70
|
-
return next();
|
|
71
|
-
if (req.query['query'])
|
|
72
|
-
return next();
|
|
73
|
-
res.vary('Accept');
|
|
74
|
-
if (!req.accepts('html'))
|
|
75
|
-
return next();
|
|
76
|
-
res.type('html').send(indexHtml);
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
async listen(port) {
|
|
80
|
-
let app = (0, express_1.default)();
|
|
81
|
-
let server = http_1.default.createServer(app);
|
|
82
|
-
let apollo = new apollo_server_express_1.ApolloServer({
|
|
83
|
-
typeDefs: this.buildTypeDefs(),
|
|
84
|
-
resolvers: this.buildResolvers(),
|
|
85
|
-
context: this.buildContext(),
|
|
86
|
-
plugins: [
|
|
87
|
-
...this.buildPlugins(),
|
|
88
|
-
(0, apollo_server_core_1.ApolloServerPluginDrainHttpServer)({ httpServer: server })
|
|
89
|
-
]
|
|
90
|
-
});
|
|
91
|
-
await apollo.start();
|
|
92
|
-
this.applyConsole(app);
|
|
93
|
-
apollo.applyMiddleware({ app });
|
|
94
|
-
return new Promise((resolve, reject) => {
|
|
95
|
-
function onerror(err) {
|
|
96
|
-
cleanup();
|
|
97
|
-
reject(err);
|
|
98
|
-
}
|
|
99
|
-
function onlistening() {
|
|
100
|
-
cleanup();
|
|
101
|
-
let address = server.address();
|
|
102
|
-
(0, assert_1.default)(address != null && typeof address == 'object');
|
|
103
|
-
resolve({
|
|
104
|
-
port: address.port,
|
|
105
|
-
stop: () => apollo.stop()
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
function cleanup() {
|
|
109
|
-
server.removeListener('error', onerror);
|
|
110
|
-
server.removeListener('listening', onlistening);
|
|
111
|
-
}
|
|
112
|
-
server.on('error', onerror);
|
|
113
|
-
server.on('listening', onlistening);
|
|
114
|
-
server.listen(port);
|
|
115
|
-
});
|
|
36
|
+
},
|
|
37
|
+
(0, apollo_server_core_1.ApolloServerPluginDrainHttpServer)({ httpServer: server })
|
|
38
|
+
]
|
|
39
|
+
});
|
|
40
|
+
if (options.graphiqlConsole !== false) {
|
|
41
|
+
setupGraphiqlConsole(app);
|
|
116
42
|
}
|
|
43
|
+
await apollo.start();
|
|
44
|
+
apollo.applyMiddleware({ app });
|
|
45
|
+
return listen(apollo, server, options.port);
|
|
46
|
+
}
|
|
47
|
+
exports.serve = serve;
|
|
48
|
+
function listen(apollo, server, port) {
|
|
49
|
+
return new Promise((resolve, reject) => {
|
|
50
|
+
function onerror(err) {
|
|
51
|
+
cleanup();
|
|
52
|
+
reject(err);
|
|
53
|
+
}
|
|
54
|
+
function onlistening() {
|
|
55
|
+
cleanup();
|
|
56
|
+
let address = server.address();
|
|
57
|
+
(0, assert_1.default)(address != null && typeof address == 'object');
|
|
58
|
+
resolve({
|
|
59
|
+
port: address.port,
|
|
60
|
+
stop: () => apollo.stop()
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
function cleanup() {
|
|
64
|
+
server.removeListener('error', onerror);
|
|
65
|
+
server.removeListener('listening', onlistening);
|
|
66
|
+
}
|
|
67
|
+
server.on('error', onerror);
|
|
68
|
+
server.on('listening', onlistening);
|
|
69
|
+
server.listen(port);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
exports.listen = listen;
|
|
73
|
+
function setupGraphiqlConsole(app) {
|
|
74
|
+
let assets = path_1.default.join(require.resolve('@subsquid/graphiql-console/package.json'), '../build');
|
|
75
|
+
let indexHtml = fs_1.default.readFileSync(path_1.default.join(assets, 'index.html'), 'utf-8')
|
|
76
|
+
.replace(/\/static\//g, 'console/static/')
|
|
77
|
+
.replace('/manifest.json', 'console/manifest.json')
|
|
78
|
+
.replace('${GRAPHQL_API}', 'graphql')
|
|
79
|
+
.replace('${APP_TITLE}', 'Query node playground');
|
|
80
|
+
app.use('/console', express_1.default.static(assets));
|
|
81
|
+
app.use('/graphql', (req, res, next) => {
|
|
82
|
+
if (req.path != '/')
|
|
83
|
+
return next();
|
|
84
|
+
if (req.method != 'GET' && req.method != 'HEAD')
|
|
85
|
+
return next();
|
|
86
|
+
if (req.query['query'])
|
|
87
|
+
return next();
|
|
88
|
+
res.vary('Accept');
|
|
89
|
+
if (!req.accepts('html'))
|
|
90
|
+
return next();
|
|
91
|
+
res.type('html').send(indexHtml);
|
|
92
|
+
});
|
|
117
93
|
}
|
|
118
|
-
exports.
|
|
94
|
+
exports.setupGraphiqlConsole = setupGraphiqlConsole;
|
|
119
95
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts
ADDED
package/dist/tools.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.loadModel = void 0;
|
|
23
|
+
const merge_1 = require("@graphql-tools/merge");
|
|
24
|
+
const fs = __importStar(require("fs"));
|
|
25
|
+
const path = __importStar(require("path"));
|
|
26
|
+
const graphql_1 = require("graphql");
|
|
27
|
+
const schema_1 = require("./gql/schema");
|
|
28
|
+
function loadModel(schemaFile) {
|
|
29
|
+
let files = [];
|
|
30
|
+
if (fs.statSync(schemaFile).isDirectory()) {
|
|
31
|
+
fs.readdirSync(schemaFile, { withFileTypes: true }).forEach(item => {
|
|
32
|
+
if (item.isFile() && (item.name.endsWith('.graphql') || item.name.endsWith('.gql'))) {
|
|
33
|
+
files.push(path.join(schemaFile, item.name));
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
files.push(schemaFile);
|
|
39
|
+
}
|
|
40
|
+
let docs = files.map(f => {
|
|
41
|
+
let src = new graphql_1.Source(fs.readFileSync(f, 'utf-8'), f);
|
|
42
|
+
return (0, graphql_1.parse)(src);
|
|
43
|
+
});
|
|
44
|
+
if (docs.length == 0)
|
|
45
|
+
return {};
|
|
46
|
+
let doc = docs.length == 1 ? docs[0] : (0, merge_1.mergeTypeDefs)(docs);
|
|
47
|
+
let schema = (0, schema_1.buildSchema)(doc);
|
|
48
|
+
return (0, schema_1.buildModel)(schema);
|
|
49
|
+
}
|
|
50
|
+
exports.loadModel = loadModel;
|
|
51
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkD;AAClD,uCAAwB;AACxB,2CAA4B;AAC5B,qCAAqC;AACrC,yCAAoD;AAIpD,SAAgB,SAAS,CAAC,UAAkB;IACxC,IAAI,KAAK,GAAa,EAAE,CAAA;IACxB,IAAI,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE;QACvC,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC7D,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE;gBACjF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;aAC/C;QACL,CAAC,CAAC,CAAA;KACL;SAAM;QACH,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;KACzB;IAED,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACrB,IAAI,GAAG,GAAG,IAAI,gBAAM,CAChB,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,EAC3B,CAAC,CACJ,CAAA;QACD,OAAO,IAAA,eAAK,EAAC,GAAG,CAAC,CAAA;IACrB,CAAC,CAAC,CAAA;IAEF,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IAC/B,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,IAAI,CAAC,CAAA;IAC1D,IAAI,MAAM,GAAG,IAAA,oBAAW,EAAC,GAAG,CAAC,CAAA;IAC7B,OAAO,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAA;AAC7B,CAAC;AAxBD,8BAwBC"}
|
package/dist/util.d.ts
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
import { pluralize } from "inflected";
|
|
2
|
-
export { pluralize };
|
|
3
|
-
export declare function snakeCase(name: string): string;
|
|
4
|
-
export declare function lowerCaseFirst(s: string): string;
|
|
5
|
-
export declare function upperCaseFirst(s: string): string;
|
|
6
1
|
export declare function toQueryListField(entityName: string): string;
|
|
7
2
|
export declare function toColumn(gqlFieldName: string): string;
|
|
8
3
|
export declare function toFkColumn(gqlFieldName: string): string;
|
|
@@ -10,10 +5,3 @@ export declare function toTable(entityName: string): string;
|
|
|
10
5
|
export declare function ensureArray<T>(item: T | T[]): T[];
|
|
11
6
|
export declare function unsupportedCase(value: string): Error;
|
|
12
7
|
export declare function toInt(val: number | string): number;
|
|
13
|
-
export declare class Output {
|
|
14
|
-
private out;
|
|
15
|
-
private indent;
|
|
16
|
-
line(s?: string): void;
|
|
17
|
-
block(start: string, cb: () => void): void;
|
|
18
|
-
toString(): string;
|
|
19
|
-
}
|
package/dist/util.js
CHANGED
|
@@ -3,46 +3,23 @@ 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.
|
|
6
|
+
exports.toInt = exports.unsupportedCase = exports.ensureArray = exports.toTable = exports.toFkColumn = exports.toColumn = exports.toQueryListField = void 0;
|
|
7
|
+
const util_1 = require("@subsquid/util");
|
|
7
8
|
const assert_1 = __importDefault(require("assert"));
|
|
8
|
-
const inflected_1 = require("inflected");
|
|
9
|
-
Object.defineProperty(exports, "pluralize", { enumerable: true, get: function () { return inflected_1.pluralize; } });
|
|
10
|
-
function snakeCase(name) {
|
|
11
|
-
return (0, inflected_1.underscore)(name);
|
|
12
|
-
}
|
|
13
|
-
exports.snakeCase = snakeCase;
|
|
14
|
-
function lowerCaseFirst(s) {
|
|
15
|
-
if (s) {
|
|
16
|
-
return s[0].toLowerCase() + s.slice(1);
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
return s;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
exports.lowerCaseFirst = lowerCaseFirst;
|
|
23
|
-
function upperCaseFirst(s) {
|
|
24
|
-
if (s) {
|
|
25
|
-
return s[0].toUpperCase() + s.slice(1);
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
return s;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
exports.upperCaseFirst = upperCaseFirst;
|
|
32
9
|
function toQueryListField(entityName) {
|
|
33
|
-
return (0,
|
|
10
|
+
return (0, util_1.toPlural)((0, util_1.toCamelCase)(entityName));
|
|
34
11
|
}
|
|
35
12
|
exports.toQueryListField = toQueryListField;
|
|
36
13
|
function toColumn(gqlFieldName) {
|
|
37
|
-
return
|
|
14
|
+
return (0, util_1.toSnakeCase)(gqlFieldName);
|
|
38
15
|
}
|
|
39
16
|
exports.toColumn = toColumn;
|
|
40
17
|
function toFkColumn(gqlFieldName) {
|
|
41
|
-
return
|
|
18
|
+
return (0, util_1.toSnakeCase)(gqlFieldName) + '_id';
|
|
42
19
|
}
|
|
43
20
|
exports.toFkColumn = toFkColumn;
|
|
44
21
|
function toTable(entityName) {
|
|
45
|
-
return
|
|
22
|
+
return (0, util_1.toSnakeCase)(entityName);
|
|
46
23
|
}
|
|
47
24
|
exports.toTable = toTable;
|
|
48
25
|
function ensureArray(item) {
|
|
@@ -59,31 +36,4 @@ function toInt(val) {
|
|
|
59
36
|
return i;
|
|
60
37
|
}
|
|
61
38
|
exports.toInt = toInt;
|
|
62
|
-
class Output {
|
|
63
|
-
constructor() {
|
|
64
|
-
this.out = '';
|
|
65
|
-
this.indent = '';
|
|
66
|
-
}
|
|
67
|
-
line(s) {
|
|
68
|
-
if (s) {
|
|
69
|
-
this.out += this.indent + s;
|
|
70
|
-
}
|
|
71
|
-
this.out += '\n';
|
|
72
|
-
}
|
|
73
|
-
block(start, cb) {
|
|
74
|
-
this.line(start + ' {');
|
|
75
|
-
this.indent += ' ';
|
|
76
|
-
try {
|
|
77
|
-
cb();
|
|
78
|
-
}
|
|
79
|
-
finally {
|
|
80
|
-
this.indent = this.indent.slice(0, this.indent.length - 2);
|
|
81
|
-
}
|
|
82
|
-
this.line('}');
|
|
83
|
-
}
|
|
84
|
-
toString() {
|
|
85
|
-
return this.out;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
exports.Output = Output;
|
|
89
39
|
//# sourceMappingURL=util.js.map
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAiE;AACjE,oDAA2B;AAG3B,SAAgB,gBAAgB,CAAC,UAAkB;IAC/C,OAAO,IAAA,eAAQ,EAAC,IAAA,kBAAW,EAAC,UAAU,CAAC,CAAC,CAAA;AAC5C,CAAC;AAFD,4CAEC;AAGD,SAAgB,QAAQ,CAAC,YAAoB;IACzC,OAAO,IAAA,kBAAW,EAAC,YAAY,CAAC,CAAA;AACpC,CAAC;AAFD,4BAEC;AAGD,SAAgB,UAAU,CAAC,YAAoB;IAC3C,OAAO,IAAA,kBAAW,EAAC,YAAY,CAAC,GAAG,KAAK,CAAA;AAC5C,CAAC;AAFD,gCAEC;AAGD,SAAgB,OAAO,CAAC,UAAkB;IACtC,OAAO,IAAA,kBAAW,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"}
|
package/package.json
CHANGED
|
@@ -1,39 +1,48 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@subsquid/openreader",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "GraphQL server for
|
|
5
|
-
"keywords": [
|
|
3
|
+
"version": "0.3.1",
|
|
4
|
+
"description": "GraphQL server for squid framework",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"graphql",
|
|
7
|
+
"opencrud"
|
|
8
|
+
],
|
|
6
9
|
"license": "MIT",
|
|
7
|
-
"repository": "git@github.com:subsquid/
|
|
10
|
+
"repository": "git@github.com:subsquid/squid.git",
|
|
8
11
|
"publishConfig": {
|
|
9
12
|
"access": "public"
|
|
10
13
|
},
|
|
11
14
|
"bin": {
|
|
12
|
-
"openreader": "./
|
|
15
|
+
"openreader": "./bin/main.js"
|
|
13
16
|
},
|
|
14
17
|
"files": [
|
|
15
18
|
"dist",
|
|
16
19
|
"!dist/test"
|
|
17
20
|
],
|
|
18
21
|
"dependencies": {
|
|
22
|
+
"@graphql-tools/merge": "^8",
|
|
23
|
+
"@graphql-tools/utils": "^8",
|
|
19
24
|
"@subsquid/graphiql-console": "^0.2.0",
|
|
20
|
-
"
|
|
21
|
-
"apollo-server-
|
|
22
|
-
"express": "^
|
|
23
|
-
"
|
|
25
|
+
"@subsquid/util": "^0.0.1",
|
|
26
|
+
"apollo-server-core": "^3.5.0",
|
|
27
|
+
"apollo-server-express": "^3.5.0",
|
|
28
|
+
"express": "^4.17.2",
|
|
29
|
+
"graphql": "^15.8.0",
|
|
24
30
|
"graphql-parse-resolve-info": "^4.12.0",
|
|
25
|
-
"inflected": "^2.1.0",
|
|
26
31
|
"pg": "^8.7.1"
|
|
27
32
|
},
|
|
28
33
|
"devDependencies": {
|
|
29
|
-
"@types/
|
|
34
|
+
"@types/express": "^4.17.13",
|
|
30
35
|
"@types/mocha": "^9.0.0",
|
|
31
|
-
"@types/node
|
|
32
|
-
"@types/pg": "^8.6.
|
|
36
|
+
"@types/node": "^16.11.17",
|
|
37
|
+
"@types/pg": "^8.6.3",
|
|
33
38
|
"dotenv": "^10.0.0",
|
|
34
|
-
"expect": "^27.2
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"typescript": "
|
|
38
|
-
}
|
|
39
|
-
|
|
39
|
+
"expect": "^27.4.2",
|
|
40
|
+
"gql-test-client": "^0.0.0",
|
|
41
|
+
"mocha": "^9.1.3",
|
|
42
|
+
"typescript": "~4.5.4"
|
|
43
|
+
},
|
|
44
|
+
"scripts": {
|
|
45
|
+
"build": "rm -rf dist && tsc"
|
|
46
|
+
},
|
|
47
|
+
"readme": "# OpenReader\n\nGraphQL server for squid framework. Given [data schema](https://docs.subsquid.io/schema-spec) \nand compatible Postgres database it serves \"read part\" of [OpenCRUD spec](https://www.opencrud.org).\n\n## Usage\n\n```bash\nopenreader schema.graphql\n```\n\nDatabase connection and server port are configured via environment variables:\n\n```\nDB_NAME\nDB_USER\nDB_PASS\nDB_HOST\nDB_PORT\nGRAPHQL_SERVER_PORT\n```\n"
|
|
48
|
+
}
|