prostgles-server 4.1.50 → 4.1.52

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.
@@ -73,7 +73,7 @@ const getJoinQuery = (viewHandler, { q1, q2, depth }) => {
73
73
  return [
74
74
  `SELECT `,
75
75
  ` /* Join fields + select */`,
76
- ` ${rootSelectItems.map(s => s.query)}`,
76
+ ...(0, getSelectQuery_1.indentLines)(rootSelectItems.map(s => s.query), { appendCommas: true }),
77
77
  `FROM ${table.name} ${table.alias}`,
78
78
  ...targetQueryExtraQueries
79
79
  ];
@@ -86,7 +86,7 @@ const getJoinQuery = (viewHandler, { q1, q2, depth }) => {
86
86
  });
87
87
  const queryLines = [
88
88
  `${joinType} JOIN (`,
89
- ...(0, getSelectQuery_1.indentLines)(innerQuery, 2),
89
+ ...(0, getSelectQuery_1.indentLines)(innerQuery),
90
90
  `) ${targetTableAlias}`,
91
91
  `ON ${(0, getTableJoinQuery_1.getJoinOnCondition)({
92
92
  on: firstJoinTablePath.on,
@@ -1 +1 @@
1
- {"version":3,"file":"getJoinQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getJoinQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getJoinQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getJoinQuery.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,13 @@ import { ViewHandler } from "../ViewHandler/ViewHandler";
5
5
  * No validation/authorisation at this point
6
6
  * */
7
7
  export declare function getSelectQuery(viewHandler: ViewHandler, q: NewQuery, depth: number | undefined, selectParamsGroupBy: boolean): string;
8
- export declare const indentLines: (strArr: (string | undefined | null)[], numberOfSpaces?: number, indentStr?: string) => string[];
8
+ type IndentLinesOpts = {
9
+ numberOfSpaces?: number;
10
+ indentStr?: string;
11
+ appendCommas?: boolean;
12
+ };
13
+ export declare const indentLines: (strArr: (string | undefined | null)[], { numberOfSpaces, indentStr, appendCommas }?: IndentLinesOpts) => string[];
9
14
  export declare const getTableAliasAsName: (q: NewQuery) => string;
10
15
  export declare const getRootGroupBy: (q: NewQuery, selectParamsGroupBy?: boolean) => string[];
16
+ export {};
11
17
  //# sourceMappingURL=getSelectQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getSelectQuery.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getSelectQuery.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAe,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD;;;KAGK;AACL,wBAAgB,cAAc,CAC5B,WAAW,EAAE,WAAW,EACxB,CAAC,EAAE,QAAQ,EACX,KAAK,oBAAI,EACT,mBAAmB,EAAE,OAAO,GAC3B,MAAM,CAsDR;AAGD,eAAO,MAAM,WAAW,WAAY,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,kDAAwC,MAAM,EAA4F,CAAC;AAG5M,eAAO,MAAM,mBAAmB,MAAO,QAAQ,WAA6B,CAAC;AAG7E,eAAO,MAAM,cAAc,MAAO,QAAQ,wBAAwB,OAAO,aAmBxE,CAAA"}
1
+ {"version":3,"file":"getSelectQuery.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getSelectQuery.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAe,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD;;;KAGK;AACL,wBAAgB,cAAc,CAC5B,WAAW,EAAE,WAAW,EACxB,CAAC,EAAE,QAAQ,EACX,KAAK,oBAAI,EACT,mBAAmB,EAAE,OAAO,GAC3B,MAAM,CAyDR;AAGD,KAAK,eAAe,GAAG;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAA;AACD,eAAO,MAAM,WAAW,WAAY,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,gDAAkE,eAAe,KAAQ,MAAM,EAW/J,CAAA;AAGD,eAAO,MAAM,mBAAmB,MAAO,QAAQ,WAA6B,CAAC;AAG7E,eAAO,MAAM,cAAc,MAAO,QAAQ,wBAAwB,OAAO,aAmBxE,CAAA"}
@@ -25,23 +25,25 @@ function getSelectQuery(viewHandler, q, depth = 0, selectParamsGroupBy) {
25
25
  ...parsed
26
26
  };
27
27
  }) ?? [];
28
+ const selectItems = rootSelect.concat(parsedJoins?.map(join => {
29
+ const joinAlias = join.tableAlias || join.table;
30
+ const selectedFields = join.select.filter(s => s.selected).map(s => (0, QueryBuilder_1.asNameAlias)(s.alias, joinAlias));
31
+ /** Used to ensure the json array object has named properties */
32
+ const jsonAggSelect = `SELECT x FROM (SELECT ${selectedFields}) as x`;
33
+ /** Used to:
34
+ * 1) prevent arrays with a single null element when no rows were matched
35
+ * 2) allow nested limit
36
+ * */
37
+ const joinAggNonNullArrayElemFilter = join.targetTableJoinFields
38
+ .map(f => `${joinAlias}.${(0, getJoinQuery_1.getJoinCol)(f).alias} IS NOT NULL`)
39
+ .concat(join.limitFieldName ? [`${(0, QueryBuilder_1.asNameAlias)(join.limitFieldName, joinAlias)} <= ${join.limit}`] : [])
40
+ .join(" AND ");
41
+ const nestedOrderBy = join.orderByItems.length ? `ORDER BY ${join.orderByItems.map(o => (0, QueryBuilder_1.asNameAlias)(o.key, joinAlias))}` : "";
42
+ return (`COALESCE(json_agg((${jsonAggSelect}) ${nestedOrderBy}) FILTER (WHERE ${joinAggNonNullArrayElemFilter}), '[]'::JSON) as ${joinAlias}`);
43
+ }) ?? []);
28
44
  const query = [
29
- `SELECT ${rootSelect.concat(parsedJoins?.map(join => {
30
- const joinAlias = join.tableAlias || join.table;
31
- const selectedFields = join.select.filter(s => s.selected).map(s => (0, QueryBuilder_1.asNameAlias)(s.alias, joinAlias));
32
- /** Used to ensure the json array object has named properties */
33
- const jsonAggSelect = `SELECT x FROM (SELECT ${selectedFields}) as x`;
34
- /** Used to:
35
- * 1) prevent arrays with a single null element when no rows were matched
36
- * 2) allow nested limit
37
- * */
38
- const joinAggNonNullArrayElemFilter = join.targetTableJoinFields
39
- .map(f => `${joinAlias}.${(0, getJoinQuery_1.getJoinCol)(f).alias} IS NOT NULL`)
40
- .concat(join.limitFieldName ? [`${(0, QueryBuilder_1.asNameAlias)(join.limitFieldName, joinAlias)} <= ${join.limit}`] : [])
41
- .join(" AND ");
42
- const nestedOrderBy = join.orderByItems.length ? `ORDER BY ${join.orderByItems.map(o => (0, QueryBuilder_1.asNameAlias)(o.key, joinAlias))}` : "";
43
- return (`COALESCE(json_agg((${jsonAggSelect}) ${nestedOrderBy}) FILTER (WHERE ${joinAggNonNullArrayElemFilter}), '[]'::JSON) as ${joinAlias}`);
44
- }) ?? [])}`,
45
+ `SELECT`,
46
+ ...(0, exports.indentLines)(selectItems, { appendCommas: true }),
45
47
  `FROM ( `,
46
48
  ` SELECT * `,
47
49
  ` FROM ${q.table}`,
@@ -58,9 +60,19 @@ function getSelectQuery(viewHandler, q, depth = 0, selectParamsGroupBy) {
58
60
  }
59
61
  exports.getSelectQuery = getSelectQuery;
60
62
  const indentLine = (numberOfSpaces, str, indentStr = " ") => new Array(numberOfSpaces).fill(indentStr).join("") + str;
61
- const indentLines = (strArr, numberOfSpaces = 0, indentStr = " ") => strArr.filter(v => v).map(str => indentLine(numberOfSpaces, str, indentStr));
63
+ const indentLines = (strArr, { numberOfSpaces = 2, indentStr = " ", appendCommas = false } = {}) => {
64
+ const nonEmptyLines = strArr
65
+ .filter(v => v);
66
+ return nonEmptyLines.map((str, idx) => {
67
+ const res = indentLine(numberOfSpaces, str, indentStr);
68
+ if (appendCommas && idx < nonEmptyLines.length - 1) {
69
+ return `${res},`;
70
+ }
71
+ return res;
72
+ });
73
+ };
62
74
  exports.indentLines = indentLines;
63
- const indentLinesToString = (strArr, numberOfSpaces = 0, separator = " \n ", indentStr = " ") => (0, exports.indentLines)(strArr, numberOfSpaces, indentStr).join(separator);
75
+ const indentLinesToString = (strArr, numberOfSpaces = 0, separator = " \n ", indentStr = " ") => (0, exports.indentLines)(strArr, { numberOfSpaces, indentStr }).join(separator);
64
76
  const getTableAlias = (q) => !q.tableAlias ? q.table : `${q.tableAlias || ""}_${q.table}`;
65
77
  const getTableAliasAsName = (q) => (0, prostgles_types_1.asName)(getTableAlias(q));
66
78
  exports.getTableAliasAsName = getTableAliasAsName;
@@ -1 +1 @@
1
- {"version":3,"file":"getSelectQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getSelectQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getSelectQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getSelectQuery.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prepareSortItems.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/prepareSortItems.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAwC,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIjF,eAAO,MAAM,gBAAgB,eACf,OAAO,GAAG,SAAS,gBACjB,MAAM,EAAE,cACV,MAAM,GAAG,SAAS,UACtB,mBAAmB,EAAE,eAChB,YAAY,EAAE,KAC1B,QAAQ,EA+FV,CAAA"}
1
+ {"version":3,"file":"prepareSortItems.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/prepareSortItems.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAwC,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAe,MAAM,8BAA8B,CAAC;AAI9F,eAAO,MAAM,gBAAgB,eACf,OAAO,GAAG,SAAS,gBACjB,MAAM,EAAE,cACV,MAAM,GAAG,SAAS,UACtB,mBAAmB,EAAE,eAChB,YAAY,EAAE,KAC1B,QAAQ,EA+FV,CAAA"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.prepareSortItems = void 0;
4
4
  const dist_1 = require("prostgles-types/dist");
5
+ const QueryBuilder_1 = require("../QueryBuilder/QueryBuilder");
5
6
  /* This relates only to SELECT */
6
7
  const prepareSortItems = (rawOrderBy, allowed_cols, tableAlias, select, joinQueries) => {
7
8
  if (!rawOrderBy)
@@ -49,7 +50,7 @@ const prepareSortItems = (rawOrderBy, allowed_cols, tableAlias, select, joinQuer
49
50
  const nestedField = sortableNestedColumns.find(f => f.key === key);
50
51
  if (nestedField) {
51
52
  const { tableAlias, table, selectItem } = nestedField;
52
- const fieldQuery = `${asc ? "MIN" : "MAX"}(${tableAlias ?? table}.${selectItem.alias})`;
53
+ const fieldQuery = `${asc ? "MIN" : "MAX"}(${(0, QueryBuilder_1.asNameAlias)(selectItem.alias, tableAlias ?? table)})`;
53
54
  return {
54
55
  key,
55
56
  type: "query",
@@ -1 +1 @@
1
- {"version":3,"file":"prepareSortItems.js","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/prepareSortItems.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepareSortItems.js","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/prepareSortItems.ts"],"names":[],"mappings":"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"}
@@ -88,7 +88,7 @@ export const getJoinQuery = (viewHandler: ViewHandler, { q1, q2, depth }: Args):
88
88
  return [
89
89
  `SELECT `,
90
90
  ` /* Join fields + select */`,
91
- ` ${rootSelectItems.map(s => s.query)}`,
91
+ ...indentLines(rootSelectItems.map(s => s.query), { appendCommas: true }),
92
92
  `FROM ${table.name} ${table.alias}`,
93
93
  ...targetQueryExtraQueries
94
94
  ]
@@ -103,7 +103,7 @@ export const getJoinQuery = (viewHandler: ViewHandler, { q1, q2, depth }: Args):
103
103
 
104
104
  const queryLines = [
105
105
  `${joinType} JOIN (`,
106
- ...indentLines(innerQuery, 2),
106
+ ...indentLines(innerQuery),
107
107
  `) ${targetTableAlias}`,
108
108
  `ON ${getJoinOnCondition({
109
109
  on: firstJoinTablePath.on,
@@ -34,26 +34,29 @@ export function getSelectQuery(
34
34
  ...parsed
35
35
  }
36
36
  }) ?? [];
37
+
38
+ const selectItems = rootSelect.concat(
39
+ parsedJoins?.map(join => {
40
+ const joinAlias = join.tableAlias || join.table
41
+ const selectedFields = join.select.filter(s => s.selected).map(s => asNameAlias(s.alias, joinAlias));
42
+ /** Used to ensure the json array object has named properties */
43
+ const jsonAggSelect = `SELECT x FROM (SELECT ${selectedFields}) as x`;
44
+ /** Used to:
45
+ * 1) prevent arrays with a single null element when no rows were matched
46
+ * 2) allow nested limit
47
+ * */
48
+ const joinAggNonNullArrayElemFilter = join.targetTableJoinFields
49
+ .map(f => `${joinAlias}.${getJoinCol(f).alias} IS NOT NULL`)
50
+ .concat(join.limitFieldName? [`${asNameAlias(join.limitFieldName, joinAlias)} <= ${join.limit}`] : [])
51
+ .join(" AND ");
52
+
53
+ const nestedOrderBy = join.orderByItems.length? `ORDER BY ${join.orderByItems.map(o => asNameAlias(o.key, joinAlias))}` : ""
54
+ return (`COALESCE(json_agg((${jsonAggSelect}) ${nestedOrderBy}) FILTER (WHERE ${joinAggNonNullArrayElemFilter}), '[]'::JSON) as ${joinAlias}`);
55
+ }) ?? []);
37
56
 
38
57
  const query = [
39
- `SELECT ${rootSelect.concat(
40
- parsedJoins?.map(join => {
41
- const joinAlias = join.tableAlias || join.table
42
- const selectedFields = join.select.filter(s => s.selected).map(s => asNameAlias(s.alias, joinAlias));
43
- /** Used to ensure the json array object has named properties */
44
- const jsonAggSelect = `SELECT x FROM (SELECT ${selectedFields}) as x`;
45
- /** Used to:
46
- * 1) prevent arrays with a single null element when no rows were matched
47
- * 2) allow nested limit
48
- * */
49
- const joinAggNonNullArrayElemFilter = join.targetTableJoinFields
50
- .map(f => `${joinAlias}.${getJoinCol(f).alias} IS NOT NULL`)
51
- .concat(join.limitFieldName? [`${asNameAlias(join.limitFieldName, joinAlias)} <= ${join.limit}`] : [])
52
- .join(" AND ");
53
-
54
- const nestedOrderBy = join.orderByItems.length? `ORDER BY ${join.orderByItems.map(o => asNameAlias(o.key, joinAlias))}` : ""
55
- return (`COALESCE(json_agg((${jsonAggSelect}) ${nestedOrderBy}) FILTER (WHERE ${joinAggNonNullArrayElemFilter}), '[]'::JSON) as ${joinAlias}`);
56
- }) ?? [])}`
58
+ `SELECT`
59
+ ,...indentLines(selectItems, { appendCommas: true })
57
60
  , `FROM ( `
58
61
  , ` SELECT * `
59
62
  , ` FROM ${q.table}`
@@ -71,8 +74,24 @@ export function getSelectQuery(
71
74
  }
72
75
 
73
76
  const indentLine = (numberOfSpaces: number, str: string, indentStr = " "): string => new Array(numberOfSpaces).fill(indentStr).join("") + str;
74
- export const indentLines = (strArr: (string | undefined | null)[], numberOfSpaces = 0,indentStr = " "): string[] => strArr.filter(v => v).map(str => indentLine(numberOfSpaces, str as string, indentStr));
75
- const indentLinesToString = (strArr: (string | undefined | null)[], numberOfSpaces = 0, separator = " \n ", indentStr = " ") => indentLines(strArr, numberOfSpaces, indentStr).join(separator);
77
+ type IndentLinesOpts = {
78
+ numberOfSpaces?: number;
79
+ indentStr?: string;
80
+ appendCommas?: boolean;
81
+ }
82
+ export const indentLines = (strArr: (string | undefined | null)[], { numberOfSpaces = 2, indentStr = " ", appendCommas = false }: IndentLinesOpts = {}): string[] => {
83
+ const nonEmptyLines = strArr
84
+ .filter(v => v);
85
+
86
+ return nonEmptyLines.map((str, idx) => {
87
+ const res = indentLine(numberOfSpaces, str as string, indentStr);
88
+ if(appendCommas && idx < nonEmptyLines.length - 1){
89
+ return `${res},`;
90
+ }
91
+ return res;
92
+ });
93
+ }
94
+ const indentLinesToString = (strArr: (string | undefined | null)[], numberOfSpaces = 0, separator = " \n ", indentStr = " ") => indentLines(strArr, { numberOfSpaces, indentStr }).join(separator);
76
95
  const getTableAlias = (q: NewQuery) => !q.tableAlias ? q.table : `${q.tableAlias || ""}_${q.table}`;
77
96
  export const getTableAliasAsName = (q: NewQuery) => asName(getTableAlias(q));
78
97
 
@@ -1,6 +1,6 @@
1
1
  import { OrderBy, asName, isDefined, isEmpty, isObject } from "prostgles-types/dist";
2
2
  import { SortItem } from "../../DboBuilder";
3
- import { NewQueryJoin, SelectItemValidated } from "../QueryBuilder/QueryBuilder";
3
+ import { NewQueryJoin, SelectItemValidated, asNameAlias } from "../QueryBuilder/QueryBuilder";
4
4
  import { asValue } from "../../PubSubManager/PubSubManager";
5
5
 
6
6
  /* This relates only to SELECT */
@@ -60,7 +60,7 @@ export const prepareSortItems = (
60
60
  const nestedField = sortableNestedColumns.find(f => f.key === key);
61
61
  if (nestedField) {
62
62
  const { tableAlias, table, selectItem } = nestedField;
63
- const fieldQuery = `${asc? "MIN" : "MAX"}(${tableAlias ?? table}.${selectItem.alias})`;
63
+ const fieldQuery = `${asc? "MIN" : "MAX"}(${asNameAlias(selectItem.alias, tableAlias ?? table)})`;
64
64
  return {
65
65
  key,
66
66
  type: "query",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "4.1.50",
3
+ "version": "4.1.52",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1 +1 @@
1
- 134500
1
+ 6917
@@ -891,7 +891,7 @@ export default async function isomorphic(db: Required<DBHandlerServer> | Require
891
891
  });
892
892
 
893
893
  await tryRun("Related table subscribe", async () => {
894
- const sub = await await db.tr1.subscribe!({}, {
894
+ const sub = await db.tr1.subscribe!({}, {
895
895
  select: {
896
896
  "*": 1,
897
897
  tr2: "*"
@@ -903,6 +903,26 @@ export default async function isomorphic(db: Required<DBHandlerServer> | Require
903
903
  await sub.unsubscribe();
904
904
  });
905
905
 
906
+ await tryRun("Nested sort by computed col", async () => {
907
+ const getSorted = (asc = false) => db.tr1.find!({}, {
908
+ select: {
909
+ "*": 1,
910
+ tr2: {
911
+ maxId: { $max: ["id"] }
912
+ }
913
+ },
914
+ orderBy: {
915
+ "tr2.maxId": asc
916
+ }
917
+ })
918
+ const sortedAsc = await getSorted(true);
919
+ const sortedDesc = await getSorted(false);
920
+ assert.deepStrictEqual(
921
+ sortedAsc.map(d => d.tr2[0].maxId).slice(0).reverse(),
922
+ sortedDesc.map(d => d.tr2[0].maxId)
923
+ );
924
+ })
925
+
906
926
  await tryRun("Reference column deep nested insert", async () => {
907
927
 
908
928
  const pr = await db.items4a.insert!({
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "../..": {
23
23
  "name": "prostgles-server",
24
- "version": "4.1.49",
24
+ "version": "4.1.51",
25
25
  "license": "MIT",
26
26
  "dependencies": {
27
27
  "@types/express": "^4.17.13",