@subsquid/openreader 0.3.1 → 0.4.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/dist/db.d.ts +1 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/gql/opencrud.d.ts +1 -0
- package/dist/gql/opencrud.d.ts.map +1 -0
- package/dist/gql/schema.d.ts +1 -0
- package/dist/gql/schema.d.ts.map +1 -0
- package/dist/gql/schema.js +116 -17
- package/dist/gql/schema.js.map +1 -1
- package/dist/main.d.ts +1 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/model.d.ts +9 -0
- package/dist/model.d.ts.map +1 -0
- package/dist/model.tools.d.ts +2 -0
- package/dist/model.tools.d.ts.map +1 -0
- package/dist/model.tools.js +27 -1
- package/dist/model.tools.js.map +1 -1
- package/dist/orderBy.d.ts +1 -0
- package/dist/orderBy.d.ts.map +1 -0
- package/dist/queryBuilder.d.ts +1 -0
- package/dist/queryBuilder.d.ts.map +1 -0
- package/dist/relayConnection.d.ts +1 -0
- package/dist/relayConnection.d.ts.map +1 -0
- package/dist/requestedFields.d.ts +1 -0
- package/dist/requestedFields.d.ts.map +1 -0
- package/dist/resolver.d.ts +1 -0
- package/dist/resolver.d.ts.map +1 -0
- package/dist/scalars.d.ts +1 -0
- package/dist/scalars.d.ts.map +1 -0
- package/dist/server.d.ts +1 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/test/basic.test.d.ts +2 -0
- package/dist/test/basic.test.d.ts.map +1 -0
- package/dist/test/basic.test.js +286 -0
- package/dist/test/basic.test.js.map +1 -0
- package/dist/test/connection.test.d.ts +2 -0
- package/dist/test/connection.test.d.ts.map +1 -0
- package/dist/test/connection.test.js +193 -0
- package/dist/test/connection.test.js.map +1 -0
- package/dist/test/fts.test.d.ts +2 -0
- package/dist/test/fts.test.d.ts.map +1 -0
- package/dist/test/fts.test.js +110 -0
- package/dist/test/fts.test.js.map +1 -0
- package/dist/test/lists.test.d.ts +2 -0
- package/dist/test/lists.test.d.ts.map +1 -0
- package/dist/test/lists.test.js +266 -0
- package/dist/test/lists.test.js.map +1 -0
- package/dist/test/lookup.test.d.ts +2 -0
- package/dist/test/lookup.test.d.ts.map +1 -0
- package/dist/test/lookup.test.js +109 -0
- package/dist/test/lookup.test.js.map +1 -0
- package/dist/test/scalars.test.d.ts +2 -0
- package/dist/test/scalars.test.d.ts.map +1 -0
- package/dist/test/scalars.test.js +303 -0
- package/dist/test/scalars.test.js.map +1 -0
- package/dist/test/tools.test.d.ts +2 -0
- package/dist/test/tools.test.d.ts.map +1 -0
- package/dist/test/tools.test.js +49 -0
- package/dist/test/tools.test.js.map +1 -0
- package/dist/test/typed-json.test.d.ts +2 -0
- package/dist/test/typed-json.test.d.ts.map +1 -0
- package/dist/test/typed-json.test.js +75 -0
- package/dist/test/typed-json.test.js.map +1 -0
- package/dist/test/unions.test.d.ts +2 -0
- package/dist/test/unions.test.d.ts.map +1 -0
- package/dist/test/unions.test.js +84 -0
- package/dist/test/unions.test.js.map +1 -0
- package/dist/test/util/setup.d.ts +7 -0
- package/dist/test/util/setup.d.ts.map +1 -0
- package/dist/test/util/setup.js +60 -0
- package/dist/test/util/setup.js.map +1 -0
- package/dist/test/where.test.d.ts +2 -0
- package/dist/test/where.test.d.ts.map +1 -0
- package/dist/test/where.test.js +127 -0
- package/dist/test/where.test.js.map +1 -0
- package/dist/tools.d.ts +1 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/util.d.ts +1 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/where.d.ts +1 -0
- package/dist/where.d.ts.map +1 -0
- package/package.json +15 -13
- package/src/db.ts +83 -0
- package/src/gql/opencrud.ts +328 -0
- package/src/gql/schema.ts +463 -0
- package/src/main.ts +51 -0
- package/src/model.tools.ts +201 -0
- package/src/model.ts +137 -0
- package/src/orderBy.ts +105 -0
- package/src/queryBuilder.ts +785 -0
- package/src/relayConnection.ts +80 -0
- package/src/requestedFields.ts +246 -0
- package/src/resolver.ts +199 -0
- package/src/scalars.ts +247 -0
- package/src/server.ts +115 -0
- package/src/test/basic.test.ts +339 -0
- package/src/test/connection.test.ts +195 -0
- package/src/test/fts.test.ts +114 -0
- package/src/test/lists.test.ts +278 -0
- package/src/test/lookup.test.ts +111 -0
- package/src/test/scalars.test.ts +316 -0
- package/src/test/tools.test.ts +27 -0
- package/src/test/typed-json.test.ts +76 -0
- package/src/test/unions.test.ts +85 -0
- package/src/test/util/setup.ts +63 -0
- package/src/test/where.test.ts +135 -0
- package/src/tools.ts +33 -0
- package/src/util.ts +39 -0
- package/src/where.ts +110 -0
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const setup_1 = require("./util/setup");
|
|
4
|
+
describe('basic tests', function () {
|
|
5
|
+
(0, setup_1.useDatabase)([
|
|
6
|
+
`create table account (id text primary key, wallet text, balance numeric)`,
|
|
7
|
+
`create table historical_balance (id text primary key, account_id text references account(id), balance numeric)`,
|
|
8
|
+
`insert into account (id, wallet, balance) values ('1', 'a', 100)`,
|
|
9
|
+
`insert into account (id, wallet, balance) values ('2', 'b', 200)`,
|
|
10
|
+
`insert into account (id, wallet, balance) values ('3', 'c', 300)`,
|
|
11
|
+
`insert into historical_balance (id, account_id, balance) values ('1-1', '1', 20)`,
|
|
12
|
+
`insert into historical_balance (id, account_id, balance) values ('1-2', '1', 80)`,
|
|
13
|
+
`insert into historical_balance (id, account_id, balance) values ('2-1', '2', 50)`,
|
|
14
|
+
`insert into historical_balance (id, account_id, balance) values ('2-2', '2', 90)`,
|
|
15
|
+
`insert into historical_balance (id, account_id, balance) values ('2-3', '2', 60)`,
|
|
16
|
+
`insert into historical_balance (id, account_id, balance) values ('3-1', '3', 300)`,
|
|
17
|
+
]);
|
|
18
|
+
const client = (0, setup_1.useServer)(`
|
|
19
|
+
interface HasBalance {
|
|
20
|
+
balance: Int!
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
type Account implements HasBalance @entity {
|
|
24
|
+
id: ID!
|
|
25
|
+
wallet: String!
|
|
26
|
+
balance: Int!
|
|
27
|
+
history: [HistoricalBalance!] @derivedFrom(field: "account")
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
"Historical record of account balance"
|
|
31
|
+
type HistoricalBalance implements HasBalance @entity {
|
|
32
|
+
"Unique identifier"
|
|
33
|
+
id: ID!
|
|
34
|
+
|
|
35
|
+
"Related account"
|
|
36
|
+
account: Account!
|
|
37
|
+
|
|
38
|
+
"Balance"
|
|
39
|
+
balance: Int!
|
|
40
|
+
}
|
|
41
|
+
`);
|
|
42
|
+
it('can fetch all accounts', function () {
|
|
43
|
+
return client.test(`query {
|
|
44
|
+
accounts {
|
|
45
|
+
id
|
|
46
|
+
wallet
|
|
47
|
+
balance
|
|
48
|
+
history { balance }
|
|
49
|
+
}
|
|
50
|
+
}`, {
|
|
51
|
+
accounts: [
|
|
52
|
+
{ id: '1', wallet: 'a', balance: 100, history: [{ balance: 20 }, { balance: 80 }] },
|
|
53
|
+
{ id: '2', wallet: 'b', balance: 200, history: [{ balance: 50 }, { balance: 90 }, { balance: 60 }] },
|
|
54
|
+
{ id: '3', wallet: 'c', balance: 300, history: [{ balance: 300 }] },
|
|
55
|
+
]
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
it('supports filtering by id', function () {
|
|
59
|
+
return client.test(`query {
|
|
60
|
+
accounts(where: {id_eq: "3"}) {
|
|
61
|
+
id
|
|
62
|
+
wallet
|
|
63
|
+
}
|
|
64
|
+
}`, {
|
|
65
|
+
accounts: [{ id: '3', wallet: 'c' }]
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
it('supports by id query', function () {
|
|
69
|
+
return client.test(`query {
|
|
70
|
+
a3: accountById(id: "3") {
|
|
71
|
+
id
|
|
72
|
+
wallet
|
|
73
|
+
}
|
|
74
|
+
nonexistent: accountById(id: "foo") {
|
|
75
|
+
id
|
|
76
|
+
wallet
|
|
77
|
+
}
|
|
78
|
+
}`, {
|
|
79
|
+
a3: { id: '3', wallet: 'c' },
|
|
80
|
+
nonexistent: null
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
it('supports by unique input query', function () {
|
|
84
|
+
return client.test(`query {
|
|
85
|
+
a2: accountByUniqueInput(where: {id: "2"}) {
|
|
86
|
+
id
|
|
87
|
+
wallet
|
|
88
|
+
}
|
|
89
|
+
nonexistent: accountByUniqueInput(where: {id: "foo"}) {
|
|
90
|
+
id
|
|
91
|
+
wallet
|
|
92
|
+
}
|
|
93
|
+
}`, {
|
|
94
|
+
a2: { id: '2', wallet: 'b' },
|
|
95
|
+
nonexistent: null
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
it('can fetch deep relations', function () {
|
|
99
|
+
return client.test(`query {
|
|
100
|
+
accounts(where: {id_eq: "3"}) {
|
|
101
|
+
id
|
|
102
|
+
history {
|
|
103
|
+
id
|
|
104
|
+
account {
|
|
105
|
+
wallet
|
|
106
|
+
history {
|
|
107
|
+
balance
|
|
108
|
+
account {
|
|
109
|
+
id
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}`, {
|
|
116
|
+
accounts: [{
|
|
117
|
+
id: '3',
|
|
118
|
+
history: [{
|
|
119
|
+
id: '3-1',
|
|
120
|
+
account: {
|
|
121
|
+
wallet: 'c',
|
|
122
|
+
history: [{
|
|
123
|
+
balance: 300,
|
|
124
|
+
account: {
|
|
125
|
+
id: '3'
|
|
126
|
+
}
|
|
127
|
+
}]
|
|
128
|
+
}
|
|
129
|
+
}]
|
|
130
|
+
}]
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
it('supports *_some filter', function () {
|
|
134
|
+
return client.test(`query {
|
|
135
|
+
accounts(where: {history_some: {balance_lt: 50}}) {
|
|
136
|
+
id
|
|
137
|
+
}
|
|
138
|
+
}`, {
|
|
139
|
+
accounts: [{ id: '1' }]
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
it('supports *_every filter', function () {
|
|
143
|
+
return client.test(`query {
|
|
144
|
+
accounts(where: {history_every: {balance_gt: 20}}) {
|
|
145
|
+
wallet
|
|
146
|
+
}
|
|
147
|
+
}`, {
|
|
148
|
+
accounts: [{ wallet: 'b' }, { wallet: 'c' }]
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
it('supports *_none filter', function () {
|
|
152
|
+
return client.test(`query {
|
|
153
|
+
accounts(where: {history_none: {balance_lt: 60}}) {
|
|
154
|
+
wallet
|
|
155
|
+
}
|
|
156
|
+
}`, {
|
|
157
|
+
accounts: [{ wallet: 'c' }]
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
it('supports gql aliases', function () {
|
|
161
|
+
return client.test(`query {
|
|
162
|
+
accounts(where: {id_eq: "1"}) {
|
|
163
|
+
balance
|
|
164
|
+
bag: wallet
|
|
165
|
+
purse: wallet
|
|
166
|
+
payment1: history(where: {id_eq: "1-1"}) {
|
|
167
|
+
balance
|
|
168
|
+
}
|
|
169
|
+
payment2: history(where: {id_eq: "1-2"}) {
|
|
170
|
+
balance
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}`, {
|
|
174
|
+
accounts: [{
|
|
175
|
+
balance: 100,
|
|
176
|
+
bag: 'a',
|
|
177
|
+
purse: 'a',
|
|
178
|
+
payment1: [{ balance: 20 }],
|
|
179
|
+
payment2: [{ balance: 80 }]
|
|
180
|
+
}]
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
it('supports gql fragments', function () {
|
|
184
|
+
return client.test(`query {
|
|
185
|
+
accounts(where: {id_eq: "1"}) {
|
|
186
|
+
...accountFields
|
|
187
|
+
history {
|
|
188
|
+
...historicalBalance
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
fragment accountFields on Account {
|
|
194
|
+
id
|
|
195
|
+
wallet
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
fragment historicalBalance on HistoricalBalance {
|
|
199
|
+
balance
|
|
200
|
+
}`, {
|
|
201
|
+
accounts: [{
|
|
202
|
+
id: '1',
|
|
203
|
+
wallet: 'a',
|
|
204
|
+
history: [{ balance: 20 }, { balance: 80 }]
|
|
205
|
+
}]
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
it('supports gql fragments on interfaces', function () {
|
|
209
|
+
return client.test(`query {
|
|
210
|
+
accounts(where: {id_eq: "1"}) {
|
|
211
|
+
...balance
|
|
212
|
+
history {
|
|
213
|
+
...balance
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
fragment balance on HasBalance {
|
|
219
|
+
... on Account {
|
|
220
|
+
accountBalance: balance
|
|
221
|
+
}
|
|
222
|
+
... on HistoricalBalance {
|
|
223
|
+
payment: balance
|
|
224
|
+
}
|
|
225
|
+
}`, {
|
|
226
|
+
accounts: [{
|
|
227
|
+
accountBalance: 100,
|
|
228
|
+
history: [{ payment: 20 }, { payment: 80 }]
|
|
229
|
+
}]
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
it('supports sorting', function () {
|
|
233
|
+
return client.test(`query {
|
|
234
|
+
historicalBalances(orderBy: balance_ASC) {
|
|
235
|
+
balance
|
|
236
|
+
}
|
|
237
|
+
}`, {
|
|
238
|
+
historicalBalances: [
|
|
239
|
+
{ balance: 20 },
|
|
240
|
+
{ balance: 50 },
|
|
241
|
+
{ balance: 60 },
|
|
242
|
+
{ balance: 80 },
|
|
243
|
+
{ balance: 90 },
|
|
244
|
+
{ balance: 300 }
|
|
245
|
+
]
|
|
246
|
+
});
|
|
247
|
+
});
|
|
248
|
+
it('supports sorting by referenced entity field', function () {
|
|
249
|
+
return client.test(`query {
|
|
250
|
+
historicalBalances(orderBy: [account_wallet_ASC, balance_DESC]) {
|
|
251
|
+
balance
|
|
252
|
+
}
|
|
253
|
+
}`, {
|
|
254
|
+
historicalBalances: [
|
|
255
|
+
{ balance: 80 },
|
|
256
|
+
{ balance: 20 },
|
|
257
|
+
{ balance: 90 },
|
|
258
|
+
{ balance: 60 },
|
|
259
|
+
{ balance: 50 },
|
|
260
|
+
{ balance: 300 }
|
|
261
|
+
]
|
|
262
|
+
});
|
|
263
|
+
});
|
|
264
|
+
it('supports descriptions', function () {
|
|
265
|
+
return client.test(`
|
|
266
|
+
query {
|
|
267
|
+
HistoricalBalance: __type(name: "HistoricalBalance") {
|
|
268
|
+
description
|
|
269
|
+
fields {
|
|
270
|
+
description
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
`, {
|
|
275
|
+
HistoricalBalance: {
|
|
276
|
+
description: 'Historical record of account balance',
|
|
277
|
+
fields: [
|
|
278
|
+
{ description: 'Unique identifier' },
|
|
279
|
+
{ description: 'Related account' },
|
|
280
|
+
{ description: 'Balance' },
|
|
281
|
+
]
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
});
|
|
285
|
+
});
|
|
286
|
+
//# sourceMappingURL=basic.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basic.test.js","sourceRoot":"","sources":["../../src/test/basic.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.test.d.ts","sourceRoot":"","sources":["../../src/test/connection.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const setup_1 = require("./util/setup");
|
|
4
|
+
describe('relay connections', function () {
|
|
5
|
+
(0, setup_1.useDatabase)([
|
|
6
|
+
`create table letter (id text primary key)`,
|
|
7
|
+
`insert into letter (id) values ('a')`,
|
|
8
|
+
`insert into letter (id) values ('b')`,
|
|
9
|
+
`insert into letter (id) values ('c')`,
|
|
10
|
+
`insert into letter (id) values ('d')`,
|
|
11
|
+
`insert into letter (id) values ('e')`,
|
|
12
|
+
`insert into letter (id) values ('f')`,
|
|
13
|
+
`insert into letter (id) values ('g')`,
|
|
14
|
+
`create table empty (id text primary key)`
|
|
15
|
+
]);
|
|
16
|
+
const client = (0, setup_1.useServer)(`
|
|
17
|
+
type Letter @entity {
|
|
18
|
+
id: ID!
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
type Empty @entity {
|
|
22
|
+
id: ID!
|
|
23
|
+
}
|
|
24
|
+
`);
|
|
25
|
+
it('pagination', function () {
|
|
26
|
+
return client.test(`
|
|
27
|
+
query {
|
|
28
|
+
page1: lettersConnection(orderBy: id_ASC, first: 3) {
|
|
29
|
+
...fields
|
|
30
|
+
}
|
|
31
|
+
page2: lettersConnection(orderBy: id_ASC, first: 3, after: "3") {
|
|
32
|
+
...fields
|
|
33
|
+
}
|
|
34
|
+
page3: lettersConnection(orderBy: id_ASC, first: 3, after: "6") {
|
|
35
|
+
...fields
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
fragment fields on LettersConnection {
|
|
39
|
+
edges {
|
|
40
|
+
node { id }
|
|
41
|
+
cursor
|
|
42
|
+
}
|
|
43
|
+
pageInfo {
|
|
44
|
+
hasNextPage
|
|
45
|
+
hasPreviousPage
|
|
46
|
+
startCursor
|
|
47
|
+
endCursor
|
|
48
|
+
}
|
|
49
|
+
totalCount
|
|
50
|
+
}
|
|
51
|
+
`, {
|
|
52
|
+
page1: {
|
|
53
|
+
edges: [
|
|
54
|
+
{ node: { id: 'a' }, cursor: '1' },
|
|
55
|
+
{ node: { id: 'b' }, cursor: '2' },
|
|
56
|
+
{ node: { id: 'c' }, cursor: '3' },
|
|
57
|
+
],
|
|
58
|
+
pageInfo: {
|
|
59
|
+
hasNextPage: true,
|
|
60
|
+
hasPreviousPage: false,
|
|
61
|
+
startCursor: '1',
|
|
62
|
+
endCursor: '3'
|
|
63
|
+
},
|
|
64
|
+
totalCount: 7
|
|
65
|
+
},
|
|
66
|
+
page2: {
|
|
67
|
+
edges: [
|
|
68
|
+
{ node: { id: 'd' }, cursor: '4' },
|
|
69
|
+
{ node: { id: 'e' }, cursor: '5' },
|
|
70
|
+
{ node: { id: 'f' }, cursor: '6' },
|
|
71
|
+
],
|
|
72
|
+
pageInfo: {
|
|
73
|
+
hasNextPage: true,
|
|
74
|
+
hasPreviousPage: true,
|
|
75
|
+
startCursor: '4',
|
|
76
|
+
endCursor: '6'
|
|
77
|
+
},
|
|
78
|
+
totalCount: 7
|
|
79
|
+
},
|
|
80
|
+
page3: {
|
|
81
|
+
edges: [
|
|
82
|
+
{ node: { id: 'g' }, cursor: '7' },
|
|
83
|
+
],
|
|
84
|
+
pageInfo: {
|
|
85
|
+
hasNextPage: false,
|
|
86
|
+
hasPreviousPage: true,
|
|
87
|
+
startCursor: '7',
|
|
88
|
+
endCursor: '7'
|
|
89
|
+
},
|
|
90
|
+
totalCount: 7
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
it('pagination without nodes', function () {
|
|
95
|
+
return client.test(`
|
|
96
|
+
query {
|
|
97
|
+
page1: lettersConnection(orderBy: id_ASC, first: 3) {
|
|
98
|
+
...fields
|
|
99
|
+
}
|
|
100
|
+
page2: lettersConnection(orderBy: id_ASC, first: 3, after: "3") {
|
|
101
|
+
...fields
|
|
102
|
+
}
|
|
103
|
+
page3: lettersConnection(orderBy: id_ASC, first: 3, after: "6") {
|
|
104
|
+
...fields
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
fragment fields on LettersConnection {
|
|
108
|
+
edges {
|
|
109
|
+
cursor
|
|
110
|
+
}
|
|
111
|
+
pageInfo {
|
|
112
|
+
hasNextPage
|
|
113
|
+
hasPreviousPage
|
|
114
|
+
startCursor
|
|
115
|
+
endCursor
|
|
116
|
+
}
|
|
117
|
+
totalCount
|
|
118
|
+
}
|
|
119
|
+
`, {
|
|
120
|
+
page1: {
|
|
121
|
+
edges: [
|
|
122
|
+
{ cursor: '1' },
|
|
123
|
+
{ cursor: '2' },
|
|
124
|
+
{ cursor: '3' },
|
|
125
|
+
],
|
|
126
|
+
pageInfo: {
|
|
127
|
+
hasNextPage: true,
|
|
128
|
+
hasPreviousPage: false,
|
|
129
|
+
startCursor: '1',
|
|
130
|
+
endCursor: '3'
|
|
131
|
+
},
|
|
132
|
+
totalCount: 7
|
|
133
|
+
},
|
|
134
|
+
page2: {
|
|
135
|
+
edges: [
|
|
136
|
+
{ cursor: '4' },
|
|
137
|
+
{ cursor: '5' },
|
|
138
|
+
{ cursor: '6' },
|
|
139
|
+
],
|
|
140
|
+
pageInfo: {
|
|
141
|
+
hasNextPage: true,
|
|
142
|
+
hasPreviousPage: true,
|
|
143
|
+
startCursor: '4',
|
|
144
|
+
endCursor: '6'
|
|
145
|
+
},
|
|
146
|
+
totalCount: 7
|
|
147
|
+
},
|
|
148
|
+
page3: {
|
|
149
|
+
edges: [
|
|
150
|
+
{ cursor: '7' },
|
|
151
|
+
],
|
|
152
|
+
pageInfo: {
|
|
153
|
+
hasNextPage: false,
|
|
154
|
+
hasPreviousPage: true,
|
|
155
|
+
startCursor: '7',
|
|
156
|
+
endCursor: '7'
|
|
157
|
+
},
|
|
158
|
+
totalCount: 7
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
it('request to empty table', function () {
|
|
163
|
+
return client.test(`
|
|
164
|
+
query {
|
|
165
|
+
emptiesConnection(orderBy: id_ASC) {
|
|
166
|
+
edges {
|
|
167
|
+
node { id }
|
|
168
|
+
cursor
|
|
169
|
+
}
|
|
170
|
+
pageInfo {
|
|
171
|
+
hasNextPage
|
|
172
|
+
hasPreviousPage
|
|
173
|
+
startCursor
|
|
174
|
+
endCursor
|
|
175
|
+
}
|
|
176
|
+
totalCount
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
`, {
|
|
180
|
+
emptiesConnection: {
|
|
181
|
+
edges: [],
|
|
182
|
+
pageInfo: {
|
|
183
|
+
hasNextPage: false,
|
|
184
|
+
hasPreviousPage: false,
|
|
185
|
+
startCursor: '',
|
|
186
|
+
endCursor: ''
|
|
187
|
+
},
|
|
188
|
+
totalCount: 0
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
//# sourceMappingURL=connection.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.test.js","sourceRoot":"","sources":["../../src/test/connection.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fts.test.d.ts","sourceRoot":"","sources":["../../src/test/fts.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const setup_1 = require("./util/setup");
|
|
4
|
+
function tsvector(columns) {
|
|
5
|
+
return columns.map(col => `setweight(to_tsvector('english', coalesce(${col}, '')), 'A')`).join(' || ');
|
|
6
|
+
}
|
|
7
|
+
describe('full text search', function () {
|
|
8
|
+
(0, setup_1.useDatabase)([
|
|
9
|
+
`create table foo (
|
|
10
|
+
id text primary key,
|
|
11
|
+
foo int,
|
|
12
|
+
comment text,
|
|
13
|
+
search_tsv tsvector generated always as ( ${tsvector(['comment'])} ) stored
|
|
14
|
+
)`,
|
|
15
|
+
`create table bar (
|
|
16
|
+
id text primary key,
|
|
17
|
+
bar text,
|
|
18
|
+
description text,
|
|
19
|
+
search_tsv tsvector generated always as ( ${tsvector(['bar', 'description'])} ) stored
|
|
20
|
+
)`,
|
|
21
|
+
`insert into foo (id, foo, comment) values ('1', 1, 'Some man greeted me with hello')`,
|
|
22
|
+
`insert into foo (id, foo, comment) values ('2', 2, 'Deeply buried lorem ipsum dolor sit amet, then comes baz')`,
|
|
23
|
+
`insert into foo (id, foo, comment) values ('3', 3, 'Lorem ipsum dolor sit amet')`,
|
|
24
|
+
`insert into bar (id, bar, description) values ('1', 'every bar is followed by baz. Baz!', 'Absolutely!')`,
|
|
25
|
+
`insert into bar (id, bar, description) values ('2', 'qux', 'Baz should be here! Baz! Baz! Baz!')`,
|
|
26
|
+
]);
|
|
27
|
+
const client = (0, setup_1.useServer)(`
|
|
28
|
+
type Foo @entity {
|
|
29
|
+
id: ID!
|
|
30
|
+
foo: Int
|
|
31
|
+
comment: String @fulltext(query: "search")
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
type Bar @entity {
|
|
35
|
+
id: ID!
|
|
36
|
+
bar: String @fulltext(query: "search")
|
|
37
|
+
description: String @fulltext(query: "search")
|
|
38
|
+
}
|
|
39
|
+
`);
|
|
40
|
+
it('finds "hello" across entities in Foo.comment and highlights it', function () {
|
|
41
|
+
return client.test(`
|
|
42
|
+
query {
|
|
43
|
+
search(text: "hello") {
|
|
44
|
+
item {
|
|
45
|
+
... on Foo { id, foo }
|
|
46
|
+
}
|
|
47
|
+
highlight
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
`, {
|
|
51
|
+
search: [{
|
|
52
|
+
item: { id: '1', foo: 1 },
|
|
53
|
+
highlight: 'Some man greeted me with <b>hello</b>'
|
|
54
|
+
}]
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
it('finds "absolute" across entities in Bar.description and highlights it', function () {
|
|
58
|
+
return client.test(`
|
|
59
|
+
query {
|
|
60
|
+
search(text: "absolute") {
|
|
61
|
+
item {
|
|
62
|
+
... on Bar { id, bar }
|
|
63
|
+
}
|
|
64
|
+
highlight
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
`, {
|
|
68
|
+
search: [{
|
|
69
|
+
item: { id: '1', bar: 'every bar is followed by baz. Baz!' },
|
|
70
|
+
highlight: 'every bar is followed by baz. Baz!\n\n<b>Absolutely</b>!'
|
|
71
|
+
}]
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
it('finds and arranges "Baz"', function () {
|
|
75
|
+
return client.test(`
|
|
76
|
+
query {
|
|
77
|
+
search(text: "baz") {
|
|
78
|
+
item {
|
|
79
|
+
... on Foo { id foo }
|
|
80
|
+
... on Bar { id bar }
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
`, {
|
|
85
|
+
search: [
|
|
86
|
+
{ item: { id: '2', bar: 'qux' } },
|
|
87
|
+
{ item: { id: '1', bar: 'every bar is followed by baz. Baz!' } },
|
|
88
|
+
{ item: { id: '2', foo: 2 } },
|
|
89
|
+
]
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
it('supports where conditions', function () {
|
|
93
|
+
return client.test(`
|
|
94
|
+
query {
|
|
95
|
+
search(text: "baz" whereBar: {bar_eq: "qux"}) {
|
|
96
|
+
item {
|
|
97
|
+
... on Foo { id foo }
|
|
98
|
+
... on Bar { id bar }
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
`, {
|
|
103
|
+
search: [
|
|
104
|
+
{ item: { id: '2', bar: 'qux' } },
|
|
105
|
+
{ item: { id: '2', foo: 2 } }
|
|
106
|
+
]
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
//# sourceMappingURL=fts.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fts.test.js","sourceRoot":"","sources":["../../src/test/fts.test.ts"],"names":[],"mappings":";;AAAA,wCAAmD;AAEnD,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;AAED,QAAQ,CAAC,kBAAkB,EAAE;IACzB,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lists.test.d.ts","sourceRoot":"","sources":["../../src/test/lists.test.ts"],"names":[],"mappings":""}
|