@sqb/builder 4.2.1 → 4.5.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.
Files changed (206) hide show
  1. package/README.md +2 -2
  2. package/cjs/classes.ns.js +41 -0
  3. package/{dist → cjs}/enums.js +6 -3
  4. package/{dist → cjs}/extensions.js +0 -0
  5. package/{dist → cjs}/helpers.js +0 -0
  6. package/cjs/index.js +27 -0
  7. package/{dist → cjs}/op.initializers.js +42 -42
  8. package/cjs/package.json +3 -0
  9. package/{dist/query/DeleteQuery.js → cjs/query/delete-query.js} +13 -11
  10. package/{dist/query/InsertQuery.js → cjs/query/insert-query.js} +15 -13
  11. package/{dist/query/Query.js → cjs/query/query.js} +5 -4
  12. package/{dist/query/ReturningQuery.js → cjs/query/returning-query.js} +9 -8
  13. package/cjs/query/select-query.js +294 -0
  14. package/{dist/query/UpdateQuery.js → cjs/query/update-query.js} +17 -14
  15. package/{dist/Serializable.js → cjs/serializable.js} +0 -0
  16. package/{dist/SerializeContext.js → cjs/serialize-context.js} +36 -26
  17. package/cjs/sql-objects/base-field.js +11 -0
  18. package/{dist/sql-objects/CaseStatement.js → cjs/sql-objects/case-statement.js} +10 -6
  19. package/{dist/sql-objects/CoalesceStatement.js → cjs/sql-objects/coalesce-statement.js} +6 -4
  20. package/{dist/sql-objects/CountStatement.js → cjs/sql-objects/count-statement.js} +5 -4
  21. package/cjs/sql-objects/expression.js +10 -0
  22. package/{dist/sql-objects/FieldExpression.js → cjs/sql-objects/field-expression.js} +5 -4
  23. package/{dist/sql-objects/GroupColumn.js → cjs/sql-objects/group-column.js} +4 -4
  24. package/{dist/sql-objects/JoinStatement.js → cjs/sql-objects/join-statement.js} +20 -18
  25. package/{dist/sql-objects/LowerStatement.js → cjs/sql-objects/lower-statement.js} +6 -4
  26. package/cjs/sql-objects/max-statement.js +41 -0
  27. package/cjs/sql-objects/min-statement.js +41 -0
  28. package/{dist/sql-objects/Operator.js → cjs/sql-objects/operator.js} +2 -2
  29. package/{dist/sql-objects/operators/CompOperator.js → cjs/sql-objects/operators/comp-operator.js} +17 -13
  30. package/{dist/sql-objects/operators/LogicalOperator.js → cjs/sql-objects/operators/logical-operator.js} +11 -11
  31. package/cjs/sql-objects/operators/op-and.js +9 -0
  32. package/{dist/sql-objects/operators/OpBetween.js → cjs/sql-objects/operators/op-between.js} +5 -5
  33. package/cjs/sql-objects/operators/op-eq.js +13 -0
  34. package/{dist/sql-objects/operators/OpExists.js → cjs/sql-objects/operators/op-exists.js} +7 -7
  35. package/cjs/sql-objects/operators/op-gt.js +13 -0
  36. package/cjs/sql-objects/operators/op-gte.js +13 -0
  37. package/cjs/sql-objects/operators/op-ilike.js +10 -0
  38. package/cjs/sql-objects/operators/op-in.js +19 -0
  39. package/cjs/sql-objects/operators/op-is-not.js +13 -0
  40. package/cjs/sql-objects/operators/op-is.js +13 -0
  41. package/{dist/sql-objects/operators/OpLike.js → cjs/sql-objects/operators/op-like.js} +7 -7
  42. package/cjs/sql-objects/operators/op-lt.js +13 -0
  43. package/cjs/sql-objects/operators/op-lte.js +13 -0
  44. package/cjs/sql-objects/operators/op-ne.js +13 -0
  45. package/cjs/sql-objects/operators/op-not-between.js +10 -0
  46. package/cjs/sql-objects/operators/op-not-exists.js +10 -0
  47. package/cjs/sql-objects/operators/op-not-ilike.js +10 -0
  48. package/cjs/sql-objects/operators/op-not-in.js +10 -0
  49. package/cjs/sql-objects/operators/op-not-like.js +10 -0
  50. package/cjs/sql-objects/operators/op-or.js +9 -0
  51. package/{dist/sql-objects/OrderColumn.js → cjs/sql-objects/order-column.js} +5 -4
  52. package/{dist/sql-objects/ParamExpression.js → cjs/sql-objects/param-expression.js} +7 -4
  53. package/{dist/sql-objects/RawStatement.js → cjs/sql-objects/raw-statement.js} +5 -4
  54. package/{dist/sql-objects/ReturningColumn.js → cjs/sql-objects/returning-column.js} +5 -4
  55. package/cjs/sql-objects/sequence-getter-statement.js +51 -0
  56. package/cjs/sql-objects/string-agg-statement.js +82 -0
  57. package/{dist/sql-objects/TableName.js → cjs/sql-objects/table-name.js} +7 -4
  58. package/{dist/sql-objects/UpperStatement.js → cjs/sql-objects/upper-statement.js} +6 -4
  59. package/cjs/sqlobject.initializers.js +129 -0
  60. package/{dist → cjs}/typeguards.js +21 -21
  61. package/{dist → cjs}/types.js +0 -0
  62. package/esm/classes.ns.d.ts +38 -0
  63. package/esm/classes.ns.js +38 -0
  64. package/{dist → esm}/enums.d.ts +6 -3
  65. package/esm/enums.js +95 -0
  66. package/{dist → esm}/extensions.d.ts +1 -1
  67. package/esm/extensions.js +11 -0
  68. package/{dist → esm}/helpers.d.ts +0 -0
  69. package/esm/helpers.js +27 -0
  70. package/esm/index.d.ts +20 -0
  71. package/esm/index.js +20 -0
  72. package/{dist → esm}/op.initializers.d.ts +22 -22
  73. package/esm/op.initializers.js +126 -0
  74. package/{dist/query/DeleteQuery.d.ts → esm/query/delete-query.d.ts} +6 -6
  75. package/esm/query/delete-query.js +51 -0
  76. package/{dist/query/InsertQuery.d.ts → esm/query/insert-query.d.ts} +5 -5
  77. package/esm/query/insert-query.js +73 -0
  78. package/{dist/query/Query.d.ts → esm/query/query.d.ts} +2 -2
  79. package/esm/query/query.js +36 -0
  80. package/{dist/query/ReturningQuery.d.ts → esm/query/returning-query.d.ts} +3 -3
  81. package/esm/query/returning-query.js +41 -0
  82. package/{dist/query/SelectQuery.d.ts → esm/query/select-query.d.ts} +9 -9
  83. package/{dist/query/SelectQuery.js → esm/query/select-query.js} +38 -32
  84. package/{dist/query/UpdateQuery.d.ts → esm/query/update-query.d.ts} +6 -6
  85. package/esm/query/update-query.js +79 -0
  86. package/{dist/Serializable.d.ts → esm/serializable.d.ts} +2 -2
  87. package/esm/serializable.js +2 -0
  88. package/{dist/SerializeContext.d.ts → esm/serialize-context.d.ts} +1 -1
  89. package/esm/serialize-context.js +145 -0
  90. package/{dist/sql-objects/BaseField.d.ts → esm/sql-objects/base-field.d.ts} +1 -1
  91. package/esm/sql-objects/base-field.js +7 -0
  92. package/{dist/sql-objects/CaseStatement.d.ts → esm/sql-objects/case-statement.d.ts} +6 -6
  93. package/esm/sql-objects/case-statement.js +85 -0
  94. package/{dist/sql-objects/CoalesceStatement.d.ts → esm/sql-objects/coalesce-statement.d.ts} +3 -3
  95. package/esm/sql-objects/coalesce-statement.js +42 -0
  96. package/{dist/sql-objects/CountStatement.d.ts → esm/sql-objects/count-statement.d.ts} +3 -3
  97. package/esm/sql-objects/count-statement.js +31 -0
  98. package/{dist/sql-objects/Expression.d.ts → esm/sql-objects/expression.d.ts} +2 -2
  99. package/esm/sql-objects/expression.js +6 -0
  100. package/{dist/sql-objects/FieldExpression.d.ts → esm/sql-objects/field-expression.d.ts} +3 -3
  101. package/esm/sql-objects/field-expression.js +50 -0
  102. package/{dist/sql-objects/GroupColumn.d.ts → esm/sql-objects/group-column.d.ts} +3 -3
  103. package/esm/sql-objects/group-column.js +34 -0
  104. package/{dist/sql-objects/JoinStatement.d.ts → esm/sql-objects/join-statement.d.ts} +7 -7
  105. package/esm/sql-objects/join-statement.js +79 -0
  106. package/{dist/sql-objects/LowerStatement.d.ts → esm/sql-objects/lower-statement.d.ts} +3 -3
  107. package/esm/sql-objects/lower-statement.js +37 -0
  108. package/esm/sql-objects/max-statement.d.ts +22 -0
  109. package/esm/sql-objects/max-statement.js +37 -0
  110. package/esm/sql-objects/min-statement.d.ts +22 -0
  111. package/esm/sql-objects/min-statement.js +37 -0
  112. package/{dist/sql-objects/Operator.d.ts → esm/sql-objects/operator.d.ts} +2 -2
  113. package/esm/sql-objects/operator.js +3 -0
  114. package/{dist/sql-objects/operators/CompOperator.d.ts → esm/sql-objects/operators/comp-operator.d.ts} +4 -4
  115. package/esm/sql-objects/operators/comp-operator.js +86 -0
  116. package/{dist/sql-objects/operators/LogicalOperator.d.ts → esm/sql-objects/operators/logical-operator.d.ts} +4 -4
  117. package/esm/sql-objects/operators/logical-operator.js +79 -0
  118. package/esm/sql-objects/operators/op-and.d.ts +5 -0
  119. package/esm/sql-objects/operators/op-and.js +5 -0
  120. package/{dist/sql-objects/operators/OpBetween.d.ts → esm/sql-objects/operators/op-between.d.ts} +4 -4
  121. package/esm/sql-objects/operators/op-between.js +31 -0
  122. package/{dist/sql-objects/operators/OpEq.d.ts → esm/sql-objects/operators/op-eq.d.ts} +3 -3
  123. package/esm/sql-objects/operators/op-eq.js +9 -0
  124. package/{dist/sql-objects/operators/OpExists.d.ts → esm/sql-objects/operators/op-exists.d.ts} +4 -4
  125. package/esm/sql-objects/operators/op-exists.js +26 -0
  126. package/{dist/sql-objects/operators/OpGt.d.ts → esm/sql-objects/operators/op-gt.d.ts} +3 -3
  127. package/esm/sql-objects/operators/op-gt.js +9 -0
  128. package/{dist/sql-objects/operators/OpGte.d.ts → esm/sql-objects/operators/op-gte.d.ts} +3 -3
  129. package/esm/sql-objects/operators/op-gte.js +9 -0
  130. package/{dist/sql-objects/operators/OpILike.d.ts → esm/sql-objects/operators/op-ilike.d.ts} +2 -2
  131. package/esm/sql-objects/operators/op-ilike.js +6 -0
  132. package/{dist/sql-objects/operators/OpIn.d.ts → esm/sql-objects/operators/op-in.d.ts} +3 -3
  133. package/esm/sql-objects/operators/op-in.js +15 -0
  134. package/{dist/sql-objects/operators/OpIsNot.d.ts → esm/sql-objects/operators/op-is-not.d.ts} +3 -3
  135. package/esm/sql-objects/operators/op-is-not.js +9 -0
  136. package/{dist/sql-objects/operators/OpIs.d.ts → esm/sql-objects/operators/op-is.d.ts} +3 -3
  137. package/esm/sql-objects/operators/op-is.js +9 -0
  138. package/{dist/sql-objects/operators/OpLike.d.ts → esm/sql-objects/operators/op-like.d.ts} +4 -4
  139. package/esm/sql-objects/operators/op-like.js +18 -0
  140. package/{dist/sql-objects/operators/OpLt.d.ts → esm/sql-objects/operators/op-lt.d.ts} +3 -3
  141. package/esm/sql-objects/operators/op-lt.js +9 -0
  142. package/{dist/sql-objects/operators/OpLte.d.ts → esm/sql-objects/operators/op-lte.d.ts} +3 -3
  143. package/esm/sql-objects/operators/op-lte.js +9 -0
  144. package/{dist/sql-objects/operators/OpNe.d.ts → esm/sql-objects/operators/op-ne.d.ts} +3 -3
  145. package/esm/sql-objects/operators/op-ne.js +9 -0
  146. package/{dist/sql-objects/operators/OpNotBetween.d.ts → esm/sql-objects/operators/op-not-between.d.ts} +2 -2
  147. package/esm/sql-objects/operators/op-not-between.js +6 -0
  148. package/{dist/sql-objects/operators/OpNotExists.d.ts → esm/sql-objects/operators/op-not-exists.d.ts} +2 -2
  149. package/esm/sql-objects/operators/op-not-exists.js +6 -0
  150. package/{dist/sql-objects/operators/OpNotILike.d.ts → esm/sql-objects/operators/op-not-ilike.d.ts} +2 -2
  151. package/esm/sql-objects/operators/op-not-ilike.js +6 -0
  152. package/{dist/sql-objects/operators/OpNotIn.d.ts → esm/sql-objects/operators/op-not-in.d.ts} +2 -2
  153. package/esm/sql-objects/operators/op-not-in.js +6 -0
  154. package/{dist/sql-objects/operators/OpNotLike.d.ts → esm/sql-objects/operators/op-not-like.d.ts} +2 -2
  155. package/esm/sql-objects/operators/op-not-like.js +6 -0
  156. package/esm/sql-objects/operators/op-or.d.ts +5 -0
  157. package/esm/sql-objects/operators/op-or.js +5 -0
  158. package/{dist/sql-objects/OrderColumn.d.ts → esm/sql-objects/order-column.d.ts} +3 -3
  159. package/esm/sql-objects/order-column.js +39 -0
  160. package/{dist/sql-objects/ParamExpression.d.ts → esm/sql-objects/param-expression.d.ts} +3 -3
  161. package/esm/sql-objects/param-expression.js +52 -0
  162. package/{dist/sql-objects/RawStatement.d.ts → esm/sql-objects/raw-statement.d.ts} +3 -3
  163. package/esm/sql-objects/raw-statement.js +15 -0
  164. package/{dist/sql-objects/ReturningColumn.d.ts → esm/sql-objects/returning-column.d.ts} +3 -3
  165. package/esm/sql-objects/returning-column.js +29 -0
  166. package/esm/sql-objects/sequence-getter-statement.d.ts +24 -0
  167. package/esm/sql-objects/sequence-getter-statement.js +47 -0
  168. package/{dist/sql-objects/StringAggStatement.d.ts → esm/sql-objects/string-agg-statement.d.ts} +4 -4
  169. package/{dist/sql-objects/StringAggStatement.js → esm/sql-objects/string-agg-statement.js} +15 -15
  170. package/{dist/sql-objects/TableName.d.ts → esm/sql-objects/table-name.d.ts} +3 -3
  171. package/esm/sql-objects/table-name.js +30 -0
  172. package/{dist/sql-objects/UpperStatement.d.ts → esm/sql-objects/upper-statement.d.ts} +3 -3
  173. package/esm/sql-objects/upper-statement.js +37 -0
  174. package/{dist → esm}/sqlobject.initializers.d.ts +23 -16
  175. package/esm/sqlobject.initializers.js +101 -0
  176. package/{dist → esm}/typeguards.d.ts +17 -17
  177. package/esm/typeguards.js +57 -0
  178. package/{dist → esm}/types.d.ts +2 -2
  179. package/esm/types.js +1 -0
  180. package/package.json +48 -33
  181. package/dist/classes.d.ts +0 -38
  182. package/dist/classes.js +0 -41
  183. package/dist/index.d.ts +0 -20
  184. package/dist/index.js +0 -27
  185. package/dist/sql-objects/BaseField.js +0 -11
  186. package/dist/sql-objects/Expression.js +0 -7
  187. package/dist/sql-objects/operators/OpAnd.d.ts +0 -5
  188. package/dist/sql-objects/operators/OpAnd.js +0 -12
  189. package/dist/sql-objects/operators/OpEq.js +0 -13
  190. package/dist/sql-objects/operators/OpGt.js +0 -13
  191. package/dist/sql-objects/operators/OpGte.js +0 -13
  192. package/dist/sql-objects/operators/OpILike.js +0 -13
  193. package/dist/sql-objects/operators/OpIn.js +0 -19
  194. package/dist/sql-objects/operators/OpIs.js +0 -13
  195. package/dist/sql-objects/operators/OpIsNot.js +0 -13
  196. package/dist/sql-objects/operators/OpLt.js +0 -13
  197. package/dist/sql-objects/operators/OpLte.js +0 -13
  198. package/dist/sql-objects/operators/OpNe.js +0 -13
  199. package/dist/sql-objects/operators/OpNotBetween.js +0 -13
  200. package/dist/sql-objects/operators/OpNotExists.js +0 -13
  201. package/dist/sql-objects/operators/OpNotILike.js +0 -13
  202. package/dist/sql-objects/operators/OpNotIn.js +0 -13
  203. package/dist/sql-objects/operators/OpNotLike.js +0 -13
  204. package/dist/sql-objects/operators/OpOr.d.ts +0 -5
  205. package/dist/sql-objects/operators/OpOr.js +0 -12
  206. package/dist/sqlobject.initializers.js +0 -110
@@ -1,7 +1,7 @@
1
- import { SerializationType } from '../enums';
2
- import { Serializable } from '../Serializable';
3
- import { SerializeContext } from '../SerializeContext';
4
- import { OrderColumn } from './OrderColumn';
1
+ import { SerializationType } from '../enums.js';
2
+ import { Serializable } from '../serializable.js';
3
+ import { SerializeContext } from '../serialize-context.js';
4
+ import { OrderColumn } from './order-column.js';
5
5
  export declare class StringAGGStatement extends Serializable {
6
6
  _field: Serializable;
7
7
  _delimiter: string;
@@ -1,19 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StringAGGStatement = void 0;
4
- const enums_1 = require("../enums");
5
- const helpers_1 = require("../helpers");
6
- const Serializable_1 = require("../Serializable");
7
- const FieldExpression_1 = require("./FieldExpression");
8
- const OrderColumn_1 = require("./OrderColumn");
9
- class StringAGGStatement extends Serializable_1.Serializable {
1
+ import { SerializationType } from '../enums.js';
2
+ import { printArray } from '../helpers.js';
3
+ import { Serializable } from '../serializable.js';
4
+ import { FieldExpression } from './field-expression.js';
5
+ import { OrderColumn } from './order-column.js';
6
+ export class StringAGGStatement extends Serializable {
7
+ _field;
8
+ _delimiter;
9
+ _orderBy;
10
+ _alias;
10
11
  constructor(field, delimiter) {
11
12
  super();
12
- this._field = typeof field === 'string' ? new FieldExpression_1.FieldExpression(field) : field;
13
+ this._field = typeof field === 'string' ? new FieldExpression(field) : field;
13
14
  this._delimiter = delimiter || ',';
14
15
  }
15
16
  get _type() {
16
- return enums_1.SerializationType.STRINGAGG_STATEMENT;
17
+ return SerializationType.STRINGAGG_STATEMENT;
17
18
  }
18
19
  delimiter(value) {
19
20
  this._delimiter = value;
@@ -27,7 +28,7 @@ class StringAGGStatement extends Serializable_1.Serializable {
27
28
  for (const arg of field) {
28
29
  if (!arg)
29
30
  continue;
30
- this._orderBy.push(typeof arg === 'string' ? new OrderColumn_1.OrderColumn(arg) : arg);
31
+ this._orderBy.push(typeof arg === 'string' ? new OrderColumn(arg) : arg);
31
32
  }
32
33
  return this;
33
34
  }
@@ -63,8 +64,8 @@ class StringAGGStatement extends Serializable_1.Serializable {
63
64
  if (s)
64
65
  arr.push(s);
65
66
  }
66
- return ctx.serialize(enums_1.SerializationType.SELECT_QUERY_ORDERBY, arr, () => {
67
- const s = (0, helpers_1.printArray)(arr);
67
+ return ctx.serialize(SerializationType.SELECT_QUERY_ORDERBY, arr, () => {
68
+ const s = printArray(arr);
68
69
  return s ? 'order by ' + s : '';
69
70
  });
70
71
  }
@@ -75,4 +76,3 @@ class StringAGGStatement extends Serializable_1.Serializable {
75
76
  (o.alias ? ' ' + o.alias : '');
76
77
  }
77
78
  }
78
- exports.StringAGGStatement = StringAGGStatement;
@@ -1,6 +1,6 @@
1
- import { SerializationType } from '../enums';
2
- import { Serializable } from '../Serializable';
3
- import { SerializeContext } from '../SerializeContext';
1
+ import { SerializationType } from '../enums.js';
2
+ import { Serializable } from '../serializable.js';
3
+ import { SerializeContext } from '../serialize-context.js';
4
4
  export declare class TableName extends Serializable {
5
5
  schema?: string;
6
6
  table?: string;
@@ -0,0 +1,30 @@
1
+ import { SerializationType } from '../enums.js';
2
+ import { Serializable } from '../serializable.js';
3
+ export class TableName extends Serializable {
4
+ schema;
5
+ table;
6
+ alias;
7
+ constructor(tableName) {
8
+ super();
9
+ const m = tableName.match(/^(?:([a-zA-Z][\w$]*)\.)? *([a-zA-Z][\w$]*) *(?:as)? *(\w+)?$/);
10
+ if (!m)
11
+ throw new TypeError(`(${tableName}) does not match table name format`);
12
+ if (m[1])
13
+ this.schema = m[1];
14
+ if (m[2])
15
+ this.table = m[2];
16
+ if (m[3])
17
+ this.alias = m[3];
18
+ }
19
+ get _type() {
20
+ return SerializationType.TABLE_NAME;
21
+ }
22
+ _serialize(ctx) {
23
+ return ctx.serialize(this._type, {
24
+ schema: this.schema,
25
+ table: this.table,
26
+ alias: this.alias
27
+ }, () => (this.schema ? this.schema + '.' : '') + this.table +
28
+ (this.alias ? ' ' + this.alias : ''));
29
+ }
30
+ }
@@ -1,6 +1,6 @@
1
- import { SerializationType } from '../enums';
2
- import { Serializable } from '../Serializable';
3
- import { SerializeContext } from '../SerializeContext';
1
+ import { SerializationType } from '../enums.js';
2
+ import { Serializable } from '../serializable.js';
3
+ import { SerializeContext } from '../serialize-context.js';
4
4
  export declare class UpperStatement extends Serializable {
5
5
  _expression: any;
6
6
  _alias?: string;
@@ -0,0 +1,37 @@
1
+ import { SerializationType } from '../enums.js';
2
+ import { Serializable } from '../serializable.js';
3
+ export class UpperStatement extends Serializable {
4
+ _expression;
5
+ _alias;
6
+ constructor(expression) {
7
+ super();
8
+ this._expression = expression;
9
+ }
10
+ get _type() {
11
+ return SerializationType.UPPER_STATEMENT;
12
+ }
13
+ /**
14
+ * Sets alias to case expression.
15
+ */
16
+ as(alias) {
17
+ this._alias = alias;
18
+ return this;
19
+ }
20
+ /**
21
+ * Performs serialization
22
+ *
23
+ * @param {Object} ctx
24
+ * @return {string}
25
+ * @override
26
+ */
27
+ _serialize(ctx) {
28
+ if (!this._expression)
29
+ return '';
30
+ const q = ctx.anyToSQL(this._expression);
31
+ return ctx.serialize(this._type, q, () => this.__defaultSerialize(ctx, q));
32
+ }
33
+ __defaultSerialize(ctx, o) {
34
+ return 'upper(' + o + ')' +
35
+ (this._alias ? ' ' + this._alias : '');
36
+ }
37
+ }
@@ -1,19 +1,22 @@
1
- import { DataType } from './enums';
2
- import { DeleteQuery } from './query/DeleteQuery';
3
- import { InsertQuery } from './query/InsertQuery';
4
- import { SelectQuery } from './query/SelectQuery';
5
- import { UpdateQuery } from './query/UpdateQuery';
6
- import { Serializable } from './Serializable';
7
- import { CaseStatement } from './sql-objects/CaseStatement';
8
- import { CoalesceStatement } from './sql-objects/CoalesceStatement';
9
- import { CountStatement } from './sql-objects/CountStatement';
10
- import { FieldExpression } from './sql-objects/FieldExpression';
11
- import { JoinStatement } from './sql-objects/JoinStatement';
12
- import { LowerStatement } from './sql-objects/LowerStatement';
13
- import { ParamExpression } from './sql-objects/ParamExpression';
14
- import { RawStatement } from './sql-objects/RawStatement';
15
- import { StringAGGStatement } from './sql-objects/StringAggStatement';
16
- import { UpperStatement } from './sql-objects/UpperStatement';
1
+ import { DataType } from './enums.js';
2
+ import { DeleteQuery } from './query/delete-query.js';
3
+ import { InsertQuery } from './query/insert-query.js';
4
+ import { SelectQuery } from './query/select-query.js';
5
+ import { UpdateQuery } from './query/update-query.js';
6
+ import { Serializable } from './serializable.js';
7
+ import { CaseStatement } from './sql-objects/case-statement.js';
8
+ import { CoalesceStatement } from './sql-objects/coalesce-statement.js';
9
+ import { CountStatement } from './sql-objects/count-statement.js';
10
+ import { FieldExpression } from './sql-objects/field-expression.js';
11
+ import { JoinStatement } from './sql-objects/join-statement.js';
12
+ import { LowerStatement } from './sql-objects/lower-statement.js';
13
+ import { MaxStatement } from './sql-objects/max-statement.js';
14
+ import { MinStatement } from './sql-objects/min-statement.js';
15
+ import { ParamExpression } from './sql-objects/param-expression.js';
16
+ import { RawStatement } from './sql-objects/raw-statement.js';
17
+ import { SequenceGetterStatement } from './sql-objects/sequence-getter-statement.js';
18
+ import { StringAGGStatement } from './sql-objects/string-agg-statement.js';
19
+ import { UpperStatement } from './sql-objects/upper-statement.js';
17
20
  export declare function Raw(text: string): RawStatement;
18
21
  export declare function Select(...column: (string | string[] | Serializable)[]): SelectQuery;
19
22
  export declare function Insert(tableName: string | RawStatement, input: any): InsertQuery;
@@ -31,8 +34,12 @@ export declare function Case(): CaseStatement;
31
34
  export declare function Coalesce(...expressions: any[]): CoalesceStatement;
32
35
  export declare function Lower(expression: any): LowerStatement;
33
36
  export declare function Upper(expression: any): UpperStatement;
37
+ export declare function Min(expression: any): MinStatement;
38
+ export declare function Max(expression: any): MaxStatement;
34
39
  export declare function StringAGG(field: any): StringAGGStatement;
35
40
  export declare function Count(): CountStatement;
41
+ export declare function SequenceNext(expression: string): SequenceGetterStatement;
42
+ export declare function SequenceCurr(expression: string): SequenceGetterStatement;
36
43
  export declare function Param(name: string, dataType?: DataType, isArray?: boolean): ParamExpression;
37
44
  export declare function Param(args: {
38
45
  name: string;
@@ -0,0 +1,101 @@
1
+ import { JoinType } from './enums.js';
2
+ import { DeleteQuery } from './query/delete-query.js';
3
+ import { InsertQuery } from './query/insert-query.js';
4
+ import { SelectQuery } from './query/select-query.js';
5
+ import { UpdateQuery } from './query/update-query.js';
6
+ import { CaseStatement } from './sql-objects/case-statement.js';
7
+ import { CoalesceStatement } from './sql-objects/coalesce-statement.js';
8
+ import { CountStatement } from './sql-objects/count-statement.js';
9
+ import { FieldExpression } from './sql-objects/field-expression.js';
10
+ import { JoinStatement } from './sql-objects/join-statement.js';
11
+ import { LowerStatement } from './sql-objects/lower-statement.js';
12
+ import { MaxStatement } from './sql-objects/max-statement.js';
13
+ import { MinStatement } from './sql-objects/min-statement.js';
14
+ import { ParamExpression } from './sql-objects/param-expression.js';
15
+ import { RawStatement } from './sql-objects/raw-statement.js';
16
+ import { SequenceGetterStatement } from './sql-objects/sequence-getter-statement.js';
17
+ import { StringAGGStatement } from './sql-objects/string-agg-statement.js';
18
+ import { UpperStatement } from './sql-objects/upper-statement.js';
19
+ export function Raw(text) {
20
+ return new RawStatement(text);
21
+ }
22
+ export function Select(...column) {
23
+ return new SelectQuery(...column);
24
+ }
25
+ export function Insert(tableName, input) {
26
+ return new InsertQuery(tableName, input);
27
+ }
28
+ export function Update(tableName, input) {
29
+ return new UpdateQuery(tableName, input);
30
+ }
31
+ export function Delete(tableName) {
32
+ return new DeleteQuery(tableName);
33
+ }
34
+ export function Join(table) {
35
+ return new JoinStatement(JoinType.INNER, table);
36
+ }
37
+ export function InnerJoin(table) {
38
+ return new JoinStatement(JoinType.INNER, table);
39
+ }
40
+ export function LeftJoin(table) {
41
+ return new JoinStatement(JoinType.LEFT, table);
42
+ }
43
+ export function LeftOuterJoin(table) {
44
+ return new JoinStatement(JoinType.LEFT_OUTER, table);
45
+ }
46
+ export function RightJoin(table) {
47
+ return new JoinStatement(JoinType.RIGHT, table);
48
+ }
49
+ export function RightOuterJoin(table) {
50
+ return new JoinStatement(JoinType.RIGHT_OUTER, table);
51
+ }
52
+ export function OuterJoin(table) {
53
+ return new JoinStatement(JoinType.OUTER, table);
54
+ }
55
+ export function FullOuterJoin(table) {
56
+ return new JoinStatement(JoinType.FULL_OUTER, table);
57
+ }
58
+ export function Case() {
59
+ return new CaseStatement();
60
+ }
61
+ export function Coalesce(...expressions) {
62
+ return new CoalesceStatement(...expressions);
63
+ }
64
+ export function Lower(expression) {
65
+ return new LowerStatement(expression);
66
+ }
67
+ export function Upper(expression) {
68
+ return new UpperStatement(expression);
69
+ }
70
+ export function Min(expression) {
71
+ return new MinStatement(expression);
72
+ }
73
+ export function Max(expression) {
74
+ return new MaxStatement(expression);
75
+ }
76
+ export function StringAGG(field) {
77
+ return new StringAGGStatement(field);
78
+ }
79
+ export function Count() {
80
+ return new CountStatement();
81
+ }
82
+ export function SequenceNext(expression) {
83
+ return new SequenceGetterStatement(expression, true);
84
+ }
85
+ export function SequenceCurr(expression) {
86
+ return new SequenceGetterStatement(expression, false);
87
+ }
88
+ export function Param(arg0, arg1, arg2) {
89
+ if (typeof arg0 === 'object')
90
+ return new ParamExpression(arg0);
91
+ return new ParamExpression({
92
+ name: arg0,
93
+ dataType: arg1,
94
+ isArray: arg2
95
+ });
96
+ }
97
+ export function Field(arg0, arg1, arg2) {
98
+ if (typeof arg0 === 'object')
99
+ return new FieldExpression(arg0);
100
+ return new FieldExpression(arg0, arg1, arg2);
101
+ }
@@ -1,20 +1,20 @@
1
- import type { DeleteQuery } from './query/DeleteQuery';
2
- import type { InsertQuery } from './query/InsertQuery';
3
- import type { SelectQuery } from './query/SelectQuery';
4
- import type { UpdateQuery } from './query/UpdateQuery';
5
- import { Serializable } from './Serializable';
6
- import type { CaseStatement } from './sql-objects/CaseStatement';
7
- import { CountStatement } from './sql-objects/CountStatement';
8
- import type { FieldExpression } from './sql-objects/FieldExpression';
9
- import type { GroupColumn } from './sql-objects/GroupColumn';
10
- import type { JoinStatement } from './sql-objects/JoinStatement';
11
- import type { CompOperator } from './sql-objects/operators/CompOperator';
12
- import type { LogicalOperator } from './sql-objects/operators/LogicalOperator';
13
- import type { OrderColumn } from './sql-objects/OrderColumn';
14
- import type { ParamExpression } from './sql-objects/ParamExpression';
15
- import type { RawStatement } from './sql-objects/RawStatement';
16
- import type { ReturningColumn } from './sql-objects/ReturningColumn';
17
- import type { TableName } from './sql-objects/TableName';
1
+ import type { DeleteQuery } from './query/delete-query.js';
2
+ import type { InsertQuery } from './query/insert-query.js';
3
+ import type { SelectQuery } from './query/select-query.js';
4
+ import type { UpdateQuery } from './query/update-query.js';
5
+ import { Serializable } from './serializable.js';
6
+ import type { CaseStatement } from './sql-objects/case-statement.js';
7
+ import { CountStatement } from './sql-objects/count-statement.js';
8
+ import type { FieldExpression } from './sql-objects/field-expression.js';
9
+ import type { GroupColumn } from './sql-objects/group-column.js';
10
+ import type { JoinStatement } from './sql-objects/join-statement.js';
11
+ import type { CompOperator } from './sql-objects/operators/comp-operator.js';
12
+ import type { LogicalOperator } from './sql-objects/operators/logical-operator.js';
13
+ import type { OrderColumn } from './sql-objects/order-column.js';
14
+ import type { ParamExpression } from './sql-objects/param-expression.js';
15
+ import type { RawStatement } from './sql-objects/raw-statement.js';
16
+ import type { ReturningColumn } from './sql-objects/returning-column.js';
17
+ import type { TableName } from './sql-objects/table-name.js';
18
18
  export declare function isSerializable(value: any): value is Serializable;
19
19
  export declare function isQuery(value: any): value is Serializable;
20
20
  export declare function isRawStatement(value: any): value is RawStatement;
@@ -0,0 +1,57 @@
1
+ import { SerializationType } from './enums.js';
2
+ import { Query } from './query/query.js';
3
+ import { Serializable } from './serializable.js';
4
+ export function isSerializable(value) {
5
+ return value instanceof Serializable;
6
+ }
7
+ export function isQuery(value) {
8
+ return value instanceof Query;
9
+ }
10
+ export function isRawStatement(value) {
11
+ return isSerializable(value) && value._type === SerializationType.RAW;
12
+ }
13
+ export function isSelectQuery(value) {
14
+ return isSerializable(value) && value._type === SerializationType.SELECT_QUERY;
15
+ }
16
+ export function isInsertQuery(value) {
17
+ return isSerializable(value) && value._type === SerializationType.INSERT_QUERY;
18
+ }
19
+ export function isIUpdateQuery(value) {
20
+ return isSerializable(value) && value._type === SerializationType.UPDATE_QUERY;
21
+ }
22
+ export function isDeleteQuery(value) {
23
+ return isSerializable(value) && value._type === SerializationType.DELETE_QUERY;
24
+ }
25
+ export function isJoinStatement(value) {
26
+ return isSerializable(value) && value._type === SerializationType.JOIN;
27
+ }
28
+ export function isCaseStatement(value) {
29
+ return isSerializable(value) && value._type === SerializationType.CASE_STATEMENT;
30
+ }
31
+ export function isCountStatement(value) {
32
+ return isSerializable(value) && value._type === SerializationType.COUNT_STATEMENT;
33
+ }
34
+ export function isParamExpression(value) {
35
+ return isSerializable(value) && value._type === SerializationType.EXTERNAL_PARAMETER;
36
+ }
37
+ export function isLogicalOperator(value) {
38
+ return isSerializable(value) && value._type === SerializationType.LOGICAL_EXPRESSION;
39
+ }
40
+ export function isCompOperator(value) {
41
+ return isSerializable(value) && value._type === SerializationType.COMPARISON_EXPRESSION;
42
+ }
43
+ export function isSelectColumn(value) {
44
+ return isSerializable(value) && value._type === SerializationType.FIELD_NAME;
45
+ }
46
+ export function isOrderColumn(value) {
47
+ return isSerializable(value) && value._type === SerializationType.ORDER_COLUMN;
48
+ }
49
+ export function isGroupColumn(value) {
50
+ return isSerializable(value) && value._type === SerializationType.GROUP_COLUMN;
51
+ }
52
+ export function isReturningColumn(value) {
53
+ return isSerializable(value) && value._type === SerializationType.RETURNING_COLUMN;
54
+ }
55
+ export function isTableName(value) {
56
+ return isSerializable(value) && value._type === SerializationType.TABLE_NAME;
57
+ }
@@ -1,5 +1,5 @@
1
- import { DataType, SerializationType } from './enums';
2
- import type { SerializeContext } from './SerializeContext';
1
+ import { DataType, SerializationType } from './enums.js';
2
+ import type { SerializeContext } from './serialize-context.js';
3
3
  export declare type SerializeFunction = (ctx: SerializeContext, type: SerializationType | string, obj: any, defFn: DefaultSerializeFunction) => string | undefined;
4
4
  export declare type DefaultSerializeFunction = (ctx: SerializeContext, o: any) => string;
5
5
  export declare type IsReservedWordFunction = (ctx: SerializeContext, s: string) => boolean;
package/esm/types.js ADDED
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@sqb/builder",
3
3
  "description": "Extensible multi-dialect SQL query builder written with TypeScript",
4
- "version": "4.2.1",
4
+ "version": "4.5.1",
5
5
  "author": "Panates",
6
6
  "private": false,
7
7
  "contributors": [
8
- "Eray Hanoglu <e.hanoglu@panates.com>"
8
+ "Eray Hanoglu <e.hanoglu@panates.com>",
9
+ "Ilker Gurelli <i.gurelli@panates.com>"
9
10
  ],
10
11
  "license": "Apache-2.0",
11
12
  "repository": {
@@ -13,18 +14,21 @@
13
14
  "url": "https://github.com/sqbjs/sqb.git",
14
15
  "directory": "packages/builder"
15
16
  },
16
- "keywords": [
17
- "javascript",
18
- "typescript",
19
- "sqb",
20
- "rdbms",
21
- "sql",
22
- "query",
23
- "builder",
24
- "dialect",
25
- "multi-dialect",
26
- "database"
27
- ],
17
+ "scripts": {
18
+ "compile": "tsc",
19
+ "prebuild": "npm run lint && npm run clean",
20
+ "build": "npm run build:cjs && npm run build:esm",
21
+ "build:cjs": "tsc -b tsconfig-build-cjs.json",
22
+ "build:esm": "tsc -b tsconfig-build-esm.json",
23
+ "postbuild": "cp README.md package.json ../../LICENSE ../../build/builder && cp ../../package.cjs.json ../../build/builder/cjs/package.json",
24
+ "lint": "eslint .",
25
+ "test": "jest --runInBand",
26
+ "cover": "jest --collect-coverage",
27
+ "clean": "npm run clean:src | npm run clean:dist | npm run clean:cover",
28
+ "clean:src": "ts-cleanup -s src --all",
29
+ "clean:dist": "rimraf ../../build/builder",
30
+ "clean:cover": "rimraf ../../coverage/builder"
31
+ },
28
32
  "dependencies": {
29
33
  "debug": "^4.3.4",
30
34
  "putil-flattentext": "^2.1.0",
@@ -35,28 +39,39 @@
35
39
  "devDependencies": {
36
40
  "@types/debug": "^4.1.7"
37
41
  },
38
- "main": "dist/index.js",
39
- "types": "dist/index.d.ts",
40
- "engines": {
41
- "node": ">= 16.0"
42
+ "type": "module",
43
+ "main": "cjs/index.js",
44
+ "module": "esm/index.js",
45
+ "types": "esm/index.d.ts",
46
+ "exports": {
47
+ ".": {
48
+ "require": "./cjs/index.js",
49
+ "default": "./esm/index.js"
50
+ },
51
+ "./cjs": "./cjs/index.js",
52
+ "./esm": "./esm/index.js"
42
53
  },
43
- "directories": {
44
- "lib": "dist",
45
- "test": "test"
54
+ "engines": {
55
+ "node": ">=16.0",
56
+ "npm": ">=7.0.0"
46
57
  },
47
58
  "files": [
59
+ "bin/",
60
+ "cjs/",
61
+ "esm/",
48
62
  "LICENSE",
49
- "README.md",
50
- "dist/"
63
+ "README.md"
51
64
  ],
52
- "scripts": {
53
- "build": "tsc -b tsconfig-build.json",
54
- "prebuild": "npm run lint && npm run clean:dist",
55
- "postbuild": "copyfiles package.json README.md LICENSE ../../build/builder",
56
- "clean": "ts-cleanup -s src --all & ts-cleanup -s test",
57
- "clean:dist": "rimraf ../../build/builder",
58
- "compile": "tsc",
59
- "lint": "eslint src/** --no-error-on-unmatched-pattern",
60
- "test": "TS_NODE_PROJECT='./test/tsconfig.json' mocha -r ts-node/register -r tsconfig-paths/register --reporter spec test/**/*.spec.ts"
61
- }
65
+ "keywords": [
66
+ "javascript",
67
+ "typescript",
68
+ "sqb",
69
+ "rdbms",
70
+ "sql",
71
+ "query",
72
+ "builder",
73
+ "dialect",
74
+ "multi-dialect",
75
+ "database"
76
+ ]
62
77
  }
package/dist/classes.d.ts DELETED
@@ -1,38 +0,0 @@
1
- export * from './query/Query';
2
- export * from './query/ReturningQuery';
3
- export * from './query/SelectQuery';
4
- export * from './query/InsertQuery';
5
- export * from './query/UpdateQuery';
6
- export * from './query/DeleteQuery';
7
- export * from './sql-objects/FieldExpression';
8
- export * from './sql-objects/TableName';
9
- export * from './sql-objects/OrderColumn';
10
- export * from './sql-objects/GroupColumn';
11
- export * from './sql-objects/BaseField';
12
- export * from './sql-objects/Operator';
13
- export * from './sql-objects/CaseStatement';
14
- export * from './sql-objects/JoinStatement';
15
- export * from './sql-objects/RawStatement';
16
- export * from './sql-objects/CountStatement';
17
- export * from './sql-objects/operators/LogicalOperator';
18
- export * from './sql-objects/operators/OpAnd';
19
- export * from './sql-objects/operators/OpNotExists';
20
- export * from './sql-objects/operators/OpExists';
21
- export * from './sql-objects/operators/OpNotILike';
22
- export * from './sql-objects/operators/OpNotLike';
23
- export * from './sql-objects/operators/OpNotIn';
24
- export * from './sql-objects/operators/OpNotBetween';
25
- export * from './sql-objects/operators/OpNe';
26
- export * from './sql-objects/operators/OpILike';
27
- export * from './sql-objects/operators/OpLike';
28
- export * from './sql-objects/operators/OpIsNot';
29
- export * from './sql-objects/operators/OpIs';
30
- export * from './sql-objects/operators/OpIn';
31
- export * from './sql-objects/operators/OpBetween';
32
- export * from './sql-objects/operators/OpLte';
33
- export * from './sql-objects/operators/OpLt';
34
- export * from './sql-objects/operators/OpGte';
35
- export * from './sql-objects/operators/OpGt';
36
- export * from './sql-objects/operators/OpEq';
37
- export * from './sql-objects/operators/OpOr';
38
- export * from './sql-objects/operators/CompOperator';
package/dist/classes.js DELETED
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./query/Query"), exports);
5
- tslib_1.__exportStar(require("./query/ReturningQuery"), exports);
6
- tslib_1.__exportStar(require("./query/SelectQuery"), exports);
7
- tslib_1.__exportStar(require("./query/InsertQuery"), exports);
8
- tslib_1.__exportStar(require("./query/UpdateQuery"), exports);
9
- tslib_1.__exportStar(require("./query/DeleteQuery"), exports);
10
- tslib_1.__exportStar(require("./sql-objects/FieldExpression"), exports);
11
- tslib_1.__exportStar(require("./sql-objects/TableName"), exports);
12
- tslib_1.__exportStar(require("./sql-objects/OrderColumn"), exports);
13
- tslib_1.__exportStar(require("./sql-objects/GroupColumn"), exports);
14
- tslib_1.__exportStar(require("./sql-objects/BaseField"), exports);
15
- tslib_1.__exportStar(require("./sql-objects/Operator"), exports);
16
- tslib_1.__exportStar(require("./sql-objects/CaseStatement"), exports);
17
- tslib_1.__exportStar(require("./sql-objects/JoinStatement"), exports);
18
- tslib_1.__exportStar(require("./sql-objects/RawStatement"), exports);
19
- tslib_1.__exportStar(require("./sql-objects/CountStatement"), exports);
20
- tslib_1.__exportStar(require("./sql-objects/operators/LogicalOperator"), exports);
21
- tslib_1.__exportStar(require("./sql-objects/operators/OpAnd"), exports);
22
- tslib_1.__exportStar(require("./sql-objects/operators/OpNotExists"), exports);
23
- tslib_1.__exportStar(require("./sql-objects/operators/OpExists"), exports);
24
- tslib_1.__exportStar(require("./sql-objects/operators/OpNotILike"), exports);
25
- tslib_1.__exportStar(require("./sql-objects/operators/OpNotLike"), exports);
26
- tslib_1.__exportStar(require("./sql-objects/operators/OpNotIn"), exports);
27
- tslib_1.__exportStar(require("./sql-objects/operators/OpNotBetween"), exports);
28
- tslib_1.__exportStar(require("./sql-objects/operators/OpNe"), exports);
29
- tslib_1.__exportStar(require("./sql-objects/operators/OpILike"), exports);
30
- tslib_1.__exportStar(require("./sql-objects/operators/OpLike"), exports);
31
- tslib_1.__exportStar(require("./sql-objects/operators/OpIsNot"), exports);
32
- tslib_1.__exportStar(require("./sql-objects/operators/OpIs"), exports);
33
- tslib_1.__exportStar(require("./sql-objects/operators/OpIn"), exports);
34
- tslib_1.__exportStar(require("./sql-objects/operators/OpBetween"), exports);
35
- tslib_1.__exportStar(require("./sql-objects/operators/OpLte"), exports);
36
- tslib_1.__exportStar(require("./sql-objects/operators/OpLt"), exports);
37
- tslib_1.__exportStar(require("./sql-objects/operators/OpGte"), exports);
38
- tslib_1.__exportStar(require("./sql-objects/operators/OpGt"), exports);
39
- tslib_1.__exportStar(require("./sql-objects/operators/OpEq"), exports);
40
- tslib_1.__exportStar(require("./sql-objects/operators/OpOr"), exports);
41
- tslib_1.__exportStar(require("./sql-objects/operators/CompOperator"), exports);
package/dist/index.d.ts DELETED
@@ -1,20 +0,0 @@
1
- export { registerSerializer, unRegisterSerializer } from './extensions';
2
- export * from './helpers';
3
- export * from './Serializable';
4
- export * from './SerializeContext';
5
- export * from './query/Query';
6
- export * from './query/SelectQuery';
7
- export * from './query/InsertQuery';
8
- export * from './query/UpdateQuery';
9
- export * from './query/DeleteQuery';
10
- export * from './sql-objects/Operator';
11
- export * from './sql-objects/operators/LogicalOperator';
12
- export * from './sql-objects/operators/CompOperator';
13
- export * from './sql-objects/JoinStatement';
14
- export * from './types';
15
- export * from './enums';
16
- export * from './sqlobject.initializers';
17
- export * from './op.initializers';
18
- export * from './typeguards';
19
- export { op } from './op.initializers';
20
- export * as classes from './classes';