exodus-framework 2.1.1016 → 2.1.1018

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.
@@ -62,6 +62,7 @@ export type SimpleCondition = {
62
62
  like?: string;
63
63
  notLike?: string;
64
64
  type?: 'DATE' | 'STRING' | 'NUMBER';
65
+ caseInsensitive?: boolean;
65
66
  };
66
67
  export type LogicalCondition<E> = {
67
68
  or?: Array<Partial<Record<keyof E, SimpleCondition>>>;
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/contracts/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/contracts/http.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/utils/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAIzF,eAAO,MAAM,MAAM,WASjB,CAAC;AAqGH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,GACnF,YAAY,CAAC,CAAC,CAAC,CAwCjB;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,EAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,iBAalD"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/utils/database.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,SAAS,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGjE,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEzF,eAAO,MAAM,MAAM,WASjB,CAAC;AAqIH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,GACnF,YAAY,CAAC,CAAC,CAAC,CAqDjB;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,EAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,iBAalD"}
@@ -6,10 +6,10 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.InsertIndexes = InsertIndexes;
7
7
  exports.mainDb = void 0;
8
8
  exports.processFilters = processFilters;
9
+ var _dateFns = require("date-fns");
9
10
  var _sequelize = require("sequelize");
10
11
  var _core = _interopRequireDefault(require("../app/core"));
11
12
  var _error = require("../app/error");
12
- var _dateFns = require("date-fns");
13
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
14
  const mainDb = exports.mainDb = new _sequelize.Sequelize({
15
15
  database: _core.default.settings.getDatabase().main.database,
@@ -23,7 +23,7 @@ const mainDb = exports.mainDb = new _sequelize.Sequelize({
23
23
  timezone: '-03:00',
24
24
  logging: _core.default.settings.getDatabase().service.log
25
25
  });
26
- function processCondition(cond) {
26
+ function processCondition(cond, fieldName) {
27
27
  if ('or' in cond) {
28
28
  return {
29
29
  [_sequelize.Op.or]: cond.or.map(subCond => processCondition(subCond))
@@ -51,10 +51,32 @@ function processCondition(cond) {
51
51
  simpleWhere[_sequelize.Op.notBetween] = cond.type === 'DATE' ? cond.notBetween.map(d => new Date(d)) : cond.notBetween;
52
52
  }
53
53
  if (cond.like !== undefined) {
54
- simpleWhere[_sequelize.Op.like] = cond.type === 'DATE' ? new Date(cond.like) : cond.like;
54
+ const value = cond.type === 'DATE' ? new Date(cond.like) : cond.like;
55
+ if (cond.caseInsensitive && fieldName) {
56
+ const dialect = _core.default.settings.getDatabase().main.dialect;
57
+ if (dialect === 'postgres') {
58
+ simpleWhere[_sequelize.Op.iLike] = value;
59
+ } else {
60
+ // Para MariaDB/MySQL, usamos Sequelize.where com função LOWER
61
+ return _sequelize.Sequelize.where(_sequelize.Sequelize.fn('LOWER', _sequelize.Sequelize.col(fieldName)), _sequelize.Op.like, `${value}`.toLowerCase());
62
+ }
63
+ } else {
64
+ simpleWhere[_sequelize.Op.like] = value;
65
+ }
55
66
  }
56
67
  if (cond.notLike !== undefined) {
57
- simpleWhere[_sequelize.Op.notLike] = cond.type === 'DATE' ? new Date(cond.notLike) : cond.notLike;
68
+ const value = cond.type === 'DATE' ? new Date(cond.notLike) : cond.notLike;
69
+ if (cond.caseInsensitive && fieldName) {
70
+ const dialect = _core.default.settings.getDatabase().main.dialect;
71
+ if (dialect === 'postgres') {
72
+ simpleWhere[_sequelize.Op.notILike] = value;
73
+ } else {
74
+ // Para MariaDB/MySQL, usamos Sequelize.where com função LOWER
75
+ return _sequelize.Sequelize.where(_sequelize.Sequelize.fn('LOWER', _sequelize.Sequelize.col(fieldName)), _sequelize.Op.notLike, `${value}`.toLowerCase());
76
+ }
77
+ } else {
78
+ simpleWhere[_sequelize.Op.notLike] = value;
79
+ }
58
80
  }
59
81
  if (cond.in !== undefined) {
60
82
  simpleWhere[_sequelize.Op.in] = cond.type === 'DATE' ? cond.in.map(d => new Date(d)) : cond.in;
@@ -129,7 +151,7 @@ function processFilters(filters) {
129
151
  for (const c of condition) {
130
152
  const [[key, value]] = Object.entries(c);
131
153
  t.push({
132
- [key]: processCondition(value)
154
+ [key]: processCondition(value, key)
133
155
  });
134
156
  }
135
157
  if (!where[logicalOp]) {
@@ -146,14 +168,23 @@ function processFilters(filters) {
146
168
  const [k, c] = processDateCondition(key, condition);
147
169
  where[k] = c;
148
170
  } else {
149
- const processedCondition = processCondition(condition);
150
- if (where[field]) {
151
- where[field] = {
152
- ...where[field],
153
- ...processedCondition
154
- };
171
+ const processedCondition = processCondition(condition, key);
172
+
173
+ // Se retornar um Sequelize.where (case insensitive para MariaDB), precisamos tratar diferente
174
+ if (processedCondition && typeof processedCondition === 'object' && processedCondition.comparator) {
175
+ // É um Sequelize.where
176
+ where[_sequelize.Op.and] = where[_sequelize.Op.and] || [];
177
+ where[_sequelize.Op.and].push(processedCondition);
155
178
  } else {
156
- where[field] = processedCondition;
179
+ // Condição normal
180
+ if (where[field]) {
181
+ where[field] = {
182
+ ...where[field],
183
+ ...processedCondition
184
+ };
185
+ } else {
186
+ where[field] = processedCondition;
187
+ }
157
188
  }
158
189
  }
159
190
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exodus-framework",
3
- "version": "2.1.1016",
3
+ "version": "2.1.1018",
4
4
  "description": "Exodus Framework",
5
5
  "author": "jhownpaixao",
6
6
  "license": "ISC",