qast 1.2.0 → 2.0.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 (83) hide show
  1. package/README.md +260 -5
  2. package/README.zh-CN.md +520 -0
  3. package/dist/adapters/drizzle.d.ts +66 -0
  4. package/dist/adapters/drizzle.d.ts.map +1 -0
  5. package/dist/adapters/drizzle.js +222 -0
  6. package/dist/adapters/drizzle.js.map +1 -0
  7. package/dist/adapters/knex.d.ts +22 -0
  8. package/dist/adapters/knex.d.ts.map +1 -0
  9. package/dist/adapters/knex.js +158 -0
  10. package/dist/adapters/knex.js.map +1 -0
  11. package/dist/adapters/mongoose.d.ts +15 -0
  12. package/dist/adapters/mongoose.d.ts.map +1 -0
  13. package/dist/adapters/mongoose.js +152 -0
  14. package/dist/adapters/mongoose.js.map +1 -0
  15. package/dist/adapters/prisma.d.ts +5 -2
  16. package/dist/adapters/prisma.d.ts.map +1 -1
  17. package/dist/adapters/prisma.js +103 -4
  18. package/dist/adapters/prisma.js.map +1 -1
  19. package/dist/adapters/sequelize.d.ts +26 -8
  20. package/dist/adapters/sequelize.d.ts.map +1 -1
  21. package/dist/adapters/sequelize.js +168 -7
  22. package/dist/adapters/sequelize.js.map +1 -1
  23. package/dist/adapters/typeorm.d.ts +32 -2
  24. package/dist/adapters/typeorm.d.ts.map +1 -1
  25. package/dist/adapters/typeorm.js +169 -3
  26. package/dist/adapters/typeorm.js.map +1 -1
  27. package/dist/builder/query-builder.d.ts +139 -0
  28. package/dist/builder/query-builder.d.ts.map +1 -0
  29. package/dist/builder/query-builder.js +320 -0
  30. package/dist/builder/query-builder.js.map +1 -0
  31. package/dist/errors.d.ts +18 -3
  32. package/dist/errors.d.ts.map +1 -1
  33. package/dist/errors.js +127 -9
  34. package/dist/errors.js.map +1 -1
  35. package/dist/index.d.ts +83 -8
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +108 -8
  38. package/dist/index.js.map +1 -1
  39. package/dist/integrations/express.d.ts +14 -0
  40. package/dist/integrations/express.d.ts.map +1 -0
  41. package/dist/integrations/express.js +33 -0
  42. package/dist/integrations/express.js.map +1 -0
  43. package/dist/integrations/fastify.d.ts +17 -0
  44. package/dist/integrations/fastify.d.ts.map +1 -0
  45. package/dist/integrations/fastify.js +35 -0
  46. package/dist/integrations/fastify.js.map +1 -0
  47. package/dist/integrations/hono.d.ts +14 -0
  48. package/dist/integrations/hono.d.ts.map +1 -0
  49. package/dist/integrations/hono.js +30 -0
  50. package/dist/integrations/hono.js.map +1 -0
  51. package/dist/integrations/nestjs.d.ts +23 -0
  52. package/dist/integrations/nestjs.d.ts.map +1 -0
  53. package/dist/integrations/nestjs.js +137 -0
  54. package/dist/integrations/nestjs.js.map +1 -0
  55. package/dist/parser/parser.d.ts +15 -7
  56. package/dist/parser/parser.d.ts.map +1 -1
  57. package/dist/parser/parser.js +117 -15
  58. package/dist/parser/parser.js.map +1 -1
  59. package/dist/parser/tokenizer.d.ts +11 -1
  60. package/dist/parser/tokenizer.d.ts.map +1 -1
  61. package/dist/parser/tokenizer.js +67 -10
  62. package/dist/parser/tokenizer.js.map +1 -1
  63. package/dist/parser/validator.d.ts +39 -0
  64. package/dist/parser/validator.d.ts.map +1 -1
  65. package/dist/parser/validator.js +144 -3
  66. package/dist/parser/validator.js.map +1 -1
  67. package/dist/types/ast.d.ts +59 -3
  68. package/dist/types/ast.d.ts.map +1 -1
  69. package/dist/types/ast.js +21 -0
  70. package/dist/types/ast.js.map +1 -1
  71. package/dist/utils/ast-utils.d.ts +43 -0
  72. package/dist/utils/ast-utils.d.ts.map +1 -0
  73. package/dist/utils/ast-utils.js +205 -0
  74. package/dist/utils/ast-utils.js.map +1 -0
  75. package/dist/utils/cache.d.ts +47 -0
  76. package/dist/utils/cache.d.ts.map +1 -0
  77. package/dist/utils/cache.js +132 -0
  78. package/dist/utils/cache.js.map +1 -0
  79. package/dist/utils/serializer.d.ts +6 -0
  80. package/dist/utils/serializer.d.ts.map +1 -0
  81. package/dist/utils/serializer.js +140 -0
  82. package/dist/utils/serializer.js.map +1 -0
  83. package/package.json +29 -5
@@ -6,9 +6,38 @@ const ast_1 = require("../types/ast");
6
6
  * Transform a QAST AST node to a Prisma filter
7
7
  */
8
8
  function toPrismaFilter(ast) {
9
- return {
10
- where: transformNode(ast),
11
- };
9
+ if ('filter' in ast) {
10
+ // It's a QueryAST
11
+ const queryAST = ast;
12
+ const result = {
13
+ where: transformNode(queryAST.filter),
14
+ };
15
+ if (queryAST.orderBy && queryAST.orderBy.length > 0) {
16
+ if (queryAST.orderBy.length === 1) {
17
+ result.orderBy = {
18
+ [queryAST.orderBy[0].field]: queryAST.orderBy[0].direction,
19
+ };
20
+ }
21
+ else {
22
+ result.orderBy = queryAST.orderBy.map(clause => ({
23
+ [clause.field]: clause.direction,
24
+ }));
25
+ }
26
+ }
27
+ if (queryAST.limit !== undefined) {
28
+ result.take = queryAST.limit;
29
+ }
30
+ if (queryAST.offset !== undefined) {
31
+ result.skip = queryAST.offset;
32
+ }
33
+ return result;
34
+ }
35
+ else {
36
+ // It's just a QastNode (backward compatibility)
37
+ return {
38
+ where: transformNode(ast),
39
+ };
40
+ }
12
41
  }
13
42
  /**
14
43
  * Transform a node to Prisma format
@@ -20,7 +49,16 @@ function transformNode(node) {
20
49
  else if ((0, ast_1.isLogicalNode)(node)) {
21
50
  return transformLogicalNode(node);
22
51
  }
23
- throw new Error('Invalid node type');
52
+ else if ((0, ast_1.isNotNode)(node)) {
53
+ return transformNotNode(node);
54
+ }
55
+ else if ((0, ast_1.isBetweenNode)(node)) {
56
+ return transformBetweenNode(node);
57
+ }
58
+ else if ((0, ast_1.isNullCheckNode)(node)) {
59
+ return transformNullCheckNode(node);
60
+ }
61
+ throw new Error(`Invalid node type: ${node.type}`);
24
62
  }
25
63
  /**
26
64
  * Transform a comparison node to Prisma format
@@ -43,12 +81,36 @@ function transformComparisonNode(node) {
43
81
  return { [field]: { lte: value } };
44
82
  case 'in':
45
83
  return { [field]: { in: value } };
84
+ case 'notIn':
85
+ return { [field]: { notIn: value } };
46
86
  case 'contains':
47
87
  return { [field]: { contains: value } };
48
88
  case 'startsWith':
49
89
  return { [field]: { startsWith: value } };
50
90
  case 'endsWith':
51
91
  return { [field]: { endsWith: value } };
92
+ case 'like':
93
+ // Prisma doesn't have a direct 'like' operator, use contains with pattern matching
94
+ // For now, we'll convert % wildcards to contains/startsWith/endsWith
95
+ // Simple implementation: treat like as contains
96
+ const likeValue = value;
97
+ if (likeValue.startsWith('%') && likeValue.endsWith('%')) {
98
+ return { [field]: { contains: likeValue.slice(1, -1) } };
99
+ }
100
+ else if (likeValue.startsWith('%')) {
101
+ return { [field]: { endsWith: likeValue.slice(1) } };
102
+ }
103
+ else if (likeValue.endsWith('%')) {
104
+ return { [field]: { startsWith: likeValue.slice(0, -1) } };
105
+ }
106
+ else {
107
+ return { [field]: { contains: likeValue } };
108
+ }
109
+ case 'regex':
110
+ case 'matches':
111
+ // Prisma doesn't support regex directly, but we can use a pattern
112
+ // Note: This is a simplified implementation
113
+ return { [field]: { contains: value } };
52
114
  default:
53
115
  throw new Error(`Unsupported operator: ${op}`);
54
116
  }
@@ -133,4 +195,41 @@ function mergeFilters(left, right) {
133
195
  }
134
196
  return result;
135
197
  }
198
+ /**
199
+ * Transform a NOT node to Prisma format
200
+ */
201
+ function transformNotNode(node) {
202
+ const operandFilter = transformNode(node.operand);
203
+ return {
204
+ NOT: operandFilter,
205
+ };
206
+ }
207
+ /**
208
+ * Transform a BETWEEN node to Prisma format
209
+ */
210
+ function transformBetweenNode(node) {
211
+ return {
212
+ [node.field]: {
213
+ gte: node.min,
214
+ lte: node.max,
215
+ },
216
+ };
217
+ }
218
+ /**
219
+ * Transform a NULL_CHECK node to Prisma format
220
+ */
221
+ function transformNullCheckNode(node) {
222
+ if (node.isNull) {
223
+ return {
224
+ [node.field]: null,
225
+ };
226
+ }
227
+ else {
228
+ return {
229
+ [node.field]: {
230
+ not: null,
231
+ },
232
+ };
233
+ }
234
+ }
136
235
  //# sourceMappingURL=prisma.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../src/adapters/prisma.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../src/adapters/prisma.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { QastNode } from '../types/ast';
1
+ import { QastNode, QueryAST } from '../types/ast';
2
2
  /**
3
3
  * Sequelize filter type
4
4
  *
@@ -12,26 +12,44 @@ import { QastNode } from '../types/ast';
12
12
  * For other operators, you need Op: { age: { [Op.gt]: 25 } }
13
13
  * For logical operations, you need Op.and/Op.or: { [Op.and]: [...] }
14
14
  */
15
- export type SequelizeFilter = Record<string, any>;
15
+ export type SequelizeFilter = {
16
+ where?: Record<string, any>;
17
+ order?: Array<[string, 'ASC' | 'DESC']>;
18
+ limit?: number;
19
+ offset?: number;
20
+ };
16
21
  /**
17
22
  * Transform a QAST AST node to a Sequelize filter
18
23
  *
19
24
  * IMPORTANT: Sequelize uses the Op object from 'sequelize', not $ operators.
20
25
  * This adapter returns a structure with metadata that you need to transform.
21
26
  *
27
+ * Use transformSequelizeOperators() helper function to convert metadata to actual Sequelize Op operators.
28
+ *
22
29
  * Example usage:
23
30
  * ```ts
24
31
  * import { Op } from 'sequelize';
25
- * import { toSequelizeFilter } from 'qast';
32
+ * import { toSequelizeFilter, transformSequelizeOperators } from 'qast';
26
33
  *
27
34
  * const filter = toSequelizeFilter(ast);
28
- * // Returns a structure like:
29
- * // { age: { __qast_operator__: 'gt', value: 25 } }
30
- * // You need to transform it:
31
- * // { age: { [Op.gt]: 25 } }
35
+ * const transformed = transformSequelizeOperators(filter.where, Op);
32
36
  * ```
33
37
  *
34
38
  * For simple equality (eq operator), you can use plain values directly.
35
39
  */
36
- export declare function toSequelizeFilter(ast: QastNode): SequelizeFilter;
40
+ export declare function toSequelizeFilter(ast: QastNode | QueryAST): SequelizeFilter;
41
+ /**
42
+ * Helper function to transform QAST metadata to Sequelize Op operators
43
+ * This function requires Sequelize to be installed and Op to be imported.
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * import { Op } from 'sequelize';
48
+ * import { toSequelizeFilter, transformSequelizeOperators } from 'qast';
49
+ *
50
+ * const filter = toSequelizeFilter(ast);
51
+ * const transformed = transformSequelizeOperators(filter.where, Op);
52
+ * ```
53
+ */
54
+ export declare function transformSequelizeOperators(where: Record<string, any>, Op: any): Record<string, any>;
37
55
  //# sourceMappingURL=sequelize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sequelize.d.ts","sourceRoot":"","sources":["../../src/adapters/sequelize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAgE,MAAM,cAAc,CAAC;AAEtG;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAElD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,GAAG,eAAe,CAEhE"}
1
+ {"version":3,"file":"sequelize.d.ts","sourceRoot":"","sources":["../../src/adapters/sequelize.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAMR,QAAQ,EAMT,MAAM,cAAc,CAAC;AAEtB;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,GAAG,QAAQ,GAAG,eAAe,CA8B3E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,EAAE,EAAE,GAAG,GACN,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAuErB"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.toSequelizeFilter = toSequelizeFilter;
4
+ exports.transformSequelizeOperators = transformSequelizeOperators;
4
5
  const ast_1 = require("../types/ast");
5
6
  /**
6
7
  * Transform a QAST AST node to a Sequelize filter
@@ -8,22 +9,133 @@ const ast_1 = require("../types/ast");
8
9
  * IMPORTANT: Sequelize uses the Op object from 'sequelize', not $ operators.
9
10
  * This adapter returns a structure with metadata that you need to transform.
10
11
  *
12
+ * Use transformSequelizeOperators() helper function to convert metadata to actual Sequelize Op operators.
13
+ *
11
14
  * Example usage:
12
15
  * ```ts
13
16
  * import { Op } from 'sequelize';
14
- * import { toSequelizeFilter } from 'qast';
17
+ * import { toSequelizeFilter, transformSequelizeOperators } from 'qast';
15
18
  *
16
19
  * const filter = toSequelizeFilter(ast);
17
- * // Returns a structure like:
18
- * // { age: { __qast_operator__: 'gt', value: 25 } }
19
- * // You need to transform it:
20
- * // { age: { [Op.gt]: 25 } }
20
+ * const transformed = transformSequelizeOperators(filter.where, Op);
21
21
  * ```
22
22
  *
23
23
  * For simple equality (eq operator), you can use plain values directly.
24
24
  */
25
25
  function toSequelizeFilter(ast) {
26
- return transformNode(ast);
26
+ if ('filter' in ast) {
27
+ // It's a QueryAST
28
+ const queryAST = ast;
29
+ const result = {
30
+ where: transformNode(queryAST.filter),
31
+ };
32
+ if (queryAST.orderBy && queryAST.orderBy.length > 0) {
33
+ result.order = queryAST.orderBy.map(clause => [
34
+ clause.field,
35
+ clause.direction.toUpperCase(),
36
+ ]);
37
+ }
38
+ if (queryAST.limit !== undefined) {
39
+ result.limit = queryAST.limit;
40
+ }
41
+ if (queryAST.offset !== undefined) {
42
+ result.offset = queryAST.offset;
43
+ }
44
+ return result;
45
+ }
46
+ else {
47
+ // It's just a QastNode (backward compatibility)
48
+ return {
49
+ where: transformNode(ast),
50
+ };
51
+ }
52
+ }
53
+ /**
54
+ * Helper function to transform QAST metadata to Sequelize Op operators
55
+ * This function requires Sequelize to be installed and Op to be imported.
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * import { Op } from 'sequelize';
60
+ * import { toSequelizeFilter, transformSequelizeOperators } from 'qast';
61
+ *
62
+ * const filter = toSequelizeFilter(ast);
63
+ * const transformed = transformSequelizeOperators(filter.where, Op);
64
+ * ```
65
+ */
66
+ function transformSequelizeOperators(where, Op) {
67
+ const result = {};
68
+ for (const [key, value] of Object.entries(where)) {
69
+ if (value && typeof value === 'object' && '__qast_operator__' in value) {
70
+ const op = value.__qast_operator__;
71
+ const opValue = value.value;
72
+ switch (op) {
73
+ case 'gt':
74
+ result[key] = { [Op.gt]: opValue };
75
+ break;
76
+ case 'lt':
77
+ result[key] = { [Op.lt]: opValue };
78
+ break;
79
+ case 'gte':
80
+ result[key] = { [Op.gte]: opValue };
81
+ break;
82
+ case 'lte':
83
+ result[key] = { [Op.lte]: opValue };
84
+ break;
85
+ case 'ne':
86
+ result[key] = { [Op.ne]: opValue };
87
+ break;
88
+ case 'in':
89
+ result[key] = { [Op.in]: opValue };
90
+ break;
91
+ case 'notIn':
92
+ result[key] = { [Op.notIn]: opValue };
93
+ break;
94
+ case 'contains':
95
+ result[key] = { [Op.like]: `%${opValue}%` };
96
+ break;
97
+ case 'startsWith':
98
+ result[key] = { [Op.startsWith]: opValue };
99
+ break;
100
+ case 'endsWith':
101
+ result[key] = { [Op.endsWith]: opValue };
102
+ break;
103
+ case 'like':
104
+ result[key] = { [Op.like]: opValue };
105
+ break;
106
+ case 'regex':
107
+ case 'matches':
108
+ // Sequelize uses Op.regexp for regex matching
109
+ result[key] = Op.regexp ? { [Op.regexp]: opValue } : { [Op.like]: opValue };
110
+ break;
111
+ case 'between':
112
+ result[key] = { [Op.between]: [opValue.min, opValue.max] };
113
+ break;
114
+ default:
115
+ result[key] = value;
116
+ }
117
+ }
118
+ else if (value && typeof value === 'object' && '__qast_null_check__' in value) {
119
+ if (value.__qast_null_check__ === true) {
120
+ result[key] = { [Op.is]: null };
121
+ }
122
+ else {
123
+ result[key] = { [Op.not]: null };
124
+ }
125
+ }
126
+ else if (value && typeof value === 'object' && '__qast_logical__' in value) {
127
+ const logical = value.__qast_logical__;
128
+ const conditions = value.conditions.map((cond) => transformSequelizeOperators(cond, Op));
129
+ result[Op[logical]] = conditions;
130
+ }
131
+ else if (value && typeof value === 'object' && '__qast_not__' in value) {
132
+ result[Op.not] = transformSequelizeOperators(value.__qast_not__, Op);
133
+ }
134
+ else {
135
+ result[key] = value;
136
+ }
137
+ }
138
+ return result;
27
139
  }
28
140
  /**
29
141
  * Transform a node to Sequelize format
@@ -35,7 +147,16 @@ function transformNode(node) {
35
147
  else if ((0, ast_1.isLogicalNode)(node)) {
36
148
  return transformLogicalNode(node);
37
149
  }
38
- throw new Error('Invalid node type');
150
+ else if ((0, ast_1.isNotNode)(node)) {
151
+ return transformNotNode(node);
152
+ }
153
+ else if ((0, ast_1.isBetweenNode)(node)) {
154
+ return transformBetweenNode(node);
155
+ }
156
+ else if ((0, ast_1.isNullCheckNode)(node)) {
157
+ return transformNullCheckNode(node);
158
+ }
159
+ throw new Error(`Invalid node type: ${node.type}`);
39
160
  }
40
161
  /**
41
162
  * Transform a comparison node to Sequelize format
@@ -76,6 +197,13 @@ function transformComparisonNode(node) {
76
197
  return { [field]: { __qast_operator__: 'startsWith', value } };
77
198
  case 'endsWith':
78
199
  return { [field]: { __qast_operator__: 'endsWith', value } };
200
+ case 'notIn':
201
+ return { [field]: { __qast_operator__: 'notIn', value } };
202
+ case 'like':
203
+ return { [field]: { __qast_operator__: 'like', value } };
204
+ case 'regex':
205
+ case 'matches':
206
+ return { [field]: { __qast_operator__: 'regex', value } };
79
207
  default:
80
208
  throw new Error(`Unsupported operator: ${op}`);
81
209
  }
@@ -167,4 +295,37 @@ function transformLogicalNode(node) {
167
295
  }
168
296
  }
169
297
  }
298
+ /**
299
+ * Transform a NOT node to Sequelize format
300
+ */
301
+ function transformNotNode(node) {
302
+ const operandFilter = transformNode(node.operand);
303
+ return {
304
+ __qast_not__: operandFilter,
305
+ };
306
+ }
307
+ /**
308
+ * Transform a BETWEEN node to Sequelize format
309
+ */
310
+ function transformBetweenNode(node) {
311
+ return {
312
+ [node.field]: {
313
+ __qast_operator__: 'between',
314
+ value: {
315
+ min: node.min,
316
+ max: node.max,
317
+ },
318
+ },
319
+ };
320
+ }
321
+ /**
322
+ * Transform a NULL_CHECK node to Sequelize format
323
+ */
324
+ function transformNullCheckNode(node) {
325
+ return {
326
+ [node.field]: {
327
+ __qast_null_check__: node.isNull,
328
+ },
329
+ };
330
+ }
170
331
  //# sourceMappingURL=sequelize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sequelize.js","sourceRoot":"","sources":["../../src/adapters/sequelize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sequelize.js","sourceRoot":"","sources":["../../src/adapters/sequelize.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { QastNode } from '../types/ast';
1
+ import { QastNode, QueryAST } from '../types/ast';
2
2
  /**
3
3
  * TypeORM filter type
4
4
  * Note: This returns a plain object that can be used with TypeORM's FindOptions
@@ -6,6 +6,9 @@ import { QastNode } from '../types/ast';
6
6
  */
7
7
  export type TypeORMFilter = {
8
8
  where: Record<string, any> | Array<Record<string, any>>;
9
+ order?: Record<string, 'ASC' | 'DESC'> | Array<Record<string, 'ASC' | 'DESC'>>;
10
+ take?: number;
11
+ skip?: number;
9
12
  };
10
13
  /**
11
14
  * Transform a QAST AST node to a TypeORM filter
@@ -13,6 +16,33 @@ export type TypeORMFilter = {
13
16
  * Note: TypeORM uses operator functions like MoreThan(), LessThan(), etc.
14
17
  * This adapter returns a structure that can be used with TypeORM's FindOptions.
15
18
  * For production use, users may need to wrap values with TypeORM operators.
19
+ *
20
+ * Use transformTypeORMOperators() helper function to convert metadata to actual TypeORM operators.
21
+ */
22
+ export declare function toTypeORMFilter(ast: QastNode | QueryAST): TypeORMFilter;
23
+ /**
24
+ * Helper function to transform QAST metadata to TypeORM operators
25
+ * This function requires TypeORM to be installed and imported.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * import { MoreThan, LessThan, Like, In, Not, IsNull } from 'typeorm';
30
+ * import { toTypeORMFilter, transformTypeORMOperators } from 'qast';
31
+ *
32
+ * const filter = toTypeORMFilter(ast);
33
+ * const transformed = transformTypeORMOperators(filter.where, {
34
+ * MoreThan, LessThan, Like, In, Not, IsNull
35
+ * });
36
+ * ```
16
37
  */
17
- export declare function toTypeORMFilter(ast: QastNode): TypeORMFilter;
38
+ export declare function transformTypeORMOperators(where: Record<string, any> | Array<Record<string, any>>, operators: {
39
+ MoreThan?: (value: any) => any;
40
+ LessThan?: (value: any) => any;
41
+ MoreThanOrEqual?: (value: any) => any;
42
+ LessThanOrEqual?: (value: any) => any;
43
+ Like?: (value: string) => any;
44
+ In?: (value: any[]) => any;
45
+ Not?: (value: any) => any;
46
+ IsNull?: () => any;
47
+ }): Record<string, any> | Array<Record<string, any>>;
18
48
  //# sourceMappingURL=typeorm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typeorm.d.ts","sourceRoot":"","sources":["../../src/adapters/typeorm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAgE,MAAM,cAAc,CAAC;AAEtG;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;CACzD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,aAAa,CAG5D"}
1
+ {"version":3,"file":"typeorm.d.ts","sourceRoot":"","sources":["../../src/adapters/typeorm.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAMR,QAAQ,EAMT,MAAM,cAAc,CAAC;AAEtB;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAmCvE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EACvD,SAAS,EAAE;IACT,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAC/B,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IACtC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IACtC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC;IAC9B,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IAC3B,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC;CACpB,GACA,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAkElD"}