tspace-mysql 1.9.1 → 1.9.2

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 (84) hide show
  1. package/README.md +246 -23
  2. package/dist/lib/core/Abstracts/AbstractBuilder.d.ts +16 -16
  3. package/dist/lib/core/Abstracts/AbstractBuilder.js.map +1 -1
  4. package/dist/lib/core/Abstracts/AbstractDB.d.ts +1 -1
  5. package/dist/lib/core/Abstracts/AbstractModel.d.ts +7 -2
  6. package/dist/lib/core/Abstracts/AbstractModel.js.map +1 -1
  7. package/dist/lib/core/Blueprint.d.ts +14 -14
  8. package/dist/lib/core/Blueprint.js +2 -4
  9. package/dist/lib/core/Blueprint.js.map +1 -1
  10. package/dist/lib/core/Builder.d.ts +52 -34
  11. package/dist/lib/core/Builder.js +76 -44
  12. package/dist/lib/core/Builder.js.map +1 -1
  13. package/dist/lib/core/Cache/index.js +32 -13
  14. package/dist/lib/core/Cache/index.js.map +1 -1
  15. package/dist/lib/core/Contracts/Audit.d.ts +4 -4
  16. package/dist/lib/core/Contracts/Audit.js.map +1 -1
  17. package/dist/lib/core/Contracts/Logger.d.ts +3 -3
  18. package/dist/lib/core/Contracts/Logger.js.map +1 -1
  19. package/dist/lib/core/DB.d.ts +2 -2
  20. package/dist/lib/core/DB.js +6 -19
  21. package/dist/lib/core/DB.js.map +1 -1
  22. package/dist/lib/core/Driver/index.d.ts +7 -5
  23. package/dist/lib/core/Driver/index.js +4 -2
  24. package/dist/lib/core/Driver/index.js.map +1 -1
  25. package/dist/lib/core/Driver/mariadb/MariadbDriver.js +14 -6
  26. package/dist/lib/core/Driver/mariadb/MariadbDriver.js.map +1 -1
  27. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.d.ts +3 -3
  28. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js +24 -7
  29. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js.map +1 -1
  30. package/dist/lib/core/Driver/mongodb/MongodbDriver.js +18 -12
  31. package/dist/lib/core/Driver/mongodb/MongodbDriver.js.map +1 -1
  32. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.d.ts +3 -3
  33. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js +9 -1
  34. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js.map +1 -1
  35. package/dist/lib/core/Driver/mysql/MysqlDriver.js +15 -7
  36. package/dist/lib/core/Driver/mysql/MysqlDriver.js.map +1 -1
  37. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.d.ts +3 -3
  38. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js +24 -7
  39. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js.map +1 -1
  40. package/dist/lib/core/Driver/postgres/PostgresDriver.js +14 -6
  41. package/dist/lib/core/Driver/postgres/PostgresDriver.js.map +1 -1
  42. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.d.ts +3 -3
  43. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js +22 -7
  44. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js.map +1 -1
  45. package/dist/lib/core/Driver/sqlite/SqliteDriver.d.ts +1 -0
  46. package/dist/lib/core/Driver/sqlite/SqliteDriver.js +25 -4
  47. package/dist/lib/core/Driver/sqlite/SqliteDriver.js.map +1 -1
  48. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.d.ts +2 -0
  49. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js +27 -21
  50. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js.map +1 -1
  51. package/dist/lib/core/Join.d.ts +63 -5
  52. package/dist/lib/core/Join.js +92 -15
  53. package/dist/lib/core/Join.js.map +1 -1
  54. package/dist/lib/core/JoinModel.d.ts +65 -9
  55. package/dist/lib/core/JoinModel.js +79 -50
  56. package/dist/lib/core/JoinModel.js.map +1 -1
  57. package/dist/lib/core/Meta.d.ts +7 -7
  58. package/dist/lib/core/Meta.js +10 -9
  59. package/dist/lib/core/Meta.js.map +1 -1
  60. package/dist/lib/core/Model.d.ts +225 -57
  61. package/dist/lib/core/Model.js +375 -89
  62. package/dist/lib/core/Model.js.map +1 -1
  63. package/dist/lib/core/Queue.d.ts +16 -7
  64. package/dist/lib/core/Queue.js +69 -29
  65. package/dist/lib/core/Queue.js.map +1 -1
  66. package/dist/lib/core/RelationManager.d.ts +4 -4
  67. package/dist/lib/core/RelationManager.js +141 -16
  68. package/dist/lib/core/RelationManager.js.map +1 -1
  69. package/dist/lib/core/Repository.d.ts +1 -1
  70. package/dist/lib/core/Repository.js +5 -1
  71. package/dist/lib/core/Repository.js.map +1 -1
  72. package/dist/lib/core/Schema.d.ts +13 -13
  73. package/dist/lib/core/Schema.js +12 -0
  74. package/dist/lib/core/Schema.js.map +1 -1
  75. package/dist/lib/core/StateManager.d.ts +6 -0
  76. package/dist/lib/core/StateManager.js +1 -0
  77. package/dist/lib/core/StateManager.js.map +1 -1
  78. package/dist/lib/core/UtilityTypes.d.ts +69 -74
  79. package/dist/lib/core/UtilityTypes.js.map +1 -1
  80. package/dist/lib/types/index.d.ts +52 -9
  81. package/dist/lib/utils/index.d.ts +2 -1
  82. package/dist/lib/utils/index.js +26 -3
  83. package/dist/lib/utils/index.js.map +1 -1
  84. package/package.json +1 -1
@@ -1,42 +1,104 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Join = void 0;
4
+ const utils_1 = require("../utils");
4
5
  class Join {
5
- self;
6
+ builder;
6
7
  type;
7
8
  join = [];
8
- constructor(self, type = 'INNER_JOIN') {
9
- this.self = self;
9
+ constructor(builder, type = 'INNER_JOIN') {
10
+ this.builder = builder;
10
11
  this.type = type;
11
12
  }
13
+ /**
14
+ * The 'on' method is used to Adds an ON condition to the current JOIN clause.
15
+ *
16
+ * Creates a join condition by comparing two column references.
17
+ * Both parameters must be fully qualified column names in the
18
+ * format `table.column`.
19
+ *
20
+ * @param localKey - The local column reference (e.g. `users.id`).
21
+ * @param referenceKey - The referenced column reference (e.g. `posts.user_id`).
22
+ *
23
+ * @returns The current join builder instance for method chaining.
24
+ *
25
+ * @example
26
+ * new User()
27
+ * .join((join) => join.on('users.id', 'posts.user_id'));
28
+ *
29
+ */
12
30
  on(localKey, referenceKey) {
13
- const table = referenceKey?.split('.')?.shift();
31
+ const table = referenceKey.split('.')?.shift();
14
32
  const join = [
15
- `${this.self['$constants'](this.type)}`,
16
- `\`${table}\` ${this.self['$constants']('ON')}`,
17
- `${this.self.bindColumn(localKey)} = ${this.self.bindColumn(String(referenceKey))}`
33
+ `${this.builder['$constants'](this.type)}`,
34
+ `\`${table}\` ${this.builder['$constants']('ON')}`,
35
+ `${this.builder.bindColumn(localKey)} = ${this.builder.bindColumn(String(referenceKey))}`
18
36
  ].join(' ');
19
37
  this.join.push(join);
20
38
  return this;
21
39
  }
22
- and(localKey, referenceKey) {
40
+ and(localKey, operator, referenceKey) {
23
41
  if (!this.join.length) {
24
- return this.on(localKey, referenceKey);
42
+ throw new Error("Call .on() before using this");
43
+ }
44
+ [referenceKey, operator] = utils_1.utils.valueAndOperator(referenceKey, operator, arguments.length === 2);
45
+ if (typeof referenceKey === 'string' && /\./.test(referenceKey)) {
46
+ const join = [
47
+ this.builder['$constants']('AND'),
48
+ this.builder.bindColumn(localKey),
49
+ operator,
50
+ this.builder.bindColumn(String(referenceKey))
51
+ ].join(' ');
52
+ this.join.push(join);
53
+ return this;
54
+ }
55
+ const format = this.formatValue(referenceKey, operator);
56
+ if (format.isRaw) {
57
+ const join = [
58
+ this.builder['$constants']('AND'),
59
+ this.builder.bindColumn(localKey),
60
+ format.value
61
+ ].join(' ');
62
+ this.join.push(join);
63
+ return this;
25
64
  }
26
65
  const join = [
27
- `${this.self['$constants']('AND')}`,
28
- `${this.self.bindColumn(localKey)} = ${this.self.bindColumn(String(referenceKey))}`
66
+ this.builder['$constants']('AND'),
67
+ this.builder.bindColumn(localKey),
68
+ format.operator,
69
+ format.value
29
70
  ].join(' ');
30
71
  this.join.push(join);
31
72
  return this;
32
73
  }
33
- or(localKey, referenceKey) {
74
+ or(localKey, operator, referenceKey) {
34
75
  if (!this.join.length) {
35
- return this.on(localKey, referenceKey);
76
+ throw new Error("Call .on() before using this");
77
+ }
78
+ [referenceKey, operator] = utils_1.utils.valueAndOperator(referenceKey, operator, arguments.length === 2);
79
+ if (typeof referenceKey === 'string' && /\./.test(referenceKey)) {
80
+ const join = [
81
+ `${this.builder['$constants']('OR')}`,
82
+ `${this.builder.bindColumn(localKey)} ${operator} ${this.builder.bindColumn(String(referenceKey))}`
83
+ ].join(' ');
84
+ this.join.push(join);
85
+ return this;
86
+ }
87
+ const format = this.formatValue(referenceKey, operator);
88
+ if (format.isRaw) {
89
+ const join = [
90
+ this.builder['$constants']('OR'),
91
+ this.builder.bindColumn(localKey),
92
+ format.value
93
+ ].join(' ');
94
+ this.join.push(join);
95
+ return this;
36
96
  }
37
97
  const join = [
38
- `${this.self['$constants']('OR')}`,
39
- `${this.self.bindColumn(localKey)} = ${this.self.bindColumn(String(referenceKey))}`
98
+ this.builder['$constants']('OR'),
99
+ this.builder.bindColumn(localKey),
100
+ format.operator,
101
+ format.value
40
102
  ].join(' ');
41
103
  this.join.push(join);
42
104
  return this;
@@ -44,6 +106,21 @@ class Join {
44
106
  toString() {
45
107
  return this.join.join(' ');
46
108
  }
109
+ formatValue(value, operator) {
110
+ let formated = utils_1.utils.formatQueryValue(value);
111
+ if (utils_1.utils.checkValueHasRaw(value)) {
112
+ return { isRaw: true, value: formated, operator: null };
113
+ }
114
+ if (value == null) {
115
+ formated = '';
116
+ operator = `${this.builder['$constants']('IS_NULL')}`;
117
+ }
118
+ if (Array.isArray(value)) {
119
+ formated = `(${value.map((v) => utils_1.utils.formatQueryValue(v)).join(', ')})`;
120
+ operator = `${this.builder['$constants']('IN')}`;
121
+ }
122
+ return { isRaw: false, value: formated, operator };
123
+ }
47
124
  }
48
125
  exports.Join = Join;
49
126
  exports.default = Join;
@@ -1 +1 @@
1
- {"version":3,"file":"Join.js","sourceRoot":"","sources":["../../../src/lib/core/Join.ts"],"names":[],"mappings":";;;AACA,MAAM,IAAI;IAIQ;IACA;IAJN,IAAI,GAAc,EAAE,CAAA;IAE5B,YACc,IAAc,EACd,OAAkE,YAAY;QAD9E,SAAI,GAAJ,IAAI,CAAU;QACd,SAAI,GAAJ,IAAI,CAA0E;IACzF,CAAC;IAEJ,EAAE,CAAE,QAA+B,EAAE,YAAqC;QAEtE,MAAM,KAAK,GAAG,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAA;QAE/C,MAAM,IAAI,GAAG;YACT,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACvC,KAAK,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE;YAC/C,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE;SACtF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEpB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,GAAG,CAAE,QAA+B,EAAE,YAAqC;QAEvE,IAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAEnB,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC1C,CAAC;QAED,MAAM,IAAI,GAAG;YACT,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,EAAE;YACnC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE;SACtF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEpB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,EAAE,CAAE,QAA+B,EAAE,YAAqC;QAEtE,IAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAEnB,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC1C,CAAC;QAED,MAAM,IAAI,GAAG;YACT,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE;YAClC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE;SACtF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEpB,OAAO,IAAI,CAAA;IACf,CAAC;IAES,QAAQ;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;CACJ;AAEQ,oBAAI;AACb,kBAAe,IAAI,CAAA"}
1
+ {"version":3,"file":"Join.js","sourceRoot":"","sources":["../../../src/lib/core/Join.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,75 @@
1
1
  import { Model } from "./Model";
2
2
  import type { TModelOrObject } from "../types";
3
3
  declare class JoinModel {
4
- protected model: Model;
4
+ protected model: Model<any, any, any>;
5
5
  protected type: 'INNER_JOIN' | 'LEFT_JOIN' | 'RIGHT_JOIN' | 'CROSS_JOIN';
6
6
  private join;
7
- constructor(model: Model, type?: 'INNER_JOIN' | 'LEFT_JOIN' | 'RIGHT_JOIN' | 'CROSS_JOIN');
7
+ constructor(model: Model<any, any, any>, type?: 'INNER_JOIN' | 'LEFT_JOIN' | 'RIGHT_JOIN' | 'CROSS_JOIN');
8
+ /**
9
+ * The 'on' method is used to Adds an ON condition to the current JOIN clause.
10
+ *
11
+ * Creates a join condition by comparing two column references.
12
+ * Both parameters must be fully qualified column names in the
13
+ * format `table.column`.
14
+ *
15
+ * @param {TModelOrObject | `${string}.${string}`} m1 The model (e.g User)
16
+ * @param {TModelOrObject | `${string}.${string}`} m2 The model reference (e.g. Post).
17
+ *
18
+ * @returns The current join model instance for method chaining.
19
+ *
20
+ * @example
21
+ * new User()
22
+ * .joinModel((join) => join.on(User, Post));
23
+ *
24
+ */
25
+ on(m1: `${string}.${string}`, m2: `${string}.${string}`): this;
8
26
  on(m1: TModelOrObject, m2: TModelOrObject): this;
9
- and(m1: TModelOrObject, m2: TModelOrObject): this;
10
- or(m1: TModelOrObject, m2: TModelOrObject): this;
11
- onRaw(localKey: `${string}.${string}`, referenceKey?: `${string}.${string}`): this;
12
- andRaw(localKey: `${string}.${string}`, referenceKey?: `${string}.${string}`): this;
13
- orRaw(localKey: `${string}.${string}`, referenceKey?: `${string}.${string}`): this;
27
+ /**
28
+ * The 'and' method is used to Adds an additional condition to the current JOIN ON clause using AND.
29
+ *
30
+ * This method must be called after `.on()`.
31
+ *
32
+ * @param localKey - The left-side column reference.
33
+ * @param referenceKey - The right-side column reference.
34
+ *
35
+ * @returns The current join model instance.
36
+ *
37
+ * @example
38
+ * new User()
39
+ * .joinModel((join) =>
40
+ * join
41
+ * .on(User, Post)
42
+ * .and(Post.columnRef('type'), 'article')
43
+ * .and(Post.columnRef('published'), true)
44
+ * );
45
+ */
46
+ and(localKey: `${string}.${string}`, referenceKey: `${string}.${string}` | string | number | boolean | null | (string | number | boolean | null)[]): this;
47
+ and(localKey: `${string}.${string}`, operator: "=" | "<" | ">" | "!=" | "<>" | "<=" | ">=" | "LIKE" | "like", referenceKey?: `${string}.${string}` | string | number | boolean | null | (string | number | boolean | null)[]): this;
48
+ /**
49
+ * The 'or' method is used to Adds an additional condition to the current JOIN ON clause using OR.
50
+ *
51
+ * This method must be called after `.on()`.
52
+ *
53
+ * @param localKey - The left-side column reference.
54
+ * @param referenceKey - The right-side column reference.
55
+ *
56
+ * @returns The current join model instance.
57
+ *
58
+ * @example
59
+ * new User()
60
+ * .joinModel((join) =>
61
+ * join
62
+ * .on(User, Post)
63
+ * .or('posts.type', 'article')
64
+ * .or('posts.published', true)
65
+ * );
66
+ */
67
+ or(localKey: `${string}.${string}`, referenceKey: `${string}.${string}` | string | number | boolean | null | (string | number | boolean | null)[]): this;
68
+ or(localKey: `${string}.${string}`, operator: "=" | "<" | ">" | "!=" | "<>" | "<=" | ">=" | "LIKE" | "like", referenceKey?: `${string}.${string}` | string | number | boolean | null | (string | number | boolean | null)[]): this;
14
69
  protected toString(): string;
15
- private _handleJoinModel;
16
- private _handleCombindJoin;
70
+ private handleJoinModel;
71
+ private onRaw;
72
+ private formatValue;
17
73
  }
18
74
  export { JoinModel };
19
75
  export default JoinModel;
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.JoinModel = void 0;
7
7
  const pluralize_1 = __importDefault(require("pluralize"));
8
8
  const Model_1 = require("./Model");
9
+ const utils_1 = require("../utils");
9
10
  class JoinModel {
10
11
  model;
11
12
  type;
@@ -15,7 +16,10 @@ class JoinModel {
15
16
  this.type = type;
16
17
  }
17
18
  on(m1, m2) {
18
- const { alias1, alias2, table1, table2, model1, model2, localKey, foreignKey } = this._handleJoinModel(m1, m2);
19
+ if (typeof m1 === 'string' && typeof m2 === 'string') {
20
+ return this.onRaw(m1, m2);
21
+ }
22
+ const { alias1, alias2, table1, table2, model1, model2, localKey, foreignKey } = this.handleJoinModel(m1, m2);
19
23
  const copy = new Model_1.Model()
20
24
  .copyModel(this.model);
21
25
  const joinMethod = {
@@ -50,52 +54,66 @@ class JoinModel {
50
54
  this.join.push(...copy['$state'].get('JOIN'));
51
55
  return this;
52
56
  }
53
- and(m1, m2) {
57
+ and(localKey, operator, referenceKey) {
54
58
  if (!this.join.length) {
55
- return this.on(m1, m2);
59
+ throw new Error("Call .on() before using this");
56
60
  }
57
- const { alias1, alias2, table1, table2, localKey, foreignKey } = this._handleJoinModel(m1, m2);
58
- const join = this._handleCombindJoin(`${alias1 === '' ? table1 : `${table1}|${alias1}`}.${localKey}`, `${alias2 === '' ? table2 : `${table2}|${alias2}`}.${foreignKey}`);
59
- this.join.push(join);
60
- return this;
61
- }
62
- or(m1, m2) {
63
- if (!this.join.length) {
64
- return this.on(m1, m2);
61
+ [referenceKey, operator] = utils_1.utils.valueAndOperator(referenceKey, operator, arguments.length === 2);
62
+ if (typeof referenceKey === 'string' && /\./.test(referenceKey)) {
63
+ const join = [
64
+ `${this.model['$constants']('AND')}`,
65
+ `${this.model.bindColumn(localKey)} ${operator} ${this.model.bindColumn(String(referenceKey))}`
66
+ ].join(' ');
67
+ this.join.push(join);
68
+ return this;
65
69
  }
66
- const { alias1, alias2, table1, table2, model1, model2, localKey, foreignKey } = this._handleJoinModel(m1, m2);
67
- const join = this._handleCombindJoin(`${alias1 === '' ? table1 : `${table1}|${alias1}`}.${localKey}`, `${alias2 === '' ? table2 : `${table2}|${alias2}`}.${foreignKey}`, { operator: 'OR' });
68
- this.join.push(join);
69
- return this;
70
- }
71
- onRaw(localKey, referenceKey) {
72
- const table = referenceKey?.split('.')?.shift();
73
- const join = [
74
- `${this.model['$constants'](this.type)}`,
75
- `\`${table}\` ${this.model['$constants']('ON')}`,
76
- `${this.model.bindColumn(localKey)} = ${this.model.bindColumn(String(referenceKey))}`
77
- ].join(' ');
78
- this.join.push(join);
79
- return this;
80
- }
81
- andRaw(localKey, referenceKey) {
82
- if (!this.join.length) {
83
- return this.onRaw(localKey, referenceKey);
70
+ const format = this.formatValue(referenceKey, operator);
71
+ if (format.isRaw) {
72
+ const join = [
73
+ this.model['$constants']('AND'),
74
+ this.model.bindColumn(localKey),
75
+ format.value
76
+ ].join(' ');
77
+ this.join.push(join);
78
+ return this;
84
79
  }
85
80
  const join = [
86
- `${this.model['$constants']('AND')}`,
87
- `${this.model.bindColumn(localKey)} = ${this.model.bindColumn(String(referenceKey))}`
81
+ this.model['$constants']('AND'),
82
+ this.model.bindColumn(localKey),
83
+ format.operator,
84
+ format.value
88
85
  ].join(' ');
89
86
  this.join.push(join);
90
87
  return this;
91
88
  }
92
- orRaw(localKey, referenceKey) {
89
+ or(localKey, operator, referenceKey) {
93
90
  if (!this.join.length) {
94
- return this.onRaw(localKey, referenceKey);
91
+ throw new Error("Call .on() before using this");
92
+ }
93
+ [referenceKey, operator] = utils_1.utils.valueAndOperator(referenceKey, operator, arguments.length === 2);
94
+ if (typeof referenceKey === 'string' && /\./.test(referenceKey)) {
95
+ const join = [
96
+ `${this.model['$constants']('OR')}`,
97
+ `${this.model.bindColumn(localKey)} ${operator} ${this.model.bindColumn(String(referenceKey))}`
98
+ ].join(' ');
99
+ this.join.push(join);
100
+ return this;
101
+ }
102
+ const format = this.formatValue(referenceKey, operator);
103
+ if (format.isRaw) {
104
+ const join = [
105
+ this.model['$constants']('OR'),
106
+ this.model.bindColumn(localKey),
107
+ format.value
108
+ ].join(' ');
109
+ this.join.push(join);
110
+ return this;
95
111
  }
96
112
  const join = [
97
- `${this.model['$constants']('OR')}`,
98
- `${this.model.bindColumn(localKey)} = ${this.model.bindColumn(String(referenceKey))}`
113
+ this.model['$constants']('OR'),
114
+ this.model.bindColumn(localKey),
115
+ format.operator,
116
+ format.value
99
117
  ].join(' ');
100
118
  this.join.push(join);
101
119
  return this;
@@ -103,7 +121,10 @@ class JoinModel {
103
121
  toString() {
104
122
  return this.join.join(' ');
105
123
  }
106
- _handleJoinModel(m1, m2) {
124
+ handleJoinModel(m1, m2) {
125
+ if (typeof m1 === 'string' || typeof m2 === 'string') {
126
+ throw new Error('Please Check your callback');
127
+ }
107
128
  let model1 = typeof m1 === 'object' ? new m1.model() : new m1();
108
129
  let model2 = typeof m2 === 'object' ? new m2.model() : new m2();
109
130
  let localKey = typeof m1 === 'object' ? m1.key != null && m1.key !== '' ? String(m1.key) : '' : '';
@@ -138,22 +159,30 @@ class JoinModel {
138
159
  foreignKey
139
160
  };
140
161
  }
141
- _handleCombindJoin(localKey, referenceKey, { operator = 'AND' } = {}) {
142
- let table = referenceKey?.split('.')?.shift();
143
- const aliasRef = /\|/.test(String(table));
144
- if (aliasRef) {
145
- const tableRef = table?.split('|')?.shift();
146
- table = `\`${tableRef}\` ${this.model['$constants']('AS')} \`${table?.split('|')?.pop()}\``;
147
- referenceKey = String(referenceKey?.split('|')?.pop() ?? referenceKey);
148
- }
149
- const alias = /\|/.test(String(localKey));
150
- if (alias) {
151
- localKey = String(localKey?.split('|')?.pop() ?? localKey);
152
- }
153
- return [
154
- `${this.model['$constants'](operator)}`,
162
+ onRaw(localKey, referenceKey) {
163
+ const table = referenceKey.split('.')?.shift();
164
+ const join = [
165
+ `${this.model['$constants'](this.type)}`,
166
+ `\`${table}\` ${this.model['$constants']('ON')}`,
155
167
  `${this.model.bindColumn(localKey)} = ${this.model.bindColumn(String(referenceKey))}`
156
168
  ].join(' ');
169
+ this.join.push(join);
170
+ return this;
171
+ }
172
+ formatValue(value, operator) {
173
+ let formated = utils_1.utils.formatQueryValue(value);
174
+ if (utils_1.utils.checkValueHasRaw(value)) {
175
+ return { isRaw: true, value: formated, operator: null };
176
+ }
177
+ if (value == null) {
178
+ formated = '';
179
+ operator = `${this.model['$constants']('IS_NULL')}`;
180
+ }
181
+ if (Array.isArray(value)) {
182
+ formated = `(${value.map((v) => utils_1.utils.formatQueryValue(v)).join(', ')})`;
183
+ operator = `${this.model['$constants']('IN')}`;
184
+ }
185
+ return { isRaw: false, value: formated, operator };
157
186
  }
158
187
  }
159
188
  exports.JoinModel = JoinModel;
@@ -1 +1 @@
1
- {"version":3,"file":"JoinModel.js","sourceRoot":"","sources":["../../../src/lib/core/JoinModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JoinModel.js","sourceRoot":"","sources":["../../../src/lib/core/JoinModel.ts"],"names":[],"mappings":"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"}
@@ -22,24 +22,24 @@ declare class ModelMeta<M extends Model> {
22
22
  * Build a fully qualified column reference with an optional alias.
23
23
  *
24
24
  * @param {T.ColumnKeys<M>} column - The column key.
25
- * @param {{ alias?: string | null }} [options] - Optional alias for the table.
25
+ * @param {{ alias?: string | null }} [opts] - Optional alias for the table.
26
26
  * @returns {`${string}.${T.ColumnKeys<M>}`} The column reference.
27
27
  */
28
- columnReference(column: T.ColumnKeys<M>, { alias, raw }?: {
28
+ columnReference<K extends T.ColumnKeys<M> = T.ColumnKeys<M>>(column: K, opts?: {
29
29
  alias?: string | null;
30
30
  raw?: boolean | null;
31
- }): `${string}.${T.ColumnKeys<M>}`;
31
+ }): `${string}.${K}`;
32
32
  /**
33
33
  * Alias for {@link columnReference}.
34
34
  *
35
35
  * @param {T.ColumnKeys<M>} column - The column key.
36
- * @param {{ alias?: string | null }} [options] - Optional alias for the table.
37
- * @returns {`${string}.${T.ColumnKeys<M>}`} The column reference.
36
+ * @param {{ alias?: string | null }} [opts] - Optional alias for the table.
37
+ * @returns {`${string}.${K}`} The column reference.
38
38
  */
39
- columnRef(column: T.ColumnKeys<M>, { alias, raw }?: {
39
+ columnRef<K extends T.ColumnKeys<M> = T.ColumnKeys<M>>(column: K, opts?: {
40
40
  alias?: string | null;
41
41
  raw?: boolean | null;
42
- }): `${string}.${T.ColumnKeys<M>}`;
42
+ }): `${string}.${K}`;
43
43
  /**
44
44
  * Get all column keys defined in the model schema.
45
45
  *
@@ -27,15 +27,15 @@ class ModelMeta {
27
27
  * Build a fully qualified column reference with an optional alias.
28
28
  *
29
29
  * @param {T.ColumnKeys<M>} column - The column key.
30
- * @param {{ alias?: string | null }} [options] - Optional alias for the table.
30
+ * @param {{ alias?: string | null }} [opts] - Optional alias for the table.
31
31
  * @returns {`${string}.${T.ColumnKeys<M>}`} The column reference.
32
32
  */
33
- columnReference(column, { alias = null, raw = null } = {}) {
33
+ columnReference(column, opts = {}) {
34
34
  let base = `\`${this.table()}\`.\`${String(column)}\``;
35
- if (alias) {
36
- base = `\`${alias}\`.\`${String(column)}\``;
35
+ if (opts.alias) {
36
+ base = `\`${opts.alias}\`.\`${String(column)}\``;
37
37
  }
38
- if (raw) {
38
+ if (opts.raw) {
39
39
  base = base.replace(/`/g, '');
40
40
  }
41
41
  return base;
@@ -44,11 +44,11 @@ class ModelMeta {
44
44
  * Alias for {@link columnReference}.
45
45
  *
46
46
  * @param {T.ColumnKeys<M>} column - The column key.
47
- * @param {{ alias?: string | null }} [options] - Optional alias for the table.
48
- * @returns {`${string}.${T.ColumnKeys<M>}`} The column reference.
47
+ * @param {{ alias?: string | null }} [opts] - Optional alias for the table.
48
+ * @returns {`${string}.${K}`} The column reference.
49
49
  */
50
- columnRef(column, { alias = null, raw = null } = {}) {
51
- return this.columnReference(column, { alias, raw });
50
+ columnRef(column, opts = {}) {
51
+ return this.columnReference(column, opts);
52
52
  }
53
53
  /**
54
54
  * Get all column keys defined in the model schema.
@@ -223,6 +223,7 @@ class ModelMeta {
223
223
  if (!entry)
224
224
  return [];
225
225
  const blueprint = entry[1];
226
+ //@ts-ignore
226
227
  return blueprint['_enum'];
227
228
  }
228
229
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Meta.js","sourceRoot":"","sources":["../../../src/lib/core/Meta.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Meta.js","sourceRoot":"","sources":["../../../src/lib/core/Meta.ts"],"names":[],"mappings":"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"}