@stamhoofd/sql 2.13.0 → 2.16.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.
Files changed (41) hide show
  1. package/dist/src/SQL.d.ts +16 -43
  2. package/dist/src/SQL.d.ts.map +1 -1
  3. package/dist/src/SQL.js +10 -10
  4. package/dist/src/SQL.js.map +1 -1
  5. package/dist/src/SQLDelete.d.ts +15 -15
  6. package/dist/src/SQLDelete.d.ts.map +1 -1
  7. package/dist/src/SQLDelete.js +9 -10
  8. package/dist/src/SQLDelete.js.map +1 -1
  9. package/dist/src/SQLExpression.js +4 -5
  10. package/dist/src/SQLExpression.js.map +1 -1
  11. package/dist/src/SQLExpressions.js +25 -9
  12. package/dist/src/SQLExpressions.js.map +1 -1
  13. package/dist/src/SQLJoin.d.ts +16 -14
  14. package/dist/src/SQLJoin.d.ts.map +1 -1
  15. package/dist/src/SQLJoin.js +10 -9
  16. package/dist/src/SQLJoin.js.map +1 -1
  17. package/dist/src/SQLJsonExpressions.js +14 -0
  18. package/dist/src/SQLJsonExpressions.js.map +1 -1
  19. package/dist/src/SQLOrderBy.d.ts +5 -8
  20. package/dist/src/SQLOrderBy.d.ts.map +1 -1
  21. package/dist/src/SQLOrderBy.js +11 -9
  22. package/dist/src/SQLOrderBy.js.map +1 -1
  23. package/dist/src/SQLSelect.d.ts +32 -29
  24. package/dist/src/SQLSelect.d.ts.map +1 -1
  25. package/dist/src/SQLSelect.js +41 -20
  26. package/dist/src/SQLSelect.js.map +1 -1
  27. package/dist/src/SQLWhere.d.ts +11 -14
  28. package/dist/src/SQLWhere.d.ts.map +1 -1
  29. package/dist/src/SQLWhere.js +46 -28
  30. package/dist/src/SQLWhere.js.map +1 -1
  31. package/dist/src/filters/SQLFilter.js +9 -9
  32. package/dist/src/filters/SQLFilter.js.map +1 -1
  33. package/dist/src/filters/SQLSorter.js +1 -2
  34. package/dist/src/filters/SQLSorter.js.map +1 -1
  35. package/package.json +2 -2
  36. package/src/SQL.ts +25 -12
  37. package/src/SQLDelete.ts +3 -8
  38. package/src/SQLJoin.ts +4 -5
  39. package/src/SQLOrderBy.ts +14 -12
  40. package/src/SQLSelect.ts +47 -24
  41. package/src/SQLWhere.ts +46 -33
@@ -1,6 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.compileToSQLFilter = exports.baseSQLFilterCompilers = exports.createSQLColumnFilterCompiler = exports.createSQLExpressionFilterCompiler = exports.createSQLFilterNamespace = exports.createSQLRelationFilterCompiler = exports.notSQLFilterCompiler = exports.orSQLFilterCompiler = exports.andSQLFilterCompiler = void 0;
3
+ exports.compileToSQLFilter = exports.baseSQLFilterCompilers = void 0;
4
+ exports.andSQLFilterCompiler = andSQLFilterCompiler;
5
+ exports.orSQLFilterCompiler = orSQLFilterCompiler;
6
+ exports.notSQLFilterCompiler = notSQLFilterCompiler;
7
+ exports.createSQLRelationFilterCompiler = createSQLRelationFilterCompiler;
8
+ exports.createSQLFilterNamespace = createSQLFilterNamespace;
9
+ exports.createSQLExpressionFilterCompiler = createSQLExpressionFilterCompiler;
10
+ exports.createSQLColumnFilterCompiler = createSQLColumnFilterCompiler;
4
11
  const simple_errors_1 = require("@simonbackx/simple-errors");
5
12
  const SQL_1 = require("../SQL");
6
13
  const SQLExpressions_1 = require("../SQLExpressions");
@@ -10,17 +17,14 @@ function andSQLFilterCompiler(filter, filters) {
10
17
  const runners = compileSQLFilter(filter, filters);
11
18
  return new SQLWhere_1.SQLWhereAnd(runners);
12
19
  }
13
- exports.andSQLFilterCompiler = andSQLFilterCompiler;
14
20
  function orSQLFilterCompiler(filter, filters) {
15
21
  const runners = compileSQLFilter(filter, filters);
16
22
  return new SQLWhere_1.SQLWhereOr(runners);
17
23
  }
18
- exports.orSQLFilterCompiler = orSQLFilterCompiler;
19
24
  function notSQLFilterCompiler(filter, filters) {
20
25
  const andRunner = andSQLFilterCompiler(filter, filters);
21
26
  return new SQLWhere_1.SQLWhereNot(andRunner);
22
27
  }
23
- exports.notSQLFilterCompiler = notSQLFilterCompiler;
24
28
  function guardScalar(s) {
25
29
  if (typeof s !== 'string' && typeof s !== 'number' && typeof s !== 'boolean' && !(s instanceof Date) && s !== null) {
26
30
  throw new Error('Invalid scalar value');
@@ -47,16 +51,14 @@ function createSQLRelationFilterCompiler(baseSelect, definitions) {
47
51
  throw new Error('Invalid filter');
48
52
  };
49
53
  }
50
- exports.createSQLRelationFilterCompiler = createSQLRelationFilterCompiler;
51
54
  // Already joined, but creates a namespace
52
55
  function createSQLFilterNamespace(definitions) {
53
56
  return (filter) => {
54
57
  return andSQLFilterCompiler(filter, definitions);
55
58
  };
56
59
  }
57
- exports.createSQLFilterNamespace = createSQLFilterNamespace;
58
60
  function createSQLExpressionFilterCompiler(sqlExpression, { normalizeValue, isJSONObject = false, isJSONValue = false, nullable = false } = {}) {
59
- const norm = normalizeValue !== null && normalizeValue !== void 0 ? normalizeValue : ((v) => v);
61
+ const norm = normalizeValue ?? ((v) => v);
60
62
  const convertToExpression = isJSONValue ? SQLExpressions_1.scalarToSQLJSONExpression : SQLExpressions_1.scalarToSQLExpression;
61
63
  return (filter, filters) => {
62
64
  if (typeof filter === 'string' || typeof filter === 'number' || typeof filter === 'boolean' || filter === null || filter === undefined) {
@@ -204,12 +206,10 @@ function createSQLExpressionFilterCompiler(sqlExpression, { normalizeValue, isJS
204
206
  throw new Error('Invalid filter ' + JSON.stringify(f));
205
207
  };
206
208
  }
207
- exports.createSQLExpressionFilterCompiler = createSQLExpressionFilterCompiler;
208
209
  function createSQLColumnFilterCompiler(name, options) {
209
210
  const column = name instanceof SQLExpressions_1.SQLColumnExpression ? name : SQL_1.SQL.column(name);
210
211
  return createSQLExpressionFilterCompiler(column, options);
211
212
  }
212
- exports.createSQLColumnFilterCompiler = createSQLColumnFilterCompiler;
213
213
  exports.baseSQLFilterCompilers = {
214
214
  '$and': andSQLFilterCompiler,
215
215
  '$or': orSQLFilterCompiler,
@@ -1 +1 @@
1
- {"version":3,"file":"SQLFilter.js","sourceRoot":"","sources":["../../../src/filters/SQLFilter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SQLFilter.js","sourceRoot":"","sources":["../../../src/filters/SQLFilter.ts"],"names":[],"mappings":";;;AAYA,oDAGC;AAED,kDAGC;AAED,oDAGC;AAqBD,0EAYC;AAGD,4DAIC;AAID,8EA6OC;AAED,sEAGC;AAvTD,6DAAwD;AAExD,gCAA6B;AAE7B,sDAAoK;AACpK,8DAAwG;AAExG,0CAAwI;AAKxI,SAAgB,oBAAoB,CAAC,MAAuB,EAAE,OAA6B;IACvF,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,OAAO,IAAI,sBAAW,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAAuB,EAAE,OAA6B;IACtF,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,OAAO,IAAI,qBAAU,CAAC,OAAO,CAAC,CAAA;AAClC,CAAC;AAED,SAAgB,oBAAoB,CAAC,MAAuB,EAAE,OAA6B;IACvF,MAAM,SAAS,GAAG,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxD,OAAO,IAAI,sBAAW,CAAC,SAAS,CAAC,CAAA;AACrC,CAAC;AAED,SAAS,WAAW,CAAC,CAAM;IACvB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACjH,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;IAC3C,CAAC;AAEL,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAM;IAC9B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC;QACnG,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;IAC3C,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,CAAM;IACvB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;IAC3C,CAAC;AACL,CAAC;AAED,SAAgB,+BAA+B,CAAC,UAA0D,EAAE,WAAiC;IACzI,OAAO,CAAC,MAAuB,EAAE,EAAE;QAC/B,MAAM,CAAC,GAAG,MAAa,CAAC;QAExB,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,IAAA,0BAAkB,EAAC,CAAC,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,CAAA;YAC1D,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACtC,OAAO,IAAI,yBAAc,CAAC,CAAC,CAAC,CAAA;QAChC,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IACrC,CAAC,CAAA;AACL,CAAC;AAED,0CAA0C;AAC1C,SAAgB,wBAAwB,CAAC,WAAiC;IACtE,OAAO,CAAC,MAAuB,EAAE,EAAE;QAC/B,OAAO,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACpD,CAAC,CAAA;AACL,CAAC;AAID,SAAgB,iCAAiC,CAAC,aAA4B,EAAE,EAAC,cAAc,EAAE,YAAY,GAAG,KAAK,EAAE,WAAW,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK,KAAgC,EAAE;IAC1L,MAAM,IAAI,GAAG,cAAc,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,mBAAmB,GAAG,WAAW,CAAC,CAAC,CAAC,0CAAyB,CAAC,CAAC,CAAC,sCAAqB,CAAA;IAE3F,OAAO,CAAC,MAAuB,EAAE,OAA6B,EAAE,EAAE;QAC9D,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACrI,MAAM,GAAG;gBACL,GAAG,EAAE,MAAM;aACd,CAAA;QACL,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;QACjD,CAAC;QAGD,MAAM,CAAC,GAAG,MAAa,CAAC;QAExB,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACb,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAEnB,IAAI,YAAY,EAAE,CAAC;gBACf,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAEtB,+BAA+B;gBAC/B,gCAAgC;gBAChC,4EAA4E;gBAC5E,kCAAkC;gBAClC,wBAAwB;gBACxB,SAAS;gBACT,IAAI;gBAEJ,OAAO;gBACP,OAAO,IAAI,wBAAa,CACpB,IAAI,oCAAe,CACf,aAAa,EACb,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACzC,EACD,uBAAY,CAAC,KAAK,EAClB,IAAI,6BAAY,CAAC,CAAC,CAAC,CACtB,CAAC;YACN,CAAC;YACD,OAAO,IAAI,wBAAa,CAAC,aAAa,EAAE,uBAAY,CAAC,KAAK,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAClG,CAAC;QAED,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,2BAAW,CAAC;oBAClB,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,8BAA8B;iBAC1C,CAAC,CAAA;YACN,CAAC;YAED,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrB,OAAO,IAAI,wBAAa,CAAC,IAAI,6BAAY,CAAC,CAAC,CAAC,EAAE,uBAAY,CAAC,KAAK,EAAE,IAAI,6BAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3F,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,YAAY,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEtC,IAAI,YAAY,EAAE,CAAC;gBACf,IAAI,YAAY,EAAE,CAAC;oBACf,uIAAuI;oBACvI,qHAAqH;oBACrH,OAAO,IAAI,qBAAU,CAAC;wBAClB,IAAI,wBAAa,CAAC,aAAa,EAAE,uBAAY,CAAC,KAAK,EAAE,IAAI,wBAAO,EAAE,CAAC,EAAE,wCAAwC;wBAC7G,IAAI,wBAAa,CACb,IAAI,oCAAe,CACf,aAAa,EACb,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB;yBAC/D,EACD,uBAAY,CAAC,KAAK,EAClB,IAAI,6BAAY,CAAC,CAAC,CAAC,CACtB;qBACJ,CAAC,CAAC;gBACP,CAAC;gBAED,OAAO;gBACP,OAAO,IAAI,wBAAa,CACpB,IAAI,oCAAe,CACf,aAAa,EACb,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACzC,EACD,uBAAY,CAAC,KAAK,EAClB,IAAI,6BAAY,CAAC,CAAC,CAAC,CACtB,CAAC;YACN,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACf,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;gBAC5C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzB,OAAO,IAAI,wBAAa,CAAC,aAAa,EAAE,uBAAY,CAAC,KAAK,EAAE,IAAI,wBAAO,EAAE,CAAC,CAAC;gBAC/E,CAAC;gBACD,OAAO,IAAI,qBAAU,CAAC;oBAClB,IAAI,wBAAa,CAAC,aAAa,EAAE,uBAAY,CAAC,KAAK,EAAE,IAAI,wBAAO,EAAE,CAAC;oBACnE,IAAI,wBAAa,CAAC,aAAa,EAAE,uBAAY,CAAC,KAAK,EAAE,IAAI,yBAAQ,CAAC,SAAS,CAAC,CAAC;iBAChF,CAAC,CAAC;YACP,CAAC;YACD,OAAO,IAAI,wBAAa,CAAC,aAAa,EAAE,uBAAY,CAAC,KAAK,EAAE,IAAI,yBAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACd,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAEpB,IAAI,YAAY,EAAE,CAAC;gBACf,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAEtB,OAAO,IAAI,wBAAa,CACpB,IAAI,oCAAe,CACf,aAAa,EACb,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACzC,EACD,uBAAY,CAAC,KAAK,EAClB,IAAI,6BAAY,CAAC,CAAC,CAAC,CACtB,CAAC;YACN,CAAC;YACD,OAAO,IAAI,wBAAa,CAAC,aAAa,EAAE,uBAAY,CAAC,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtG,CAAC;QAED,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACb,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAEnB,IAAI,YAAY,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;YAClE,CAAC;YAED,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,2HAA2H;gBAC3H,OAAO,IAAI,wBAAa,CAAC,aAAa,EAAE,uBAAY,CAAC,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9F,CAAC;YAED,8GAA8G;YAC9G,OAAO,IAAI,wBAAa,CAAC,aAAa,EAAE,uBAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpG,CAAC;QAED,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACd,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAEpB,IAAI,YAAY,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;YAClE,CAAC;YAED,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,+BAA+B;gBAC/B,OAAO,IAAI,wBAAa,CAAC,IAAI,6BAAY,CAAC,CAAC,CAAC,EAAE,uBAAY,CAAC,KAAK,EAAE,IAAI,6BAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3F,CAAC;YACD,OAAO,IAAI,wBAAa,CAAC,aAAa,EAAE,uBAAY,CAAC,YAAY,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1G,CAAC;QAED,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACd,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAEpB,IAAI,YAAY,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;YAClE,CAAC;YAED,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,mCAAmC;gBACnC,OAAO,IAAI,wBAAa,CAAC,aAAa,EAAE,uBAAY,CAAC,KAAK,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnG,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,wBAAa,CAAC,aAAa,EAAE,uBAAY,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEzG,IAAI,QAAQ,EAAE,CAAC;gBACX,OAAO,IAAI,qBAAU,CAAC;oBAClB,sEAAsE;oBACtE,IAAI,wBAAa,CAAC,aAAa,EAAE,uBAAY,CAAC,KAAK,EAAE,IAAI,wBAAO,EAAE,CAAC;oBACpE,IAAI;iBACN,CAAC,CAAC;YACP,CAAC;YAED,OAAO,IAAI,wBAAa,CAAC,aAAa,EAAE,uBAAY,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvG,CAAC;QAGD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACb,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAEnB,IAAI,YAAY,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;YAC/D,CAAC;YAED,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,mHAAmH;gBACnH,OAAO,IAAI,wBAAa,CAAC,IAAI,6BAAY,CAAC,CAAC,CAAC,EAAE,uBAAY,CAAC,KAAK,EAAE,IAAI,6BAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3F,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,wBAAa,CAAC,aAAa,EAAE,uBAAY,CAAC,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAElG,IAAI,QAAQ,EAAE,CAAC;gBACX,OAAO,IAAI,qBAAU,CAAC;oBAClB,sEAAsE;oBACtE,IAAI,wBAAa,CAAC,aAAa,EAAE,uBAAY,CAAC,KAAK,EAAE,IAAI,wBAAO,EAAE,CAAC;oBACpE,IAAI;iBACN,CAAC,CAAC;YACP,CAAC;YAED,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;YACnB,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAEzB,IAAI,YAAY,EAAE,CAAC;gBACf,OAAO,IAAI,wBAAa,CACpB,IAAI,kCAAa,CACb,aAAa,EACb,KAAK,EACL,mBAAmB,CACf,GAAG,GAAC,uBAAY,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,GAAC,GAAG,CAC3C,CACJ,EACD,uBAAY,CAAC,QAAQ,EACrB,IAAI,wBAAO,EAAE,CAChB,CAAC;YACN,CAAC;YAED,IAAI,WAAW,EAAE,CAAC;gBACd,sGAAsG;gBACtG,OAAO,IAAI,uBAAY,CACnB,IAAI,wBAAO,CAAC,IAAI,mCAAc,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,EACtD,mBAAmB,CACf,GAAG,GAAC,uBAAY,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,GAAC,GAAG,CAC3C,CACJ,CAAC;YACN,CAAC;YAED,OAAO,IAAI,uBAAY,CACnB,aAAa,EACb,mBAAmB,CACf,GAAG,GAAC,uBAAY,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,GAAC,GAAG,CAC3C,CACJ,CAAC;QACN,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1D,CAAC,CAAA;AACL,CAAC;AAED,SAAgB,6BAA6B,CAAC,IAAkC,EAAE,OAAoC;IAClH,MAAM,MAAM,GAAG,IAAI,YAAY,oCAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7E,OAAO,iCAAiC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAC7D,CAAC;AAEY,QAAA,sBAAsB,GAAyB;IACxD,MAAM,EAAE,oBAAoB;IAC5B,KAAK,EAAE,mBAAmB;IAC1B,MAAM,EAAE,oBAAoB;CAC/B,CAAA;AAED,SAAS,gBAAgB,CAAC,MAAuB,EAAE,WAAiC;IAChF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAe,EAAE,CAAA;IAE9B,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC1D,IAAI,CAAC,CAAC,EAAE,CAAC;YACL,SAAS;QACb,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,sEAAsE;YACtE,MAAM,QAAQ,GAAsB,EAAE,CAAC;YACvC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACpC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;YAC1D,SAAS;QACb,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,GAAG,CAAC,CAAA;YAChD,CAAC;YAED,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAoB,EAAE,WAAW,CAAC,CAAA;YACxD,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,GAAG,CAAC,CAAA;YAC1D,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAA;AAClB,CAAC;AAEY,QAAA,kBAAkB,GAAG,oBAAoB,CAAA"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.compileToSQLSorter = void 0;
3
+ exports.compileToSQLSorter = compileToSQLSorter;
4
4
  const SQLOrderBy_1 = require("../SQLOrderBy");
5
5
  function compileToSQLSorter(sortBy, definitions) {
6
6
  const sorters = [];
@@ -16,5 +16,4 @@ function compileToSQLSorter(sortBy, definitions) {
16
16
  }
17
17
  return SQLOrderBy_1.SQLOrderBy.combine(sorters);
18
18
  }
19
- exports.compileToSQLSorter = compileToSQLSorter;
20
19
  //# sourceMappingURL=SQLSorter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SQLSorter.js","sourceRoot":"","sources":["../../../src/filters/SQLSorter.ts"],"names":[],"mappings":";;;AAGA,8CAAgE;AAQhE,SAAgB,kBAAkB,CAAC,MAAgB,EAAE,WAA+B;IAChF,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,CAAC,EAAE,CAAC;YACL,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;QAChD,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACvC,CAAC;IAED,OAAO,uBAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AACtC,CAAC;AAjBD,gDAiBC"}
1
+ {"version":3,"file":"SQLSorter.js","sourceRoot":"","sources":["../../../src/filters/SQLSorter.ts"],"names":[],"mappings":";;AAWA,gDAiBC;AAzBD,8CAAgE;AAQhE,SAAgB,kBAAkB,CAAC,MAAgB,EAAE,WAA+B;IAChF,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,CAAC,EAAE,CAAC;YACL,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;QAChD,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACvC,CAAC;IAED,OAAO,uBAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AACtC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stamhoofd/sql",
3
- "version": "2.13.0",
3
+ "version": "2.16.0",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "license": "UNLICENCED",
@@ -12,5 +12,5 @@
12
12
  "scripts": {
13
13
  "build": "tsc -b"
14
14
  },
15
- "gitHead": "2b130616eebea8cd30feb0f361c7bb0f48b534ba"
15
+ "gitHead": "d5f1a4dda2c1623058e96e8ff25d837b28e51bd6"
16
16
  }
package/src/SQL.ts CHANGED
@@ -1,9 +1,10 @@
1
+ import { SQLResultNamespacedRow } from "@simonbackx/simple-database";
2
+ import { SQLDelete } from "./SQLDelete";
1
3
  import { SQLExpression } from "./SQLExpression";
2
- import { SQLSelect } from "./SQLSelect";
3
- import { SQLColumnExpression, SQLSafeValue, SQLTableExpression, SQLWildcardSelectExpression, scalarToSQLExpression } from "./SQLExpressions";
4
+ import { SQLColumnExpression, SQLSafeValue, SQLTableExpression, SQLWildcardSelectExpression } from "./SQLExpressions";
4
5
  import { SQLJoin, SQLJoinType } from "./SQLJoin";
5
6
  import { SQLJsonExtract, SQLJsonLength } from "./SQLJsonExpressions";
6
- import { SQLDelete } from "./SQLDelete";
7
+ import { parseTable, SQLSelect } from "./SQLSelect";
7
8
 
8
9
  class StaticSQL {
9
10
  wildcard(namespace?: string) {
@@ -36,7 +37,7 @@ class StaticSQL {
36
37
  return new SQLTableExpression(namespaceOrTable, table)
37
38
  }
38
39
 
39
- select(...columns: SQLExpression[]): InstanceType<typeof SQLSelect> {
40
+ select(...columns: (SQLExpression|string)[]): InstanceType<typeof SQLSelect<SQLResultNamespacedRow>> {
40
41
  if (columns.length === 0) {
41
42
  return new SQLSelect(this.wildcard())
42
43
  }
@@ -47,20 +48,32 @@ class StaticSQL {
47
48
  return new SQLDelete()
48
49
  }
49
50
 
50
- leftJoin(table: SQLExpression) {
51
- return new SQLJoin(SQLJoinType.Left, table)
51
+ leftJoin(namespace: string, table: string);
52
+ leftJoin(table: string);
53
+ leftJoin(expression: SQLExpression);
54
+ leftJoin(tableOrExpressiongOrNamespace: SQLExpression|string, table?: string) {
55
+ return new SQLJoin(SQLJoinType.Left, parseTable(tableOrExpressiongOrNamespace, table))
52
56
  }
53
57
 
54
- rightJoin(table: SQLExpression) {
55
- return new SQLJoin(SQLJoinType.Right, table)
58
+ rightJoin(namespace: string, table: string);
59
+ rightJoin(table: string);
60
+ rightJoin(expression: SQLExpression);
61
+ rightJoin(tableOrExpressiongOrNamespace: SQLExpression|string, table?: string) {
62
+ return new SQLJoin(SQLJoinType.Right, parseTable(tableOrExpressiongOrNamespace, table))
56
63
  }
57
64
 
58
- innerJoin(table: SQLExpression) {
59
- return new SQLJoin(SQLJoinType.Inner, table)
65
+ innerJoin(namespace: string, table: string);
66
+ innerJoin(table: string);
67
+ innerJoin(expression: SQLExpression);
68
+ innerJoin(tableOrExpressiongOrNamespace: SQLExpression|string, table?: string) {
69
+ return new SQLJoin(SQLJoinType.Inner, parseTable(tableOrExpressiongOrNamespace, table))
60
70
  }
61
71
 
62
- join(table: SQLExpression) {
63
- return new SQLJoin(SQLJoinType.Inner, table)
72
+ join(namespace: string, table: string);
73
+ join(table: string);
74
+ join(expression: SQLExpression);
75
+ join(tableOrExpressiongOrNamespace: SQLExpression|string, table?: string) {
76
+ return new SQLJoin(SQLJoinType.Inner, parseTable(tableOrExpressiongOrNamespace, table))
64
77
  }
65
78
  }
66
79
 
package/src/SQLDelete.ts CHANGED
@@ -1,16 +1,13 @@
1
1
  import { Database } from "@simonbackx/simple-database";
2
2
  import { SQLExpression, SQLExpressionOptions, SQLQuery, joinSQLQuery, normalizeSQLQuery } from "./SQLExpression";
3
3
  import { SQLJoin } from './SQLJoin';
4
- import { SQLWhere, addWhereHelpers } from "./SQLWhere";
4
+ import { SQLWhere, Whereable } from "./SQLWhere";
5
5
 
6
- class DeleteBase implements SQLExpression {
6
+ class EmptyClass {}
7
+ export class SQLDelete extends Whereable(EmptyClass) implements SQLExpression {
7
8
  _from: SQLExpression;
8
- _where: SQLWhere|null = null;
9
9
  _joins: (InstanceType<typeof SQLJoin>)[] = [];
10
10
 
11
- constructor() {
12
- }
13
-
14
11
  clone(): this {
15
12
  const c = new SQLDelete()
16
13
  Object.assign(c, this);
@@ -63,5 +60,3 @@ class DeleteBase implements SQLExpression {
63
60
  return this.delete().then(onFulfilled, onRejected);
64
61
  }
65
62
  }
66
-
67
- export const SQLDelete = addWhereHelpers(DeleteBase)
package/src/SQLJoin.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { SQLExpression, SQLExpressionOptions, SQLQuery, joinSQLQuery } from "./SQLExpression";
2
- import { SQLWhere, addWhereHelpers } from "./SQLWhere";
2
+ import { SQLWhere, Whereable } from "./SQLWhere";
3
3
 
4
4
  export enum SQLJoinType {
5
5
  Left = "Left",
@@ -8,12 +8,13 @@ export enum SQLJoinType {
8
8
  Outer = "Outer"
9
9
  }
10
10
 
11
- export class JoinBase implements SQLExpression {
11
+ class EmptyClass {}
12
+ export class SQLJoin extends Whereable(EmptyClass) implements SQLExpression {
12
13
  type = SQLJoinType.Left
13
14
  table: SQLExpression;
14
- _where: SQLWhere|null = null;
15
15
 
16
16
  constructor(type: SQLJoinType, table: SQLExpression) {
17
+ super();
17
18
  this.type = type;
18
19
  this.table = table;
19
20
  }
@@ -36,5 +37,3 @@ export class JoinBase implements SQLExpression {
36
37
  ], ' ')
37
38
  }
38
39
  }
39
-
40
- export const SQLJoin = addWhereHelpers(JoinBase)
package/src/SQLOrderBy.ts CHANGED
@@ -1,26 +1,28 @@
1
1
  import { SQLExpression, SQLExpressionOptions, SQLQuery, joinSQLQuery } from "./SQLExpression";
2
2
 
3
- type GConstructor<T = {}> = new (...args: any[]) => T;
4
- type Orderable = GConstructor<{ _orderBy: SQLOrderBy|null }>;
3
+ type Constructor<T = {}> = new (...args: any[]) => T;
5
4
 
6
- export function addOrderByHelpers<TBase extends Orderable>(Base: TBase) {
5
+ export function Orderable<Sup extends Constructor<{}>>(Base: Sup) {
7
6
  return class extends Base {
8
-
9
- orderBy(orderBy: SQLOrderBy)
10
- orderBy(column: SQLExpression, direction?: SQLOrderByDirection)
11
- orderBy(columnOrOrderBy: SQLExpression, direction?: SQLOrderByDirection) {
7
+ _orderBy: SQLOrderBy|null = null
8
+
9
+ orderBy<T>(this: T, orderBy: SQLOrderBy): T
10
+ orderBy<T>(this: T, column: SQLExpression, direction?: SQLOrderByDirection) : T
11
+ orderBy<T>(this: T, columnOrOrderBy: SQLExpression, direction?: SQLOrderByDirection): T {
12
12
  let o = columnOrOrderBy as SQLOrderBy
13
13
  if (!(columnOrOrderBy instanceof SQLOrderBy)) {
14
14
  o = new SQLOrderBy({column: columnOrOrderBy, direction: direction ?? 'ASC'})
15
15
  }
16
16
 
17
- if (this._orderBy) {
18
- this._orderBy.add(o)
17
+ const me = this as any; // stupid typescript looses type information if we don't do the this: T dance
18
+
19
+ if (me._orderBy) {
20
+ me._orderBy.add(o)
19
21
  } else {
20
- this._orderBy = o;
22
+ me._orderBy = o;
21
23
  }
22
24
 
23
- return this;
25
+ return me;
24
26
  }
25
27
  }
26
28
  }
@@ -60,4 +62,4 @@ export class SQLOrderBy implements SQLExpression {
60
62
  )
61
63
  ])
62
64
  }
63
- }
65
+ }
package/src/SQLSelect.ts CHANGED
@@ -1,24 +1,42 @@
1
+ import { Database, SQLResultNamespacedRow } from "@simonbackx/simple-database";
1
2
  import { SQLExpression, SQLExpressionOptions, SQLQuery, joinSQLQuery, normalizeSQLQuery } from "./SQLExpression";
2
- import { SQLOrderBy, addOrderByHelpers } from "./SQLOrderBy";
3
- import { SQLWhere, addWhereHelpers } from "./SQLWhere";
4
- import {Database, SQLResultNamespacedRow} from "@simonbackx/simple-database"
5
- import {SQLJoin} from './SQLJoin'
6
- import { SQLAlias, SQLCount, SQLSelectAs, SQLSum, SQLWildcardSelectExpression } from "./SQLExpressions";
3
+ import { SQLAlias, SQLColumnExpression, SQLCount, SQLSelectAs, SQLSum, SQLTableExpression } from "./SQLExpressions";
4
+ import { SQLJoin } from './SQLJoin';
5
+ import { Orderable } from "./SQLOrderBy";
6
+ import { Whereable } from "./SQLWhere";
7
+
8
+ class EmptyClass {}
9
+
10
+ export function parseTable(tableOrExpressiongOrNamespace: SQLExpression|string, table?: string): SQLExpression {
11
+ if (table !== undefined && typeof tableOrExpressiongOrNamespace === 'string') {
12
+ return new SQLTableExpression(tableOrExpressiongOrNamespace, table)
13
+ } else if (typeof tableOrExpressiongOrNamespace === 'string') {
14
+ return new SQLTableExpression(tableOrExpressiongOrNamespace)
15
+ } else {
16
+ return tableOrExpressiongOrNamespace;
17
+ }
18
+ }
7
19
 
8
- class SelectBase implements SQLExpression {
20
+ export class SQLSelect<T = SQLResultNamespacedRow> extends Whereable(Orderable(EmptyClass)) implements SQLExpression {
9
21
  _columns: SQLExpression[]
10
22
  _from: SQLExpression;
11
23
 
12
24
  _limit: number|null = null;
13
25
  _offset: number|null = null;
14
-
15
- _where: SQLWhere|null = null;
16
- _orderBy: SQLOrderBy|null = null;
17
26
  _groupBy: SQLExpression[] = [];
18
27
  _joins: (InstanceType<typeof SQLJoin>)[] = [];
19
28
 
20
- constructor(...columns: SQLExpression[]) {
21
- this._columns = columns;
29
+ _transformer: ((row: SQLResultNamespacedRow) => T)|null = null;
30
+
31
+ constructor(...columns: (SQLExpression|string)[])
32
+ constructor(transformer: ((row: SQLResultNamespacedRow) => T),...columns: (SQLExpression|string)[])
33
+ constructor(...columns: (SQLExpression|string|((row: SQLResultNamespacedRow) => T))[]) {
34
+ super();
35
+
36
+ if (typeof columns[0] === 'function') {
37
+ this._transformer = columns.shift() as any;
38
+ }
39
+ this._columns = columns.map(c => typeof c === 'string' ? new SQLColumnExpression(c) : c ) as any;
22
40
  }
23
41
 
24
42
  clone(): this {
@@ -27,8 +45,12 @@ class SelectBase implements SQLExpression {
27
45
  return c as any;
28
46
  }
29
47
 
30
- from(table: SQLExpression): this {
31
- this._from = table;
48
+ from(namespace: string, table: string): this
49
+ from(table: string): this
50
+ from(expression: SQLExpression): this
51
+ from(tableOrExpressiongOrNamespace: SQLExpression|string, table?: string): this {
52
+ this._from = parseTable(tableOrExpressiongOrNamespace, table);
53
+
32
54
  return this;
33
55
  }
34
56
 
@@ -98,10 +120,11 @@ class SelectBase implements SQLExpression {
98
120
  return this;
99
121
  }
100
122
 
101
- async fetch(): Promise<SQLResultNamespacedRow[]> {
123
+ async fetch(): Promise<T[]> {
102
124
  const {query, params} = normalizeSQLQuery(this.getSQL())
103
125
 
104
- console.log(query, params);
126
+ // when debugging: log all queries
127
+ //console.log(query, params);
105
128
  const [rows] = await Database.select(query, params, {nestTables: true});
106
129
 
107
130
  // Now map aggregated queries to the correct namespace
@@ -121,12 +144,16 @@ class SelectBase implements SQLExpression {
121
144
  delete row[''];
122
145
  }
123
146
  }
124
- return rows;
147
+
148
+ if (this._transformer) {
149
+ return rows.map(this._transformer);
150
+ }
151
+ return rows as T[];
125
152
  }
126
153
 
127
- first(required: false): Promise<SQLResultNamespacedRow|null>
128
- first(required: true): Promise<SQLResultNamespacedRow>
129
- async first(required = true): Promise<SQLResultNamespacedRow|null> {
154
+ first(required: false): Promise<T|null>
155
+ first(required: true): Promise<T>
156
+ async first(required = true): Promise<T|null> {
130
157
  const rows = await this.limit(1).fetch();
131
158
  if (rows.length === 0) {
132
159
  if (required) {
@@ -134,6 +161,7 @@ class SelectBase implements SQLExpression {
134
161
  }
135
162
  return null;
136
163
  }
164
+
137
165
  return rows[0]
138
166
  }
139
167
 
@@ -199,8 +227,3 @@ class SelectBase implements SQLExpression {
199
227
  return 0;
200
228
  }
201
229
  }
202
-
203
- export const SQLSelect = addOrderByHelpers(
204
- addWhereHelpers(SelectBase)
205
- )
206
-
package/src/SQLWhere.ts CHANGED
@@ -1,22 +1,27 @@
1
1
  import { SQLExpression, SQLExpressionOptions, SQLQuery, joinSQLQuery, normalizeSQLQuery } from "./SQLExpression";
2
- import { SQLArray, SQLDynamicExpression, SQLNull, readDynamicSQLExpression } from "./SQLExpressions";
2
+ import { SQLArray, SQLColumnExpression, SQLDynamicExpression, SQLNull, readDynamicSQLExpression } from "./SQLExpressions";
3
3
 
4
- type GConstructor<T = {}> = new (...args: any[]) => T;
5
- type Whereable = GConstructor<{ _where: SQLWhere|null }>;
4
+ type Constructor<T = {}> = new (...args: any[]) => T;
6
5
 
7
6
  export type ParseWhereArguments = [
8
7
  where: SQLWhere
9
8
  ] | [
10
- whereOrColumn: SQLExpression,
9
+ whereOrColumn: SQLExpression|string,
11
10
  sign: SQLWhereSign,
12
11
  value: SQLDynamicExpression
13
12
  ] | [
14
- whereOrColumn: SQLExpression,
13
+ whereOrColumn: SQLExpression|string,
15
14
  value: SQLDynamicExpression
16
15
  ]
17
16
 
18
- export function addWhereHelpers<TBase extends Whereable>(Base: TBase) {
17
+ function assertWhereable(o: any): any {
18
+ return o;
19
+ }
20
+
21
+ export function Whereable<Sup extends Constructor<{}>>(Base: Sup) {
19
22
  return class extends Base {
23
+ _where: SQLWhere|null = null
24
+
20
25
  parseWhere(...[whereOrColumn, signOrValue, value]: ParseWhereArguments): SQLWhere {
21
26
  if (signOrValue === undefined) {
22
27
  return whereOrColumn as SQLWhere;
@@ -24,63 +29,71 @@ export function addWhereHelpers<TBase extends Whereable>(Base: TBase) {
24
29
 
25
30
  if (value !== undefined) {
26
31
  return new SQLWhereEqual(
27
- whereOrColumn,
32
+ typeof whereOrColumn === 'string' ? new SQLColumnExpression(whereOrColumn) : whereOrColumn,
28
33
  signOrValue as SQLWhereSign,
29
34
  readDynamicSQLExpression(value)
30
35
  )
31
36
  }
32
37
  return new SQLWhereEqual(
33
- whereOrColumn,
38
+ typeof whereOrColumn === 'string' ? new SQLColumnExpression(whereOrColumn) : whereOrColumn,
34
39
  SQLWhereSign.Equal,
35
40
  readDynamicSQLExpression(signOrValue)
36
41
  )
37
42
  }
38
43
 
44
+
39
45
  where<T>(this: T, ...args: ParseWhereArguments): T {
40
- const w = (this as any).parseWhere(...args);
41
- if (!(this as any)._where) {
42
- (this as any)._where = w;
43
- return this;
46
+ const me = assertWhereable(this)
47
+
48
+ const w = me.parseWhere(...args);
49
+ if (!me._where) {
50
+ me._where = w;
51
+ return me;
44
52
  }
45
- (this as any)._where = (this as any)._where.and(w);
46
- return this;
53
+ me._where = me._where.and(w);
54
+ return me;
47
55
  }
48
56
 
49
- andWhere(...args: ParseWhereArguments) {
50
- return this.where(...args)
57
+ andWhere<T>(this: T, ...args: ParseWhereArguments): T {
58
+ const me = assertWhereable(this)
59
+ return me.where(...args)
51
60
  }
52
61
 
53
- orWhere(...args: ParseWhereArguments) {
54
- const w = this.parseWhere(...args);
55
- if (!this._where) {
56
- this._where = w;
62
+ orWhere<T>(this: T, ...args: ParseWhereArguments): T {
63
+ const me = assertWhereable(this)
64
+ const w = me.parseWhere(...args);
65
+ if (!me._where) {
66
+ me._where = w;
57
67
  return this;
58
68
  }
59
- this._where = this._where.or(w);
69
+ me._where = me._where.or(w);
60
70
  return this;
61
71
  }
62
72
 
63
- whereNot(...args: ParseWhereArguments) {
64
- const w = new SQLWhereNot(this.parseWhere(...args));
65
- if (!this._where) {
66
- this._where = w;
73
+ whereNot<T>(this: T, ...args: ParseWhereArguments): T {
74
+ const me = assertWhereable(this)
75
+ const w = new SQLWhereNot(me.parseWhere(...args));
76
+ if (!me._where) {
77
+ me._where = w;
67
78
  return this;
68
79
  }
69
- this._where = this._where.and(w);
80
+ me._where = me._where.and(w);
70
81
  return this;
71
82
  }
72
83
 
73
- andWhereNot(...args: ParseWhereArguments) {
74
- return this.whereNot(...args)
84
+ andWhereNot<T>(this: T, ...args: ParseWhereArguments): T {
85
+ const me = assertWhereable(this)
86
+ return me.whereNot(...args)
75
87
  }
76
88
 
77
- orWhereNot(...args: ParseWhereArguments) {
78
- const w = new SQLWhereNot(this.parseWhere(...args));
79
- if (!this._where) {
80
- this._where = w;
89
+ orWhereNot<T>(this: T, ...args: ParseWhereArguments): T {
90
+ const me = assertWhereable(this)
91
+ const w = new SQLWhereNot(me.parseWhere(...args));
92
+ if (!me._where) {
93
+ me._where = w;
81
94
  return this;
82
95
  }
83
- this._where = this._where.or(w);
96
+ me._where = me._where.or(w);
84
97
  return this;
85
98
  }
86
99
  }