@subsquid/openreader 2.0.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/context.d.ts +5 -2
- package/lib/context.d.ts.map +1 -1
- package/lib/ir/args.d.ts +1 -1
- package/lib/ir/args.d.ts.map +1 -1
- package/lib/ir/connection.d.ts +3 -4
- package/lib/ir/connection.d.ts.map +1 -1
- package/lib/ir/connection.js.map +1 -1
- package/lib/ir/fields.d.ts +6 -2
- package/lib/ir/fields.d.ts.map +1 -1
- package/lib/ir/fields.js +15 -0
- package/lib/ir/fields.js.map +1 -1
- package/lib/limit.size.d.ts +7 -2
- package/lib/limit.size.d.ts.map +1 -1
- package/lib/limit.size.js +106 -12
- package/lib/limit.size.js.map +1 -1
- package/lib/main.js +6 -9
- package/lib/main.js.map +1 -1
- package/lib/model.d.ts +3 -1
- package/lib/model.d.ts.map +1 -1
- package/lib/model.schema.d.ts +2 -2
- package/lib/model.schema.d.ts.map +1 -1
- package/lib/model.schema.js +29 -7
- package/lib/model.schema.js.map +1 -1
- package/lib/model.tools.d.ts +6 -1
- package/lib/model.tools.d.ts.map +1 -1
- package/lib/model.tools.js +111 -8
- package/lib/model.tools.js.map +1 -1
- package/lib/opencrud/orderBy.d.ts +2 -2
- package/lib/opencrud/orderBy.d.ts.map +1 -1
- package/lib/opencrud/orderBy.js +13 -17
- package/lib/opencrud/orderBy.js.map +1 -1
- package/lib/opencrud/schema.d.ts +4 -4
- package/lib/opencrud/schema.d.ts.map +1 -1
- package/lib/opencrud/schema.js +60 -64
- package/lib/opencrud/schema.js.map +1 -1
- package/lib/opencrud/tree.d.ts +9 -7
- package/lib/opencrud/tree.d.ts.map +1 -1
- package/lib/opencrud/tree.js +32 -14
- package/lib/opencrud/tree.js.map +1 -1
- package/lib/server.d.ts +16 -12
- package/lib/server.d.ts.map +1 -1
- package/lib/server.js +29 -4
- package/lib/server.js.map +1 -1
- package/lib/sql/cursor.js +2 -2
- package/lib/sql/cursor.js.map +1 -1
- package/lib/sql/mapping.d.ts +3 -1
- package/lib/sql/mapping.d.ts.map +1 -1
- package/lib/sql/mapping.js +16 -1
- package/lib/sql/mapping.js.map +1 -1
- package/lib/sql/printer.d.ts +29 -11
- package/lib/sql/printer.d.ts.map +1 -1
- package/lib/sql/printer.js +106 -10
- package/lib/sql/printer.js.map +1 -1
- package/lib/sql/query.d.ts +11 -11
- package/lib/sql/query.d.ts.map +1 -1
- package/lib/sql/query.js +41 -19
- package/lib/sql/query.js.map +1 -1
- package/lib/test/limits.test.d.ts +2 -0
- package/lib/test/limits.test.d.ts.map +1 -0
- package/lib/test/limits.test.js +159 -0
- package/lib/test/limits.test.js.map +1 -0
- package/lib/test/queryable.test.d.ts +2 -0
- package/lib/test/queryable.test.d.ts.map +1 -0
- package/lib/test/queryable.test.js +255 -0
- package/lib/test/queryable.test.js.map +1 -0
- package/lib/test/setup.d.ts +2 -1
- package/lib/test/setup.d.ts.map +1 -1
- package/lib/test/setup.js +5 -2
- package/lib/test/setup.js.map +1 -1
- package/lib/util/execute.d.ts +5 -0
- package/lib/util/execute.d.ts.map +1 -0
- package/lib/util/execute.js +28 -0
- package/lib/util/execute.js.map +1 -0
- package/lib/util/limit.d.ts +11 -0
- package/lib/util/limit.d.ts.map +1 -0
- package/lib/util/limit.js +39 -0
- package/lib/util/limit.js.map +1 -0
- package/package.json +3 -3
- package/src/context.ts +5 -2
- package/src/ir/args.ts +1 -1
- package/src/ir/connection.ts +3 -4
- package/src/ir/fields.ts +22 -2
- package/src/limit.size.ts +122 -13
- package/src/main.ts +18 -20
- package/src/model.schema.ts +40 -13
- package/src/model.tools.ts +121 -8
- package/src/model.ts +3 -1
- package/src/opencrud/orderBy.ts +13 -17
- package/src/opencrud/schema.ts +86 -85
- package/src/opencrud/tree.ts +55 -26
- package/src/server.ts +66 -26
- package/src/sql/cursor.ts +2 -2
- package/src/sql/mapping.ts +18 -1
- package/src/sql/printer.ts +137 -21
- package/src/sql/query.ts +50 -30
- package/src/test/limits.test.ts +163 -0
- package/src/test/queryable.test.ts +258 -0
- package/src/test/setup.ts +6 -3
- package/src/util/execute.ts +53 -0
- package/src/util/limit.ts +34 -0
package/lib/context.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Dialect } from
|
|
2
|
-
import { Query } from
|
|
1
|
+
import { Dialect } from './dialect';
|
|
2
|
+
import { Query } from './sql/query';
|
|
3
|
+
import { Limit } from './util/limit';
|
|
3
4
|
export interface Context {
|
|
4
5
|
openreader: OpenreaderContext;
|
|
5
6
|
}
|
|
@@ -7,5 +8,7 @@ export interface OpenreaderContext {
|
|
|
7
8
|
dialect: Dialect;
|
|
8
9
|
executeQuery<T>(query: Query<T>): Promise<T>;
|
|
9
10
|
subscription<T>(query: Query<T>): AsyncIterable<T>;
|
|
11
|
+
responseSizeLimit?: Limit;
|
|
12
|
+
subscriptionResponseSizeLimit?: Limit;
|
|
10
13
|
}
|
|
11
14
|
//# sourceMappingURL=context.d.ts.map
|
package/lib/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AACjC,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAA;AAGlC,MAAM,WAAW,OAAO;IACpB,UAAU,EAAE,iBAAiB,CAAA;CAChC;AAGD,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAC5C,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;IAClD,iBAAiB,CAAC,EAAE,KAAK,CAAA;IACzB,6BAA6B,CAAC,EAAE,KAAK,CAAA;CACxC"}
|
package/lib/ir/args.d.ts
CHANGED
package/lib/ir/args.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/ir/args.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/ir/args.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,KAAK,CAAA;CAChB;AAGD,oBAAY,KAAK,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,GAAG,eAAe,GAAG,cAAc,CAAA;AAG7H,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,KAAK,CAAA;IACT,IAAI,EAAE,KAAK,EAAE,CAAA;CAChB;AAGD,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,IAAI,CAAA;IACR,IAAI,EAAE,KAAK,EAAE,CAAA;CAChB;AAGD,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,KAAK,CAAA;CAChB;AAGD,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,KAAK,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,KAAK,CAAA;CACf;AAGD,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,IAAI,GAAG,QAAQ,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,OAAO,EAAE,CAAA;CACpB;AAGD,MAAM,WAAW,eAAe;IAC5B,EAAE,EAAE,QAAQ,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;CACjB;AAGD,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,OAAO,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,OAAO,CAAA;CACf;AAGD,oBAAY,QAAQ,GAChB,IAAI,GACJ,QAAQ,GACR,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,UAAU,GAAG,cAAc,GAC3B,qBAAqB,GAAG,yBAAyB,GACjD,YAAY,GAAG,gBAAgB,GAC/B,UAAU,GAAG,cAAc,GAC3B,aAAa,GACb,aAAa,GACb,cAAc,GACd,cAAc,GACd,YAAY,CAAA;AAGhB,oBAAY,OAAO,GAAG,QAAQ,CAAA;AAG9B,MAAM,WAAW,OAAO;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAA;CACvC;AAGD,oBAAY,SAAS,GAAG,KAAK,GAAG,MAAM,CAAA"}
|
package/lib/ir/connection.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { OrderBy, Where } from
|
|
2
|
-
|
|
3
|
-
export interface RelayConnectionRequest {
|
|
1
|
+
import { OrderBy, Where } from './args';
|
|
2
|
+
export interface RelayConnectionRequest<R> {
|
|
4
3
|
orderBy: OrderBy;
|
|
5
4
|
where?: Where;
|
|
6
5
|
first?: number;
|
|
7
6
|
after?: string;
|
|
8
|
-
edgeNode?:
|
|
7
|
+
edgeNode?: R;
|
|
9
8
|
edgeCursor?: boolean;
|
|
10
9
|
pageInfo?: boolean;
|
|
11
10
|
totalCount?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/ir/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,KAAK,EAAC,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/ir/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,KAAK,EAAC,MAAM,QAAQ,CAAA;AAGrC,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACrC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,CAAC,CAAA;IACZ,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;CACvB;AAGD,MAAM,WAAW,uBAAuB;IACpC,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAA;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB;AAGD,MAAM,WAAW,mBAAmB;IAChC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;AAGD,MAAM,WAAW,uBAAuB;IACpC,WAAW,EAAE,OAAO,CAAA;IACpB,eAAe,EAAE,OAAO,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CACpB;AAGD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK9E;AAGD,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/D"}
|
package/lib/ir/connection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/ir/connection.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/ir/connection.ts"],"names":[],"mappings":";;;AAoCA,SAAgB,2BAA2B,CAAC,MAAc;IACtD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAA;IAC3C,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC9B,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,GAAG,CAAA;IACpD,OAAO,SAAS,CAAA;AACpB,CAAC;AALD,kEAKC;AAGD,SAAgB,2BAA2B,CAAC,GAAW;IACnD,OAAO,EAAE,GAAG,GAAG,CAAA;AACnB,CAAC;AAFD,kEAEC"}
|
package/lib/ir/fields.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EnumPropType, FkPropType, ListLookupPropType, ListPropType, LookupPropType, ObjectPropType, Prop, PropType, ScalarPropType, UnionPropType } from "../model";
|
|
2
|
-
import {
|
|
2
|
+
import { SqlArguments } from "./args";
|
|
3
3
|
export declare type FieldRequest = EntityListRequest | ObjectRequest | OpaqueRequest;
|
|
4
4
|
declare type Base<T> = T extends PropType ? {
|
|
5
5
|
field: string;
|
|
@@ -12,11 +12,15 @@ declare type Base<T> = T extends PropType ? {
|
|
|
12
12
|
} : never;
|
|
13
13
|
export declare type EntityListRequest = Base<ListLookupPropType> & {
|
|
14
14
|
children: FieldRequest[];
|
|
15
|
-
args?:
|
|
15
|
+
args?: SqlArguments;
|
|
16
16
|
};
|
|
17
17
|
export declare type ObjectRequest = Base<FkPropType | LookupPropType | ObjectPropType | UnionPropType> & {
|
|
18
18
|
children: FieldRequest[];
|
|
19
19
|
};
|
|
20
20
|
export declare type OpaqueRequest = Base<ScalarPropType | EnumPropType | ListPropType>;
|
|
21
|
+
export declare type FieldsByEntity = Record<string, FieldRequest[]>;
|
|
22
|
+
export declare type AnyFields = FieldRequest[] | FieldsByEntity;
|
|
23
|
+
export declare function asEntityFields(fields: AnyFields): FieldRequest[];
|
|
24
|
+
export declare function asQueryableFields(fields: AnyFields): FieldsByEntity;
|
|
21
25
|
export {};
|
|
22
26
|
//# sourceMappingURL=fields.d.ts.map
|
package/lib/ir/fields.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/ir/fields.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/ir/fields.ts"],"names":[],"mappings":"AACA,OAAO,EACH,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,cAAc,EAAE,IAAI,EACpB,QAAQ,EACR,cAAc,EACd,aAAa,EAChB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAA;AAGnC,oBAAY,YAAY,GAAG,iBAAiB,GAAG,aAAa,GAAG,aAAa,CAAA;AAG5E,aAAK,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,GAAG;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;IACf,IAAI,EAAE,CAAC,CAAA;IACP,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CAChB,GAAG,KAAK,CAAA;AAGT,oBAAY,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG;IACvD,QAAQ,EAAE,YAAY,EAAE,CAAA;IACxB,IAAI,CAAC,EAAE,YAAY,CAAA;CACtB,CAAA;AAGD,oBAAY,aAAa,GAAG,IAAI,CAAC,UAAU,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,CAAC,GAAG;IAC7F,QAAQ,EAAE,YAAY,EAAE,CAAA;CAC3B,CAAA;AAGD,oBAAY,aAAa,GAAG,IAAI,CAAC,cAAc,GAAG,YAAY,GAAG,YAAY,CAAC,CAAA;AAI9E,oBAAY,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;AAG3D,oBAAY,SAAS,GAAG,YAAY,EAAE,GAAG,cAAc,CAAA;AAGvD,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,YAAY,EAAE,CAGhE;AAGD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,cAAc,CAGnE"}
|
package/lib/ir/fields.js
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.asQueryableFields = exports.asEntityFields = void 0;
|
|
7
|
+
const assert_1 = __importDefault(require("assert"));
|
|
8
|
+
function asEntityFields(fields) {
|
|
9
|
+
(0, assert_1.default)(Array.isArray(fields));
|
|
10
|
+
return fields;
|
|
11
|
+
}
|
|
12
|
+
exports.asEntityFields = asEntityFields;
|
|
13
|
+
function asQueryableFields(fields) {
|
|
14
|
+
(0, assert_1.default)(!Array.isArray(fields));
|
|
15
|
+
return fields;
|
|
16
|
+
}
|
|
17
|
+
exports.asQueryableFields = asQueryableFields;
|
|
3
18
|
//# sourceMappingURL=fields.js.map
|
package/lib/ir/fields.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/ir/fields.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/ir/fields.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAkD3B,SAAgB,cAAc,CAAC,MAAiB;IAC5C,IAAA,gBAAM,EAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IAC7B,OAAO,MAAM,CAAA;AACjB,CAAC;AAHD,wCAGC;AAGD,SAAgB,iBAAiB,CAAC,MAAiB;IAC/C,IAAA,gBAAM,EAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IAC9B,OAAO,MAAM,CAAA;AACjB,CAAC;AAHD,8CAGC"}
|
package/lib/limit.size.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { Where } from './ir/args';
|
|
2
|
+
import { RelayConnectionRequest } from './ir/connection';
|
|
3
|
+
import { AnyFields, FieldRequest } from './ir/fields';
|
|
4
|
+
import { Model } from './model';
|
|
5
|
+
export declare function getObjectSize(model: Model, fields: FieldRequest[]): number;
|
|
6
|
+
export declare function getListSize(model: Model, typeName: string, fields: AnyFields, limit?: number, where?: Where): number;
|
|
7
|
+
export declare function getConnectionSize(model: Model, typeName: string, req: RelayConnectionRequest<AnyFields>): number;
|
|
3
8
|
//# sourceMappingURL=limit.size.d.ts.map
|
package/lib/limit.size.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limit.size.d.ts","sourceRoot":"","sources":["../src/limit.size.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"limit.size.d.ts","sourceRoot":"","sources":["../src/limit.size.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,KAAK,EAAC,MAAM,WAAW,CAAA;AAC/B,OAAO,EAAC,sBAAsB,EAAC,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAC,SAAS,EAAE,YAAY,EAAC,MAAM,aAAa,CAAA;AACnD,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAA;AAI7B,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAW1E;AA6BD,wBAAgB,WAAW,CACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,KAAK,GACd,MAAM,CAoBR;AA+DD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,sBAAsB,CAAC,SAAS,CAAC,GAAG,MAAM,CAgBhH"}
|
package/lib/limit.size.js
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
6
|
+
exports.getConnectionSize = exports.getListSize = exports.getObjectSize = void 0;
|
|
4
7
|
const util_internal_1 = require("@subsquid/util-internal");
|
|
5
|
-
|
|
8
|
+
const assert_1 = __importDefault(require("assert"));
|
|
9
|
+
const model_tools_1 = require("./model.tools");
|
|
10
|
+
function getObjectSize(model, fields) {
|
|
6
11
|
let total = 0;
|
|
7
12
|
for (let req of fields) {
|
|
8
|
-
let size = getFieldSize(req);
|
|
13
|
+
let size = getFieldSize(model, req);
|
|
9
14
|
if (Number.isFinite(size)) {
|
|
10
15
|
total += size * req.aliases.length;
|
|
11
16
|
}
|
|
@@ -15,8 +20,8 @@ function getSize(fields) {
|
|
|
15
20
|
}
|
|
16
21
|
return total;
|
|
17
22
|
}
|
|
18
|
-
exports.
|
|
19
|
-
function getFieldSize(req) {
|
|
23
|
+
exports.getObjectSize = getObjectSize;
|
|
24
|
+
function getFieldSize(model, req) {
|
|
20
25
|
switch (req.kind) {
|
|
21
26
|
case "scalar":
|
|
22
27
|
case "list":
|
|
@@ -27,18 +32,107 @@ function getFieldSize(req) {
|
|
|
27
32
|
case "fk":
|
|
28
33
|
case "lookup":
|
|
29
34
|
case "union":
|
|
30
|
-
return
|
|
31
|
-
case "list-lookup":
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
return getObjectSize(model, req.children) + 1;
|
|
36
|
+
case "list-lookup":
|
|
37
|
+
return getListSize(model, req.type.entity, req.children, Math.min(req.args?.limit ?? Infinity, req.prop.cardinality ?? Infinity), req.args?.where) + 1;
|
|
38
|
+
default:
|
|
39
|
+
throw (0, util_internal_1.unexpectedCase)();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function getListSize(model, typeName, fields, limit, where) {
|
|
43
|
+
let cardinality = getCardinality(model, typeName, limit, where);
|
|
44
|
+
if (!Number.isFinite(cardinality))
|
|
45
|
+
return Infinity;
|
|
46
|
+
let type = model[typeName];
|
|
47
|
+
switch (type.kind) {
|
|
48
|
+
case 'entity': {
|
|
49
|
+
(0, assert_1.default)(Array.isArray(fields));
|
|
50
|
+
return cardinality * Math.max(getObjectSize(model, fields), 1);
|
|
51
|
+
}
|
|
52
|
+
case 'interface': {
|
|
53
|
+
(0, assert_1.default)(!Array.isArray(fields));
|
|
54
|
+
let weight = 1;
|
|
55
|
+
for (let entity of (0, model_tools_1.getQueryableEntities)(model, typeName)) {
|
|
56
|
+
weight = Math.max(weight, getObjectSize(model, fields[entity] || []));
|
|
35
57
|
}
|
|
36
|
-
|
|
58
|
+
return cardinality * weight;
|
|
59
|
+
}
|
|
60
|
+
default:
|
|
61
|
+
throw (0, util_internal_1.unexpectedCase)(type.kind);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.getListSize = getListSize;
|
|
65
|
+
function getCardinality(model, typeName, limit, where) {
|
|
66
|
+
let type = model[typeName];
|
|
67
|
+
switch (type.kind) {
|
|
68
|
+
case 'entity':
|
|
69
|
+
return Math.min(type.cardinality ?? Infinity, limit ?? Infinity, getWhereCardinality(where));
|
|
70
|
+
case 'interface': {
|
|
71
|
+
let whereCardinality = getWhereCardinality(where);
|
|
72
|
+
let cardinality = 0;
|
|
73
|
+
for (let entity of (0, model_tools_1.getQueryableEntities)(model, typeName)) {
|
|
74
|
+
cardinality += Math.min((0, model_tools_1.getEntity)(model, entity).cardinality ?? Infinity, whereCardinality);
|
|
75
|
+
}
|
|
76
|
+
return Math.min(cardinality, limit ?? Infinity);
|
|
77
|
+
}
|
|
78
|
+
default:
|
|
79
|
+
throw (0, util_internal_1.unexpectedCase)(type.kind);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function getWhereCardinality(where) {
|
|
83
|
+
if (where == null)
|
|
84
|
+
return Infinity;
|
|
85
|
+
switch (where.op) {
|
|
86
|
+
case 'AND': {
|
|
87
|
+
let min = Infinity;
|
|
88
|
+
for (let co of where.args) {
|
|
89
|
+
min = Math.min(min, getWhereCardinality(co));
|
|
90
|
+
}
|
|
91
|
+
return min;
|
|
92
|
+
}
|
|
93
|
+
case 'OR': {
|
|
94
|
+
if (where.args.length == 0)
|
|
37
95
|
return Infinity;
|
|
96
|
+
let max = 0;
|
|
97
|
+
for (let co of where.args) {
|
|
98
|
+
max = Math.max(max, getWhereCardinality(co));
|
|
38
99
|
}
|
|
100
|
+
return max;
|
|
39
101
|
}
|
|
102
|
+
case 'eq':
|
|
103
|
+
if (where.field == 'id') {
|
|
104
|
+
return 1;
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
return Infinity;
|
|
108
|
+
}
|
|
109
|
+
case 'in':
|
|
110
|
+
if (where.field == 'id') {
|
|
111
|
+
return where.values.length;
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
return Infinity;
|
|
115
|
+
}
|
|
40
116
|
default:
|
|
41
|
-
|
|
117
|
+
return Infinity;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
function getConnectionSize(model, typeName, req) {
|
|
121
|
+
let first = req.first ?? 100;
|
|
122
|
+
let total = 0;
|
|
123
|
+
if (req.edgeNode) {
|
|
124
|
+
total += getListSize(model, typeName, req.edgeNode, first, req.where);
|
|
42
125
|
}
|
|
126
|
+
if (req.edgeCursor) {
|
|
127
|
+
total += getCardinality(model, typeName, first, req.where);
|
|
128
|
+
}
|
|
129
|
+
if (req.pageInfo) {
|
|
130
|
+
total += 4;
|
|
131
|
+
}
|
|
132
|
+
if (req.totalCount) {
|
|
133
|
+
total += 1;
|
|
134
|
+
}
|
|
135
|
+
return total;
|
|
43
136
|
}
|
|
137
|
+
exports.getConnectionSize = getConnectionSize;
|
|
44
138
|
//# sourceMappingURL=limit.size.js.map
|
package/lib/limit.size.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limit.size.js","sourceRoot":"","sources":["../src/limit.size.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"limit.size.js","sourceRoot":"","sources":["../src/limit.size.ts"],"names":[],"mappings":"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"}
|
package/lib/main.js
CHANGED
|
@@ -19,23 +19,18 @@ GraphQL server for postgres-compatible databases
|
|
|
19
19
|
program.addOption(new commander_1.Option('-t, --db-type <type>', 'database type').choices(['postgres', 'cockroach']).default('postgres'));
|
|
20
20
|
program.option('-p, --port <number>', 'port to listen on', util_internal_commander_1.nat, 3000);
|
|
21
21
|
program.option('--max-request-size <kb>', 'max request size in kilobytes', util_internal_commander_1.nat, 256);
|
|
22
|
+
program.option('--max-root-fields <count>', 'max number of root fields in a query', util_internal_commander_1.nat);
|
|
23
|
+
program.option('--max-response-size <nodes>', 'max response size measured in nodes', util_internal_commander_1.nat);
|
|
22
24
|
program.option('--sql-statement-timeout <ms>', 'sql statement timeout in ms', util_internal_commander_1.nat);
|
|
23
25
|
program.option('--subscriptions', 'enable gql subscriptions');
|
|
24
26
|
program.option('--subscription-poll-interval <ms>', 'subscription poll interval in ms', util_internal_commander_1.nat, 1000);
|
|
25
|
-
program.option('--subscription-
|
|
27
|
+
program.option('--subscription-max-response-size <nodes>', 'max response size measured in nodes', util_internal_commander_1.nat);
|
|
26
28
|
let opts = program.parse().opts();
|
|
27
29
|
let model = (0, tools_1.loadModel)(opts.schema);
|
|
28
30
|
let connection = new pg_1.Pool({
|
|
29
31
|
connectionString: opts.dbUrl,
|
|
30
32
|
statement_timeout: opts.sqlStatementTimeout || undefined
|
|
31
33
|
});
|
|
32
|
-
let subscriptionConnection;
|
|
33
|
-
if (opts.subscriptions) {
|
|
34
|
-
subscriptionConnection = new pg_1.Pool({
|
|
35
|
-
connectionString: opts.dbUrl,
|
|
36
|
-
statement_timeout: opts.subscriptionSqlStatementTimeout || opts.sqlStatementTimeout || undefined
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
34
|
let server = await (0, server_1.serve)({
|
|
40
35
|
model,
|
|
41
36
|
dialect: opts.dbType,
|
|
@@ -43,9 +38,11 @@ GraphQL server for postgres-compatible databases
|
|
|
43
38
|
port: opts.port,
|
|
44
39
|
log: LOG,
|
|
45
40
|
maxRequestSizeBytes: opts.maxRequestSize * 1024,
|
|
41
|
+
maxRootFields: opts.maxRootFields,
|
|
42
|
+
maxResponseNodes: opts.maxResponseSize,
|
|
46
43
|
subscriptions: opts.subscriptions,
|
|
47
44
|
subscriptionPollInterval: opts.subscriptionPollInterval,
|
|
48
|
-
|
|
45
|
+
subscriptionMaxResponseNodes: opts.subscriptionMaxResponseSize
|
|
49
46
|
});
|
|
50
47
|
LOG.info(`listening on port ${server.port}`);
|
|
51
48
|
return (0, util_internal_http_server_1.waitForInterruption)(server);
|
package/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;AAAA,6CAA6C;AAC7C,2DAAkD;AAClD,+EAA0D;AAC1D,mFAAuE;AACvE,yCAAyC;AACzC,2BAAuB;AAEvB,qCAA8B;AAC9B,mCAAiC;AAGjC,MAAM,GAAG,GAAG,IAAA,qBAAY,EAAC,gBAAgB,CAAC,CAAA;AAG1C,IAAA,0BAAU,EAAC,KAAK,IAAI,EAAE;IAClB,IAAI,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAA;IAE3B,OAAO,CAAC,WAAW,CAAC;;KAEnB,CAAC,IAAI,EAAE,CAAC,CAAA;IAET,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAAE,sDAAsD,CAAC,CAAA;IACrG,OAAO,CAAC,cAAc,CAAC,oBAAoB,EAAE,4BAA4B,EAAE,IAAA,6BAAG,EAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;IAC9F,OAAO,CAAC,SAAS,CACb,IAAI,kBAAM,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAC7G,CAAA;IACD,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,6BAAG,EAAE,IAAI,CAAC,CAAA;IACrE,OAAO,CAAC,MAAM,CAAC,yBAAyB,EAAE,+BAA+B,EAAE,6BAAG,EAAE,GAAG,CAAC,CAAA;IACpF,OAAO,CAAC,MAAM,CAAC,8BAA8B,EAAE,6BAA6B,EAAE,6BAAG,CAAC,CAAA;IAClF,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,0BAA0B,CAAC,CAAA;IAC7D,OAAO,CAAC,MAAM,CAAC,mCAAmC,EAAE,kCAAkC,EAAE,6BAAG,EAAE,IAAI,CAAC,CAAA;IAClG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;AAAA,6CAA6C;AAC7C,2DAAkD;AAClD,+EAA0D;AAC1D,mFAAuE;AACvE,yCAAyC;AACzC,2BAAuB;AAEvB,qCAA8B;AAC9B,mCAAiC;AAGjC,MAAM,GAAG,GAAG,IAAA,qBAAY,EAAC,gBAAgB,CAAC,CAAA;AAG1C,IAAA,0BAAU,EAAC,KAAK,IAAI,EAAE;IAClB,IAAI,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAA;IAE3B,OAAO,CAAC,WAAW,CAAC;;KAEnB,CAAC,IAAI,EAAE,CAAC,CAAA;IAET,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAAE,sDAAsD,CAAC,CAAA;IACrG,OAAO,CAAC,cAAc,CAAC,oBAAoB,EAAE,4BAA4B,EAAE,IAAA,6BAAG,EAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;IAC9F,OAAO,CAAC,SAAS,CACb,IAAI,kBAAM,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAC7G,CAAA;IACD,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,6BAAG,EAAE,IAAI,CAAC,CAAA;IACrE,OAAO,CAAC,MAAM,CAAC,yBAAyB,EAAE,+BAA+B,EAAE,6BAAG,EAAE,GAAG,CAAC,CAAA;IACpF,OAAO,CAAC,MAAM,CAAC,2BAA2B,EAAE,sCAAsC,EAAE,6BAAG,CAAC,CAAA;IACxF,OAAO,CAAC,MAAM,CAAC,6BAA6B,EAAE,qCAAqC,EAAE,6BAAG,CAAC,CAAA;IACzF,OAAO,CAAC,MAAM,CAAC,8BAA8B,EAAE,6BAA6B,EAAE,6BAAG,CAAC,CAAA;IAClF,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,0BAA0B,CAAC,CAAA;IAC7D,OAAO,CAAC,MAAM,CAAC,mCAAmC,EAAE,kCAAkC,EAAE,6BAAG,EAAE,IAAI,CAAC,CAAA;IAClG,OAAO,CAAC,MAAM,CAAC,0CAA0C,EAAE,qCAAqC,EAAE,6BAAG,CAAC,CAAA;IAEtG,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,EAY9B,CAAA;IAED,IAAI,KAAK,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAElC,IAAI,UAAU,GAAG,IAAI,SAAI,CAAC;QACtB,gBAAgB,EAAE,IAAI,CAAC,KAAK;QAC5B,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,IAAI,SAAS;KAC3D,CAAC,CAAA;IAEF,IAAI,MAAM,GAAG,MAAM,IAAA,cAAK,EAAC;QACrB,KAAK;QACL,OAAO,EAAE,IAAI,CAAC,MAAM;QACpB,UAAU;QACV,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,EAAE,GAAG;QACR,mBAAmB,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI;QAC/C,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,gBAAgB,EAAE,IAAI,CAAC,eAAe;QACtC,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;QACvD,4BAA4B,EAAE,IAAI,CAAC,2BAA2B;KACjE,CAAC,CAAA;IAEF,GAAG,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IAE5C,OAAO,IAAA,+CAAmB,EAAC,MAAM,CAAC,CAAA;AACtC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA"}
|
package/lib/model.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export interface Entity extends TypeMeta {
|
|
|
5
5
|
properties: Record<Name, Prop>;
|
|
6
6
|
interfaces?: Name[];
|
|
7
7
|
indexes?: Index[];
|
|
8
|
+
cardinality?: number;
|
|
8
9
|
}
|
|
9
10
|
export interface JsonObject extends TypeMeta {
|
|
10
11
|
kind: 'object';
|
|
@@ -14,6 +15,7 @@ export interface JsonObject extends TypeMeta {
|
|
|
14
15
|
export interface Interface extends TypeMeta {
|
|
15
16
|
kind: 'interface';
|
|
16
17
|
properties: Record<Name, Prop>;
|
|
18
|
+
queryable?: boolean;
|
|
17
19
|
}
|
|
18
20
|
export interface Union extends TypeMeta {
|
|
19
21
|
kind: 'union';
|
|
@@ -67,7 +69,7 @@ export interface ListPropType {
|
|
|
67
69
|
}
|
|
68
70
|
export interface FkPropType {
|
|
69
71
|
kind: 'fk';
|
|
70
|
-
|
|
72
|
+
entity: Name;
|
|
71
73
|
}
|
|
72
74
|
export interface LookupPropType {
|
|
73
75
|
kind: 'lookup';
|
package/lib/model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,oBAAY,IAAI,GAAG,MAAM,CAAA;AAGzB,oBAAY,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;AAG5F,MAAM,WAAW,MAAO,SAAQ,QAAQ;IACpC,IAAI,EAAE,QAAQ,CAAA;IACd,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC9B,UAAU,CAAC,EAAE,IAAI,EAAE,CAAA;IACnB,OAAO,CAAC,EAAE,KAAK,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
package/lib/model.schema.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DocumentNode, GraphQLSchema } from
|
|
2
|
-
import { Model } from
|
|
1
|
+
import { DocumentNode, GraphQLSchema } from 'graphql';
|
|
2
|
+
import { Model } from './model';
|
|
3
3
|
export declare function buildSchema(doc: DocumentNode): GraphQLSchema;
|
|
4
4
|
export declare function buildModel(schema: GraphQLSchema): Model;
|
|
5
5
|
export declare class SchemaError extends Error {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.schema.d.ts","sourceRoot":"","sources":["../src/model.schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAEH,YAAY,EAWZ,aAAa,EAIhB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAQ,KAAK,EAAyB,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"model.schema.d.ts","sourceRoot":"","sources":["../src/model.schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAEH,YAAY,EAWZ,aAAa,EAIhB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAQ,KAAK,EAAyB,MAAM,SAAS,CAAA;AAqB5D,wBAAgB,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,aAAa,CAO5D;AAGD,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,KAAK,CAWvD;AAudD,qBAAa,WAAY,SAAQ,KAAK;CAAG"}
|
package/lib/model.schema.js
CHANGED
|
@@ -11,11 +11,12 @@ const model_tools_1 = require("./model.tools");
|
|
|
11
11
|
const scalars_1 = require("./scalars");
|
|
12
12
|
const baseSchema = (0, graphql_1.buildASTSchema)((0, graphql_1.parse)(`
|
|
13
13
|
directive @entity on OBJECT
|
|
14
|
+
directive @query on INTERFACE
|
|
14
15
|
directive @derivedFrom(field: String!) on FIELD_DEFINITION
|
|
15
16
|
directive @unique on FIELD_DEFINITION
|
|
16
17
|
directive @index(fields: [String!] unique: Boolean) on OBJECT | FIELD_DEFINITION
|
|
17
18
|
directive @fulltext(query: String!) on FIELD_DEFINITION
|
|
18
|
-
directive @cardinality(value: Int!) on FIELD_DEFINITION
|
|
19
|
+
directive @cardinality(value: Int!) on OBJECT | FIELD_DEFINITION
|
|
19
20
|
directive @byteWeight(value: Float!) on FIELD_DEFINITION
|
|
20
21
|
directive @variant on OBJECT # legacy
|
|
21
22
|
directive @jsonField on OBJECT # legacy
|
|
@@ -56,16 +57,17 @@ function addEntityOrJsonObjectOrInterface(model, type) {
|
|
|
56
57
|
let properties = {};
|
|
57
58
|
let interfaces = [];
|
|
58
59
|
let indexes = type instanceof graphql_1.GraphQLObjectType ? checkEntityIndexes(type) : [];
|
|
60
|
+
let cardinality = checkEntityCardinality(type);
|
|
59
61
|
let description = type.description || undefined;
|
|
60
62
|
switch (kind) {
|
|
61
63
|
case 'entity':
|
|
62
|
-
model[type.name] = { kind, properties, description, interfaces, indexes };
|
|
64
|
+
model[type.name] = { kind, properties, description, interfaces, indexes, ...cardinality };
|
|
63
65
|
break;
|
|
64
66
|
case 'object':
|
|
65
67
|
model[type.name] = { kind, properties, description, interfaces };
|
|
66
68
|
break;
|
|
67
69
|
case 'interface':
|
|
68
|
-
model[type.name] = { kind, properties, description };
|
|
70
|
+
model[type.name] = { kind, properties, description, queryable: isQueryableInterface(type) };
|
|
69
71
|
break;
|
|
70
72
|
default:
|
|
71
73
|
throw (0, util_internal_1.unexpectedCase)(kind);
|
|
@@ -146,7 +148,7 @@ function addEntityOrJsonObjectOrInterface(model, type) {
|
|
|
146
148
|
};
|
|
147
149
|
}
|
|
148
150
|
else if (fieldType instanceof graphql_1.GraphQLObjectType) {
|
|
149
|
-
if (isEntityType(fieldType)) {
|
|
151
|
+
if (isEntityType(fieldType) && kind != 'interface') {
|
|
150
152
|
switch (list.nulls.length) {
|
|
151
153
|
case 0:
|
|
152
154
|
if (derivedFrom) {
|
|
@@ -170,7 +172,7 @@ function addEntityOrJsonObjectOrInterface(model, type) {
|
|
|
170
172
|
properties[key] = {
|
|
171
173
|
type: {
|
|
172
174
|
kind: 'fk',
|
|
173
|
-
|
|
175
|
+
entity: fieldType.name
|
|
174
176
|
},
|
|
175
177
|
nullable,
|
|
176
178
|
unique,
|
|
@@ -404,10 +406,26 @@ function checkDerivedFrom(type, f) {
|
|
|
404
406
|
(0, assert_1.default)(fieldArg.value.kind == 'StringValue');
|
|
405
407
|
return { field: fieldArg.value.value };
|
|
406
408
|
}
|
|
409
|
+
function checkEntityCardinality(type) {
|
|
410
|
+
let directives = type.astNode?.directives?.filter(d => d.name.value == 'cardinality') || [];
|
|
411
|
+
if (directives.length > 0 && !isEntityType(type)) {
|
|
412
|
+
throw new SchemaError(`@cardinality directive can be only applied to entities, but were applied to ${type.name}`);
|
|
413
|
+
}
|
|
414
|
+
if (directives.length > 1)
|
|
415
|
+
throw new SchemaError(`Multiple @cardinality directives where applied to ${type.name}`);
|
|
416
|
+
if (directives.length == 0)
|
|
417
|
+
return {};
|
|
418
|
+
let arg = (0, util_internal_1.assertNotNull)(directives[0].arguments?.find(arg => arg.name.value == 'value'));
|
|
419
|
+
(0, assert_1.default)(arg.value.kind == 'IntValue');
|
|
420
|
+
let cardinality = parseInt(arg.value.value, 10);
|
|
421
|
+
if (cardinality < 0)
|
|
422
|
+
throw new SchemaError(`Incorrect @cardinality where applied to ${type.name}. Cardinality value must be positive.`);
|
|
423
|
+
return { cardinality };
|
|
424
|
+
}
|
|
407
425
|
function checkCardinalityLimitDirective(type, f) {
|
|
408
426
|
let directives = f.astNode?.directives?.filter(d => d.name.value == 'cardinality') || [];
|
|
409
427
|
if (directives.length > 1)
|
|
410
|
-
throw new SchemaError(`Multiple @cardinality where applied to ${type.name}.${f.name}`);
|
|
428
|
+
throw new SchemaError(`Multiple @cardinality directives where applied to ${type.name}.${f.name}`);
|
|
411
429
|
if (directives.length == 0)
|
|
412
430
|
return {};
|
|
413
431
|
let arg = (0, util_internal_1.assertNotNull)(directives[0].arguments?.find(arg => arg.name.value == 'value'));
|
|
@@ -420,7 +438,7 @@ function checkCardinalityLimitDirective(type, f) {
|
|
|
420
438
|
function checkByteWeightDirective(type, f) {
|
|
421
439
|
let directives = f.astNode?.directives?.filter(d => d.name.value == 'byteWeight') || [];
|
|
422
440
|
if (directives.length > 1)
|
|
423
|
-
throw new SchemaError(`Multiple @byteWeight where applied to ${type.name}.${f.name}`);
|
|
441
|
+
throw new SchemaError(`Multiple @byteWeight directives where applied to ${type.name}.${f.name}`);
|
|
424
442
|
if (directives.length == 0)
|
|
425
443
|
return {};
|
|
426
444
|
let arg = (0, util_internal_1.assertNotNull)(directives[0].arguments?.find(arg => arg.name.value == 'value'));
|
|
@@ -430,6 +448,10 @@ function checkByteWeightDirective(type, f) {
|
|
|
430
448
|
throw new SchemaError(`Incorrect @byteWeight where applied to ${type.name}.${f.name}. Byte weight value must be positive.`);
|
|
431
449
|
return { byteWeight };
|
|
432
450
|
}
|
|
451
|
+
function isQueryableInterface(type) {
|
|
452
|
+
return type instanceof graphql_1.GraphQLInterfaceType
|
|
453
|
+
&& !!type.astNode?.directives?.find(d => d.name.value == 'query');
|
|
454
|
+
}
|
|
433
455
|
function unsupportedFieldTypeError(propName) {
|
|
434
456
|
return new SchemaError(`Property ${propName} has unsupported type`);
|
|
435
457
|
}
|
package/lib/model.schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.schema.js","sourceRoot":"","sources":["../src/model.schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"model.schema.js","sourceRoot":"","sources":["../src/model.schema.ts"],"names":[],"mappings":"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"}
|
package/lib/model.tools.d.ts
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
import { Entity, FTS_Query, JsonObject, Model, PropType } from
|
|
1
|
+
import { Entity, FTS_Query, Interface, JsonObject, Model, Prop, PropType } from './model';
|
|
2
2
|
export declare function getUnionProps(model: Model, unionName: string): JsonObject;
|
|
3
3
|
export declare function buildUnionProps(model: Model, unionName: string): JsonObject;
|
|
4
|
+
export declare function getQueryableEntities(model: Model, queryableName: string): string[];
|
|
5
|
+
export declare function getQueryableProperties(model: Model, queryableName: string): Record<string, Prop>;
|
|
6
|
+
export declare function getUniversalProperties(model: Model, typeName: string): Record<string, Prop>;
|
|
4
7
|
export declare function validateModel(model: Model): void;
|
|
5
8
|
export declare function validateNames(model: Model): void;
|
|
6
9
|
export declare function validateUnionTypes(model: Model): void;
|
|
7
10
|
export declare function validateLookups(model: Model): void;
|
|
8
11
|
export declare function validateIndexes(model: Model): void;
|
|
12
|
+
export declare function validateQueryableInterfaces(model: Model): void;
|
|
9
13
|
export declare function propTypeEquals(a: PropType, b: PropType): boolean;
|
|
10
14
|
export declare function getEntity(model: Model, name: string): Entity;
|
|
11
15
|
export declare function getObject(model: Model, name: string): JsonObject;
|
|
16
|
+
export declare function getInterface(model: Model, name: string): Interface;
|
|
12
17
|
export declare function getFtsQuery(model: Model, name: string): FTS_Query;
|
|
13
18
|
//# sourceMappingURL=model.tools.d.ts.map
|
package/lib/model.tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.tools.d.ts","sourceRoot":"","sources":["../src/model.tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"model.tools.d.ts","sourceRoot":"","sources":["../src/model.tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAA;AAMvF,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CAQzE;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CAc3E;AAMD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBlF;AAGD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAkBhG;AAoCD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAc3F;AAGD,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,QAOzC;AAOD,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,QAwBzC;AAGD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAoBrD;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAiClD;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAwBlD;AAGD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAO9D;AAQD,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAchE;AAGD,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAI5D;AAGD,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAIhE;AAGD,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAIlE;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAIjE"}
|