@subsquid/openreader 2.1.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +4 -4
- package/lib/limit.size.d.ts.map +1 -1
- package/lib/limit.size.js +51 -20
- package/lib/limit.size.js.map +1 -1
- package/lib/main.js +0 -9
- package/lib/main.js.map +1 -1
- package/lib/model.d.ts +3 -2
- 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 +8 -3
- 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 +56 -62
- 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/scalars/BigDecimal.d.ts +3 -0
- package/lib/scalars/BigDecimal.d.ts.map +1 -0
- package/lib/scalars/BigDecimal.js +38 -0
- package/lib/scalars/BigDecimal.js.map +1 -0
- package/lib/scalars/index.d.ts +1 -0
- package/lib/scalars/index.d.ts.map +1 -1
- package/lib/scalars/index.js +2 -0
- package/lib/scalars/index.js.map +1 -1
- package/lib/server.d.ts +4 -2
- package/lib/server.d.ts.map +1 -1
- package/lib/server.js +4 -2
- package/lib/server.js.map +1 -1
- package/lib/sql/cursor.d.ts.map +1 -1
- package/lib/sql/cursor.js +4 -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 +112 -11
- 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/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/scalars.test.js +75 -1
- package/lib/test/scalars.test.js.map +1 -1
- package/lib/util/big-decimal.d.ts +5 -0
- package/lib/util/big-decimal.d.ts.map +1 -0
- package/lib/util/big-decimal.js +15 -0
- package/lib/util/big-decimal.js.map +1 -0
- package/package.json +10 -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 +55 -30
- package/src/main.ts +0 -11
- package/src/model.schema.ts +16 -9
- package/src/model.tools.ts +121 -8
- package/src/model.ts +3 -2
- package/src/opencrud/orderBy.ts +13 -17
- package/src/opencrud/schema.ts +81 -84
- package/src/opencrud/tree.ts +55 -26
- package/src/scalars/BigDecimal.ts +37 -0
- package/src/scalars/index.ts +2 -0
- package/src/server.ts +10 -7
- package/src/sql/cursor.ts +4 -2
- package/src/sql/mapping.ts +18 -1
- package/src/sql/printer.ts +142 -22
- package/src/sql/query.ts +50 -30
- package/src/test/queryable.test.ts +258 -0
- package/src/test/scalars.test.ts +78 -1
- package/src/util/big-decimal.ts +15 -0
package/src/test/scalars.test.ts
CHANGED
|
@@ -2,7 +2,7 @@ import {useDatabase, useServer} from "./setup"
|
|
|
2
2
|
|
|
3
3
|
describe('scalars', function() {
|
|
4
4
|
useDatabase([
|
|
5
|
-
`create table scalar (id text primary key, "boolean" bool, "bigint" numeric, "string" text, enum text, date_time timestamptz, "bytes" bytea, "json" jsonb, deep jsonb)`,
|
|
5
|
+
`create table scalar (id text primary key, "boolean" bool, "bigint" numeric, "bigdecimal" numeric, "string" text, enum text, date_time timestamptz, "bytes" bytea, "json" jsonb, deep jsonb)`,
|
|
6
6
|
`insert into scalar (id, "boolean") values ('1', true)`,
|
|
7
7
|
`insert into scalar (id, "boolean", deep) values ('2', false, '{"boolean": true}'::jsonb)`,
|
|
8
8
|
`insert into scalar (id, "bigint", deep) values ('3', 1000000000000000000000000000000000000, '{"bigint": "1000000000000000000000000000000000000"}'::jsonb)`,
|
|
@@ -23,6 +23,9 @@ describe('scalars', function() {
|
|
|
23
23
|
`insert into scalar (id, "enum") values ('17', 'C')`,
|
|
24
24
|
`insert into scalar (id, "json") values ('18', '{"key1": "value1"}'::jsonb)`,
|
|
25
25
|
`insert into scalar (id, "json") values ('19', '{"key2": "value2"}'::jsonb)`,
|
|
26
|
+
`insert into scalar (id, "bigdecimal", deep) values ('20', 0.00000000000000000000000000000000002, '{"bigdecimal": "100.00000000000000000000000000000000002"}'::jsonb)`,
|
|
27
|
+
`insert into scalar (id, "bigdecimal", deep) values ('21', 0.00000000000000000000000000000000001, '{"bigdecimal": "12.00000000000000000000000000000000001"}'::jsonb)`,
|
|
28
|
+
`insert into scalar (id, "bigdecimal", deep) values ('22', 5, '{"bigdecimal": "5"}'::jsonb)`,
|
|
26
29
|
])
|
|
27
30
|
|
|
28
31
|
const client = useServer(`
|
|
@@ -32,6 +35,7 @@ describe('scalars', function() {
|
|
|
32
35
|
string: String
|
|
33
36
|
enum: Enum
|
|
34
37
|
bigint: BigInt
|
|
38
|
+
bigdecimal: BigDecimal
|
|
35
39
|
dateTime: DateTime
|
|
36
40
|
bytes: Bytes
|
|
37
41
|
json: JSON,
|
|
@@ -40,6 +44,7 @@ describe('scalars', function() {
|
|
|
40
44
|
|
|
41
45
|
type DeepScalar {
|
|
42
46
|
bigint: BigInt
|
|
47
|
+
bigdecimal: BigDecimal
|
|
43
48
|
dateTime: DateTime
|
|
44
49
|
bytes: Bytes
|
|
45
50
|
boolean: Boolean
|
|
@@ -233,6 +238,78 @@ describe('scalars', function() {
|
|
|
233
238
|
})
|
|
234
239
|
})
|
|
235
240
|
|
|
241
|
+
describe('BigDecimal', function () {
|
|
242
|
+
it('outputs correctly', function () {
|
|
243
|
+
return client.test(`
|
|
244
|
+
query {
|
|
245
|
+
scalars(where: {id_in: ["20", "21", "22"]} orderBy: id_ASC) {
|
|
246
|
+
id
|
|
247
|
+
bigdecimal
|
|
248
|
+
deep { bigdecimal }
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
`, {
|
|
252
|
+
scalars: [
|
|
253
|
+
{
|
|
254
|
+
id: '20',
|
|
255
|
+
bigdecimal: '2e-35',
|
|
256
|
+
deep: {bigdecimal: '100.00000000000000000000000000000000002'}
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
id: '21',
|
|
260
|
+
bigdecimal: '1e-35',
|
|
261
|
+
deep: {bigdecimal: '12.00000000000000000000000000000000001'}
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
id: '22',
|
|
265
|
+
bigdecimal: '5',
|
|
266
|
+
deep: {bigdecimal: '5'}
|
|
267
|
+
}
|
|
268
|
+
]
|
|
269
|
+
})
|
|
270
|
+
})
|
|
271
|
+
|
|
272
|
+
it('supports where conditions', function () {
|
|
273
|
+
return client.test(`
|
|
274
|
+
query {
|
|
275
|
+
eq: scalars(where: {bigdecimal_eq: 0.00000000000000000000000000000000002} orderBy: id_ASC) { id }
|
|
276
|
+
not_eq: scalars(where: {bigdecimal_not_eq: 0.00000000000000000000000000000000002} orderBy: id_ASC) { id }
|
|
277
|
+
gt: scalars(where: {bigdecimal_gt: 0.00000000000000000000000000000000001} orderBy: id_ASC) { id }
|
|
278
|
+
gte: scalars(where: {bigdecimal_gte: 0.00000000000000000000000000000000002} orderBy: id_ASC) { id }
|
|
279
|
+
lt: scalars(where: {bigdecimal_lt: 0.00000000000000000000000000000000002} orderBy: id_ASC) { id }
|
|
280
|
+
lte: scalars(where: {bigdecimal_lte: 0.00000000000000000000000000000000002} orderBy: id_ASC) { id }
|
|
281
|
+
in: scalars(where: {bigdecimal_in: [0.00000000000000000000000000000000001, 5.0]} orderBy: id_ASC) { id }
|
|
282
|
+
not_in: scalars(where: {bigdecimal_not_in: [0.00000000000000000000000000000000001, 5.0]} orderBy: id_ASC) { id }
|
|
283
|
+
}
|
|
284
|
+
`, {
|
|
285
|
+
eq: [{id: '20'}],
|
|
286
|
+
not_eq: [{id: '21'}, {id: '22'}],
|
|
287
|
+
gt: [{id: '20'}, {id: '22'}],
|
|
288
|
+
gte: [{id: '20'}, {id: '22'}],
|
|
289
|
+
lt: [{id: '21'}],
|
|
290
|
+
lte: [{id: '20'}, {id: '21'}],
|
|
291
|
+
in: [{id: '21'}, {id: '22'}],
|
|
292
|
+
not_in: [{id: '20'}]
|
|
293
|
+
})
|
|
294
|
+
})
|
|
295
|
+
|
|
296
|
+
it('json sort', function () {
|
|
297
|
+
return client.test(`
|
|
298
|
+
query {
|
|
299
|
+
scalars(orderBy: deep_bigdecimal_ASC where: {id_in: ["20", "21", "22"]}) {
|
|
300
|
+
id
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
`, {
|
|
304
|
+
scalars: [
|
|
305
|
+
{id: '22'},
|
|
306
|
+
{id: '21'},
|
|
307
|
+
{id: '20'}
|
|
308
|
+
]
|
|
309
|
+
})
|
|
310
|
+
})
|
|
311
|
+
})
|
|
312
|
+
|
|
236
313
|
describe('DateTime', function () {
|
|
237
314
|
it('outputs correctly', function () {
|
|
238
315
|
return client.test(`
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type {BigDecimalConstructor} from '@subsquid/big-decimal'
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
export const bigDecimal = {
|
|
5
|
+
get BigDecimal(): BigDecimalConstructor {
|
|
6
|
+
throw new Error('Package `@subsquid/big-decimal` is not installed')
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
try {
|
|
12
|
+
Object.defineProperty(bigDecimal, "BigDecimal", {
|
|
13
|
+
value: require('@subsquid/big-decimal').BigDecimal
|
|
14
|
+
})
|
|
15
|
+
} catch (e: any) {}
|