@subsquid/openreader 4.3.0 → 4.4.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/ir/args.d.ts +1 -1
- package/lib/ir/args.d.ts.map +1 -1
- package/lib/opencrud/orderBy.d.ts.map +1 -1
- package/lib/opencrud/orderBy.js +2 -0
- package/lib/opencrud/orderBy.js.map +1 -1
- package/package.json +5 -6
- package/src/ir/args.ts +1 -1
- package/src/opencrud/orderBy.ts +14 -11
package/lib/ir/args.d.ts
CHANGED
|
@@ -43,5 +43,5 @@ export type UnaryOp = 'isNull';
|
|
|
43
43
|
export interface OrderBy {
|
|
44
44
|
[field: string]: SortOrder | OrderBy;
|
|
45
45
|
}
|
|
46
|
-
export type SortOrder =
|
|
46
|
+
export type SortOrder = 'ASC' | 'DESC' | 'ASC NULLS FIRST' | 'DESC NULLS LAST';
|
|
47
47
|
//# sourceMappingURL=args.d.ts.map
|
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,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,MAAM,MAAM,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,MAAM,MAAM,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,MAAM,MAAM,OAAO,GAAG,QAAQ,CAAA;AAG9B,MAAM,WAAW,OAAO;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAA;CACvC;AAGD,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,CAAA"}
|
|
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,MAAM,MAAM,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,MAAM,MAAM,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,MAAM,MAAM,OAAO,GAAG,QAAQ,CAAA;AAG9B,MAAM,WAAW,OAAO;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAA;CACvC;AAGD,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,iBAAiB,GAAG,iBAAiB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderBy.d.ts","sourceRoot":"","sources":["../../src/opencrud/orderBy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"orderBy.d.ts","sourceRoot":"","sources":["../../src/opencrud/orderBy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAGpC;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAA;AAGzC;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,WAAW,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;AAMjF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,wBAAwB,CAQ1F;AA0CD,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAAG,OAAO,CASnG;AAGD,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAerD"}
|
package/lib/opencrud/orderBy.js
CHANGED
|
@@ -31,6 +31,8 @@ function buildOrderByMapping(model, typeName, depth) {
|
|
|
31
31
|
if (propType.name != 'JSON') {
|
|
32
32
|
m.set(key + '_ASC', { [key]: 'ASC' });
|
|
33
33
|
m.set(key + '_DESC', { [key]: 'DESC' });
|
|
34
|
+
m.set(key + '_ASC_NULLS_FIRST', { [key]: 'ASC NULLS FIRST' });
|
|
35
|
+
m.set(key + '_DESC_NULLS_LAST', { [key]: 'DESC NULLS LAST' });
|
|
34
36
|
}
|
|
35
37
|
break;
|
|
36
38
|
case 'object':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderBy.js","sourceRoot":"","sources":["../../src/opencrud/orderBy.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAE3B,
|
|
1
|
+
{"version":3,"file":"orderBy.js","sourceRoot":"","sources":["../../src/opencrud/orderBy.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@subsquid/openreader",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.4.0",
|
|
4
4
|
"description": "GraphQL server for postgres-compatible databases",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"graphql",
|
|
@@ -24,14 +24,14 @@
|
|
|
24
24
|
"@graphql-tools/merge": "^8",
|
|
25
25
|
"@subsquid/graphiql-console": "^0.3.0",
|
|
26
26
|
"@subsquid/logger": "^1.3.0",
|
|
27
|
-
"@subsquid/util-internal": "^2.
|
|
28
|
-
"@subsquid/util-internal-commander": "^1.
|
|
27
|
+
"@subsquid/util-internal": "^2.5.0",
|
|
28
|
+
"@subsquid/util-internal-commander": "^1.3.0",
|
|
29
29
|
"@subsquid/util-internal-hex": "^1.2.0",
|
|
30
30
|
"@subsquid/util-internal-http-server": "^1.2.0",
|
|
31
31
|
"@subsquid/util-naming": "^1.2.0",
|
|
32
32
|
"apollo-server-core": "^3.12.0",
|
|
33
33
|
"apollo-server-express": "^3.12.0",
|
|
34
|
-
"commander": "^
|
|
34
|
+
"commander": "^11.0.0",
|
|
35
35
|
"deep-equal": "^2.2.1",
|
|
36
36
|
"express": "^4.18.2",
|
|
37
37
|
"graphql": "^15.8.0",
|
|
@@ -64,6 +64,5 @@
|
|
|
64
64
|
"scripts": {
|
|
65
65
|
"build": "rm -rf lib && tsc",
|
|
66
66
|
"test": "make up && sleep 2 && make test test-cockroach && make down || (make down && exit 1)"
|
|
67
|
-
}
|
|
68
|
-
"readme": "# OpenReader\n\nGraphQL server for squid framework. Given [data schema](https://docs.subsquid.io/reference/openreader-schema) \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"
|
|
67
|
+
}
|
|
69
68
|
}
|
package/src/ir/args.ts
CHANGED
package/src/opencrud/orderBy.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import assert from "assert"
|
|
2
|
-
import type {Model} from "../model"
|
|
3
|
-
import {
|
|
4
|
-
import {OrderBy} from "../ir/args"
|
|
2
|
+
import type { Model } from "../model"
|
|
3
|
+
import { getUniversalProperties } from '../model.tools'
|
|
4
|
+
import { OrderBy } from "../ir/args"
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -36,31 +36,34 @@ function buildOrderByMapping(model: Model, typeName: string, depth: number): Ope
|
|
|
36
36
|
let m = new Map<string, OrderBy>()
|
|
37
37
|
for (let key in properties) {
|
|
38
38
|
let propType = properties[key].type
|
|
39
|
-
switch(propType.kind) {
|
|
39
|
+
switch (propType.kind) {
|
|
40
40
|
case 'scalar':
|
|
41
41
|
case 'enum':
|
|
42
42
|
if (propType.name != 'JSON') {
|
|
43
|
-
m.set(key + '_ASC', {[key]: 'ASC'})
|
|
44
|
-
m.set(key + '_DESC', {[key]: 'DESC'})
|
|
43
|
+
m.set(key + '_ASC', { [key]: 'ASC' })
|
|
44
|
+
m.set(key + '_DESC', { [key]: 'DESC' })
|
|
45
|
+
m.set(key + '_ASC_NULLS_FIRST', { [key]: 'ASC NULLS FIRST' });
|
|
46
|
+
m.set(key + '_DESC_NULLS_LAST', { [key]: 'DESC NULLS LAST' });
|
|
47
|
+
|
|
45
48
|
}
|
|
46
49
|
break
|
|
47
50
|
case 'object':
|
|
48
51
|
case 'union':
|
|
49
52
|
for (let [name, spec] of buildOrderByMapping(model, propType.name, depth - 1)) {
|
|
50
|
-
m.set(key + '_' + name, {[key]: spec})
|
|
53
|
+
m.set(key + '_' + name, { [key]: spec })
|
|
51
54
|
}
|
|
52
55
|
break
|
|
53
56
|
case 'fk':
|
|
54
57
|
case 'lookup':
|
|
55
58
|
for (let [name, spec] of buildOrderByMapping(model, propType.entity, depth - 1)) {
|
|
56
|
-
m.set(key + '_' + name, {[key]: spec})
|
|
59
|
+
m.set(key + '_' + name, { [key]: spec })
|
|
57
60
|
}
|
|
58
61
|
break
|
|
59
62
|
}
|
|
60
63
|
}
|
|
61
64
|
if (model[typeName].kind == 'interface') {
|
|
62
|
-
m.set('_type_ASC', {_type: 'ASC'})
|
|
63
|
-
m.set('_type_DESC', {_type: 'DESC'})
|
|
65
|
+
m.set('_type_ASC', { _type: 'ASC' })
|
|
66
|
+
m.set('_type_DESC', { _type: 'DESC' })
|
|
64
67
|
}
|
|
65
68
|
return m
|
|
66
69
|
}
|
|
@@ -83,7 +86,7 @@ export function mergeOrderBy(list: OrderBy[]): OrderBy {
|
|
|
83
86
|
list.forEach(item => {
|
|
84
87
|
for (let key in item) {
|
|
85
88
|
let current = result[key]
|
|
86
|
-
if (current == null
|
|
89
|
+
if (current == null) {
|
|
87
90
|
result[key] = item[key]
|
|
88
91
|
} else if (typeof current != 'string') {
|
|
89
92
|
let it = item[key]
|