@graffy/pg 0.15.23 → 0.15.24-alpha.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/index.cjs +18 -13
- package/index.mjs +16 -12
- package/package.json +2 -2
package/index.cjs
CHANGED
|
@@ -27,7 +27,8 @@ var __objRest = (source, exclude) => {
|
|
|
27
27
|
}
|
|
28
28
|
return target;
|
|
29
29
|
};
|
|
30
|
-
Object.
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports[Symbol.toStringTag] = "Module";
|
|
31
32
|
var common = require("@graffy/common");
|
|
32
33
|
var pg$1 = require("pg");
|
|
33
34
|
var sql = require("sql-template-tag");
|
|
@@ -177,9 +178,9 @@ const lookup = (prop) => {
|
|
|
177
178
|
const aggSql = {
|
|
178
179
|
$sum: (prop) => sql__default["default"]`sum((${lookup(prop)})::numeric)`,
|
|
179
180
|
$card: (prop) => sql__default["default"]`count(distinct(${lookup(prop)}))`,
|
|
180
|
-
$avg: (prop) => sql__default["default"]`
|
|
181
|
-
$max: (prop) => sql__default["default"]`
|
|
182
|
-
$min: (prop) => sql__default["default"]`
|
|
181
|
+
$avg: (prop) => sql__default["default"]`avg((${lookup(prop)})::numeric)`,
|
|
182
|
+
$max: (prop) => sql__default["default"]`max((${lookup(prop)})::numeric)`,
|
|
183
|
+
$min: (prop) => sql__default["default"]`min((${lookup(prop)})::numeric)`
|
|
183
184
|
};
|
|
184
185
|
const getSelectCols = (table, projection = null) => {
|
|
185
186
|
if (!projection)
|
|
@@ -345,10 +346,13 @@ const getArgMeta = (key, { prefix, idCol, verDefault }) => getJsonBuildTrusted({
|
|
|
345
346
|
$ref: sql__default["default"]`jsonb_build_array(${sql.join(prefix.map((k) => sql__default["default"]`${k}::text`))}, "${sql.raw(idCol)}")`,
|
|
346
347
|
$ver: sql.raw(verDefault)
|
|
347
348
|
});
|
|
348
|
-
const getAggMeta = (key, $group, { verDefault }) =>
|
|
349
|
-
$key
|
|
350
|
-
|
|
351
|
-
|
|
349
|
+
const getAggMeta = (key, $group, { verDefault }) => {
|
|
350
|
+
let $key = sql.join([key, getJsonBuildTrusted({ $group })].filter(Boolean), " || ");
|
|
351
|
+
return getJsonBuildTrusted({
|
|
352
|
+
$key,
|
|
353
|
+
$ver: sql.raw(verDefault)
|
|
354
|
+
});
|
|
355
|
+
};
|
|
352
356
|
function getArgSql(_a, options) {
|
|
353
357
|
var _b = _a, { $first, $last, $after, $before, $since, $until, $all, $cursor: _ } = _b, rest = __objRest(_b, ["$first", "$last", "$after", "$before", "$since", "$until", "$all", "$cursor"]);
|
|
354
358
|
const _a2 = rest, { $order, $group } = _a2, filter = __objRest(_a2, ["$order", "$group"]);
|
|
@@ -360,14 +364,14 @@ function getArgSql(_a, options) {
|
|
|
360
364
|
const groupCols = Array.isArray($group) && $group.length && $group.map(lookup);
|
|
361
365
|
const group = groupCols ? sql.join(groupCols, ", ") : void 0;
|
|
362
366
|
const hasRangeArg = $before || $after || $since || $until || $first || $last || $all || $order;
|
|
363
|
-
let
|
|
367
|
+
let filterKey;
|
|
364
368
|
const where = [];
|
|
365
369
|
if (!common.isEmpty(filter)) {
|
|
366
370
|
where.push(getSql(filter, options));
|
|
367
|
-
|
|
371
|
+
filterKey = sql__default["default"]`${JSON.stringify(filter)}::jsonb`;
|
|
368
372
|
}
|
|
369
373
|
if (!hasRangeArg)
|
|
370
|
-
return { meta: meta(
|
|
374
|
+
return { meta: meta(filterKey), where, group, limit: 1 };
|
|
371
375
|
const orderCols = ($order || [idCol]).map((orderItem) => orderItem[0] === "!" ? sql__default["default"]`-(${lookup(orderItem.slice(1))})::float8` : lookup(orderItem));
|
|
372
376
|
Object.entries({ $after, $before, $since, $until }).forEach(([name, value]) => {
|
|
373
377
|
if (value)
|
|
@@ -375,10 +379,11 @@ function getArgSql(_a, options) {
|
|
|
375
379
|
});
|
|
376
380
|
const order = !$group && sql.join(($order || [idCol]).map((orderItem) => orderItem[0] === "!" ? sql__default["default"]`${lookup(orderItem.slice(1))} ${$last ? sql__default["default"]`ASC` : sql__default["default"]`DESC`}` : sql__default["default"]`${lookup(orderItem)} ${$last ? sql__default["default"]`DESC` : sql__default["default"]`ASC`}`), `, `);
|
|
377
381
|
const orderKey = $order && getJsonBuildTrusted({ $order: sql__default["default"]`${JSON.stringify($order)}::jsonb` });
|
|
378
|
-
const cursorKey = getJsonBuildTrusted({
|
|
382
|
+
const cursorKey = $group !== true && getJsonBuildTrusted({
|
|
379
383
|
$cursor: sql__default["default"]`jsonb_build_array(${sql.join(groupCols || orderCols)})`
|
|
380
384
|
});
|
|
381
|
-
|
|
385
|
+
const keys = [filterKey, orderKey, cursorKey].filter(Boolean);
|
|
386
|
+
const key = keys.length > 0 ? sql__default["default"]`(${sql.join(keys, ` || `)})` : void 0;
|
|
382
387
|
return {
|
|
383
388
|
meta: meta(key),
|
|
384
389
|
where,
|
package/index.mjs
CHANGED
|
@@ -170,9 +170,9 @@ const lookup = (prop) => {
|
|
|
170
170
|
const aggSql = {
|
|
171
171
|
$sum: (prop) => sql`sum((${lookup(prop)})::numeric)`,
|
|
172
172
|
$card: (prop) => sql`count(distinct(${lookup(prop)}))`,
|
|
173
|
-
$avg: (prop) => sql`
|
|
174
|
-
$max: (prop) => sql`
|
|
175
|
-
$min: (prop) => sql`
|
|
173
|
+
$avg: (prop) => sql`avg((${lookup(prop)})::numeric)`,
|
|
174
|
+
$max: (prop) => sql`max((${lookup(prop)})::numeric)`,
|
|
175
|
+
$min: (prop) => sql`min((${lookup(prop)})::numeric)`
|
|
176
176
|
};
|
|
177
177
|
const getSelectCols = (table, projection = null) => {
|
|
178
178
|
if (!projection)
|
|
@@ -338,10 +338,13 @@ const getArgMeta = (key, { prefix, idCol, verDefault }) => getJsonBuildTrusted({
|
|
|
338
338
|
$ref: sql`jsonb_build_array(${join(prefix.map((k) => sql`${k}::text`))}, "${raw(idCol)}")`,
|
|
339
339
|
$ver: raw(verDefault)
|
|
340
340
|
});
|
|
341
|
-
const getAggMeta = (key, $group, { verDefault }) =>
|
|
342
|
-
$key
|
|
343
|
-
|
|
344
|
-
|
|
341
|
+
const getAggMeta = (key, $group, { verDefault }) => {
|
|
342
|
+
let $key = join([key, getJsonBuildTrusted({ $group })].filter(Boolean), " || ");
|
|
343
|
+
return getJsonBuildTrusted({
|
|
344
|
+
$key,
|
|
345
|
+
$ver: raw(verDefault)
|
|
346
|
+
});
|
|
347
|
+
};
|
|
345
348
|
function getArgSql(_a, options) {
|
|
346
349
|
var _b = _a, { $first, $last, $after, $before, $since, $until, $all, $cursor: _ } = _b, rest = __objRest(_b, ["$first", "$last", "$after", "$before", "$since", "$until", "$all", "$cursor"]);
|
|
347
350
|
const _a2 = rest, { $order, $group } = _a2, filter = __objRest(_a2, ["$order", "$group"]);
|
|
@@ -353,14 +356,14 @@ function getArgSql(_a, options) {
|
|
|
353
356
|
const groupCols = Array.isArray($group) && $group.length && $group.map(lookup);
|
|
354
357
|
const group = groupCols ? join(groupCols, ", ") : void 0;
|
|
355
358
|
const hasRangeArg = $before || $after || $since || $until || $first || $last || $all || $order;
|
|
356
|
-
let
|
|
359
|
+
let filterKey;
|
|
357
360
|
const where = [];
|
|
358
361
|
if (!isEmpty(filter)) {
|
|
359
362
|
where.push(getSql(filter, options));
|
|
360
|
-
|
|
363
|
+
filterKey = sql`${JSON.stringify(filter)}::jsonb`;
|
|
361
364
|
}
|
|
362
365
|
if (!hasRangeArg)
|
|
363
|
-
return { meta: meta(
|
|
366
|
+
return { meta: meta(filterKey), where, group, limit: 1 };
|
|
364
367
|
const orderCols = ($order || [idCol]).map((orderItem) => orderItem[0] === "!" ? sql`-(${lookup(orderItem.slice(1))})::float8` : lookup(orderItem));
|
|
365
368
|
Object.entries({ $after, $before, $since, $until }).forEach(([name, value]) => {
|
|
366
369
|
if (value)
|
|
@@ -368,10 +371,11 @@ function getArgSql(_a, options) {
|
|
|
368
371
|
});
|
|
369
372
|
const order = !$group && join(($order || [idCol]).map((orderItem) => orderItem[0] === "!" ? sql`${lookup(orderItem.slice(1))} ${$last ? sql`ASC` : sql`DESC`}` : sql`${lookup(orderItem)} ${$last ? sql`DESC` : sql`ASC`}`), `, `);
|
|
370
373
|
const orderKey = $order && getJsonBuildTrusted({ $order: sql`${JSON.stringify($order)}::jsonb` });
|
|
371
|
-
const cursorKey = getJsonBuildTrusted({
|
|
374
|
+
const cursorKey = $group !== true && getJsonBuildTrusted({
|
|
372
375
|
$cursor: sql`jsonb_build_array(${join(groupCols || orderCols)})`
|
|
373
376
|
});
|
|
374
|
-
|
|
377
|
+
const keys = [filterKey, orderKey, cursorKey].filter(Boolean);
|
|
378
|
+
const key = keys.length > 0 ? sql`(${join(keys, ` || `)})` : void 0;
|
|
375
379
|
return {
|
|
376
380
|
meta: meta(key),
|
|
377
381
|
where,
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@graffy/pg",
|
|
3
3
|
"description": "The standard Postgres module for Graffy. Each instance this module mounts a Postgres table as a Graffy subtree.",
|
|
4
4
|
"author": "aravind (https://github.com/aravindet)",
|
|
5
|
-
"version": "0.15.
|
|
5
|
+
"version": "0.15.24-alpha.1",
|
|
6
6
|
"main": "./index.cjs",
|
|
7
7
|
"exports": {
|
|
8
8
|
"import": "./index.mjs",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
},
|
|
17
17
|
"license": "Apache-2.0",
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@graffy/common": "0.15.
|
|
19
|
+
"@graffy/common": "0.15.24-alpha.1",
|
|
20
20
|
"sql-template-tag": "^4.1.0",
|
|
21
21
|
"debug": "^4.3.3"
|
|
22
22
|
},
|