@tablecraft/engine 0.1.5 → 0.1.7
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.
- package/dist/core/queryBuilder.d.ts.map +1 -1
- package/dist/core/queryBuilder.js +29 -17
- package/dist/core/queryBuilder.js.map +1 -1
- package/dist/core/subqueryBuilder.d.ts +17 -0
- package/dist/core/subqueryBuilder.d.ts.map +1 -1
- package/dist/core/subqueryBuilder.js +58 -11
- package/dist/core/subqueryBuilder.js.map +1 -1
- package/dist/define.d.ts +85 -15
- package/dist/define.d.ts.map +1 -1
- package/dist/define.js +171 -43
- package/dist/define.js.map +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +18 -14
- package/dist/engine.js.map +1 -1
- package/dist/types/table.d.ts +292 -2
- package/dist/types/table.d.ts.map +1 -1
- package/dist/types/table.js +29 -2
- package/dist/types/table.js.map +1 -1
- package/dist/utils/openapi.d.ts.map +1 -1
- package/dist/utils/openapi.js +25 -2
- package/dist/utils/openapi.js.map +1 -1
- package/package.json +1 -1
package/dist/define.js
CHANGED
|
@@ -1,11 +1,28 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { and, between, eq, exists, getTableName, gt, gte, ilike, inArray, isNotNull, isNull, like, lt, lte, ne, not, notBetween, notExists, notInArray, or, SQL, sql, } from "drizzle-orm";
|
|
2
2
|
export const drizzleOperators = {
|
|
3
|
-
eq,
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
eq,
|
|
4
|
+
ne,
|
|
5
|
+
gt,
|
|
6
|
+
gte,
|
|
7
|
+
lt,
|
|
8
|
+
lte,
|
|
9
|
+
like,
|
|
10
|
+
ilike,
|
|
11
|
+
inArray,
|
|
12
|
+
notInArray,
|
|
13
|
+
between,
|
|
14
|
+
notBetween,
|
|
15
|
+
isNull,
|
|
16
|
+
isNotNull,
|
|
17
|
+
exists,
|
|
18
|
+
notExists,
|
|
19
|
+
and,
|
|
20
|
+
or,
|
|
21
|
+
not,
|
|
22
|
+
sql,
|
|
7
23
|
};
|
|
8
|
-
import {
|
|
24
|
+
import { detectSensitiveColumns, getSensitiveColumnNames, introspectTable, } from "./utils/introspect";
|
|
25
|
+
export const TABLECRAFT_EXTENSIONS_KEY = "__tablecraft_ext";
|
|
9
26
|
function emptyExtensions() {
|
|
10
27
|
return {
|
|
11
28
|
computedExpressions: new Map(),
|
|
@@ -151,12 +168,15 @@ export class TableDefinitionBuilder {
|
|
|
151
168
|
// ──── Search ────
|
|
152
169
|
search(...columns) {
|
|
153
170
|
// Cast to unknown first to avoid tuple/array type mismatch in strict mode
|
|
154
|
-
this._config.search = {
|
|
171
|
+
this._config.search = {
|
|
172
|
+
fields: columns,
|
|
173
|
+
enabled: true,
|
|
174
|
+
};
|
|
155
175
|
return this;
|
|
156
176
|
}
|
|
157
177
|
searchAll() {
|
|
158
178
|
const textCols = this._config.columns
|
|
159
|
-
.filter((c) => c.type ===
|
|
179
|
+
.filter((c) => c.type === "string" && !c.hidden)
|
|
160
180
|
.map((c) => c.name);
|
|
161
181
|
this._config.search = { fields: textCols, enabled: true };
|
|
162
182
|
return this;
|
|
@@ -176,7 +196,12 @@ export class TableDefinitionBuilder {
|
|
|
176
196
|
staticFilter(field, operator, value) {
|
|
177
197
|
if (!this._config.filters)
|
|
178
198
|
this._config.filters = [];
|
|
179
|
-
this._config.filters.push({
|
|
199
|
+
this._config.filters.push({
|
|
200
|
+
field: field,
|
|
201
|
+
operator,
|
|
202
|
+
value,
|
|
203
|
+
type: "static",
|
|
204
|
+
});
|
|
180
205
|
return this;
|
|
181
206
|
}
|
|
182
207
|
noFilter() {
|
|
@@ -197,7 +222,7 @@ export class TableDefinitionBuilder {
|
|
|
197
222
|
if (!this._config.filterGroups)
|
|
198
223
|
this._config.filterGroups = [];
|
|
199
224
|
this._config.filterGroups.push({
|
|
200
|
-
type:
|
|
225
|
+
type: "or",
|
|
201
226
|
conditions: conditions.map((c) => ({
|
|
202
227
|
field: c.field,
|
|
203
228
|
operator: c.op,
|
|
@@ -252,7 +277,11 @@ export class TableDefinitionBuilder {
|
|
|
252
277
|
return this;
|
|
253
278
|
}
|
|
254
279
|
noPagination() {
|
|
255
|
-
this._config.pagination = {
|
|
280
|
+
this._config.pagination = {
|
|
281
|
+
defaultPageSize: 10,
|
|
282
|
+
maxPageSize: 100,
|
|
283
|
+
enabled: false,
|
|
284
|
+
};
|
|
256
285
|
return this;
|
|
257
286
|
}
|
|
258
287
|
// ──── Joins (accepts string OR SQL) ────
|
|
@@ -262,11 +291,11 @@ export class TableDefinitionBuilder {
|
|
|
262
291
|
const joinedName = getTableName(table);
|
|
263
292
|
const baseName = this._config.base;
|
|
264
293
|
const key = options?.alias ?? joinedName;
|
|
265
|
-
let onString =
|
|
294
|
+
let onString = "";
|
|
266
295
|
if (options?.on) {
|
|
267
|
-
if (typeof options.on ===
|
|
296
|
+
if (typeof options.on === "string") {
|
|
268
297
|
// Shorthand: "customerId" → "base.customerId = joined.id"
|
|
269
|
-
if (!options.on.includes(
|
|
298
|
+
if (!options.on.includes("=") && !options.on.includes(".")) {
|
|
270
299
|
onString = `${baseName}.${options.on} = ${joinedName}.id`;
|
|
271
300
|
}
|
|
272
301
|
else {
|
|
@@ -286,13 +315,13 @@ export class TableDefinitionBuilder {
|
|
|
286
315
|
}
|
|
287
316
|
const joinConfig = {
|
|
288
317
|
table: joinedName,
|
|
289
|
-
type: options?.type ??
|
|
318
|
+
type: options?.type ?? "left",
|
|
290
319
|
on: onString,
|
|
291
320
|
...(options?.alias && { alias: options.alias }),
|
|
292
321
|
...(options?.columns && {
|
|
293
322
|
columns: options.columns.map((name) => ({
|
|
294
323
|
name,
|
|
295
|
-
type:
|
|
324
|
+
type: "string",
|
|
296
325
|
hidden: false,
|
|
297
326
|
sortable: true,
|
|
298
327
|
filterable: true,
|
|
@@ -306,7 +335,7 @@ export class TableDefinitionBuilder {
|
|
|
306
335
|
computed(name, expression, options) {
|
|
307
336
|
this._config.columns.push({
|
|
308
337
|
name,
|
|
309
|
-
type: options?.type ??
|
|
338
|
+
type: options?.type ?? "string",
|
|
310
339
|
label: options?.label ?? name,
|
|
311
340
|
hidden: false,
|
|
312
341
|
sortable: options?.sortable ?? true,
|
|
@@ -318,7 +347,7 @@ export class TableDefinitionBuilder {
|
|
|
318
347
|
}
|
|
319
348
|
// ──── Backend Conditions ────
|
|
320
349
|
where(condition) {
|
|
321
|
-
if (typeof condition ===
|
|
350
|
+
if (typeof condition === "function") {
|
|
322
351
|
this._ext.dynamicWheres.push(condition);
|
|
323
352
|
return this;
|
|
324
353
|
}
|
|
@@ -377,7 +406,7 @@ export class TableDefinitionBuilder {
|
|
|
377
406
|
const includeConfig = {
|
|
378
407
|
table: getTableName(table),
|
|
379
408
|
foreignKey: options.foreignKey,
|
|
380
|
-
localKey: options.localKey ??
|
|
409
|
+
localKey: options.localKey ?? "id",
|
|
381
410
|
as: options.as,
|
|
382
411
|
columns: options.columns,
|
|
383
412
|
limit: options.limit,
|
|
@@ -395,9 +424,9 @@ export class TableDefinitionBuilder {
|
|
|
395
424
|
recursive(options) {
|
|
396
425
|
this._config.recursive = {
|
|
397
426
|
parentKey: options.parentKey,
|
|
398
|
-
childKey: options.childKey ??
|
|
427
|
+
childKey: options.childKey ?? "id",
|
|
399
428
|
maxDepth: options.maxDepth ?? 10,
|
|
400
|
-
depthAlias: options.depthAlias ??
|
|
429
|
+
depthAlias: options.depthAlias ?? "depth",
|
|
401
430
|
pathAlias: options.pathAlias,
|
|
402
431
|
startWith: options.startWith
|
|
403
432
|
? {
|
|
@@ -443,7 +472,7 @@ export class TableDefinitionBuilder {
|
|
|
443
472
|
// haven't been registered yet. Create a placeholder.
|
|
444
473
|
col = {
|
|
445
474
|
name: column,
|
|
446
|
-
type: meta.type ??
|
|
475
|
+
type: meta.type ?? "string",
|
|
447
476
|
hidden: false,
|
|
448
477
|
computed: true,
|
|
449
478
|
};
|
|
@@ -518,7 +547,7 @@ export class TableDefinitionBuilder {
|
|
|
518
547
|
// Register as a computed column with metadata
|
|
519
548
|
this._config.columns.push({
|
|
520
549
|
name: alias,
|
|
521
|
-
type: options?.type ??
|
|
550
|
+
type: options?.type ?? "string",
|
|
522
551
|
label: options?.label,
|
|
523
552
|
hidden: options?.hidden ?? false,
|
|
524
553
|
sortable: options?.sortable ?? true,
|
|
@@ -549,7 +578,8 @@ export class TableDefinitionBuilder {
|
|
|
549
578
|
* Prefer `.sort()` or `.sortable()` for user-facing sort controls.
|
|
550
579
|
*/
|
|
551
580
|
rawOrderBy(sqlExpr) {
|
|
552
|
-
if (typeof process !==
|
|
581
|
+
if (typeof process !== "undefined" &&
|
|
582
|
+
process.env?.NODE_ENV !== "production") {
|
|
553
583
|
console.warn(`[TableCraft] rawOrderBy() bypasses the sortable whitelist and should not be used with user input. ` +
|
|
554
584
|
`Expression: ${sqlExpr}`);
|
|
555
585
|
}
|
|
@@ -561,12 +591,95 @@ export class TableDefinitionBuilder {
|
|
|
561
591
|
return this;
|
|
562
592
|
}
|
|
563
593
|
// ──── Subqueries ────
|
|
594
|
+
/**
|
|
595
|
+
* Attach a correlated subquery to every row.
|
|
596
|
+
*
|
|
597
|
+
* The `filter` parameter controls the subquery's WHERE clause and accepts
|
|
598
|
+
* **three forms** — pick whichever fits your style:
|
|
599
|
+
*
|
|
600
|
+
* ---
|
|
601
|
+
*
|
|
602
|
+
* ### 1. Drizzle `sql\`...\`` expression *(best DX — use your schema columns directly)*
|
|
603
|
+
*
|
|
604
|
+
* Import `sql` from `drizzle-orm` and write the WHERE clause exactly as you
|
|
605
|
+
* would in any Drizzle query. TableCraft passes the expression through unchanged,
|
|
606
|
+
* so the full power of Drizzle is available — joins, functions, OR logic, anything.
|
|
607
|
+
* You own the safety of the expression.
|
|
608
|
+
*
|
|
609
|
+
* ```ts
|
|
610
|
+
* import { sql } from 'drizzle-orm';
|
|
611
|
+
* import { orders, orderItems } from '../db/schema';
|
|
612
|
+
*
|
|
613
|
+
* .subquery('itemCount', orderItems, 'count',
|
|
614
|
+
* sql`${orderItems.orderId} = ${orders.id}`)
|
|
615
|
+
*
|
|
616
|
+
* // With an extra condition:
|
|
617
|
+
* .subquery('activeItemCount', orderItems, 'count',
|
|
618
|
+
* sql`${orderItems.orderId} = ${orders.id} AND ${orderItems.status} = ${'active'}`)
|
|
619
|
+
* ```
|
|
620
|
+
*
|
|
621
|
+
* ---
|
|
622
|
+
*
|
|
623
|
+
* ### 2. Structured `SubqueryCondition[]` *(typed, injection-safe)*
|
|
624
|
+
*
|
|
625
|
+
* Pass an array of condition objects. Each has `left`, `op` (default `'eq'`),
|
|
626
|
+
* and `right` operands — either `{ column: 'table.column' }` or `{ value: literal }`.
|
|
627
|
+
* Conditions are AND-combined. Literal values are parameterized automatically.
|
|
628
|
+
*
|
|
629
|
+
* ```ts
|
|
630
|
+
* // Simple column-to-column join:
|
|
631
|
+
* .subquery('itemCount', orderItems, 'count', [
|
|
632
|
+
* { left: { column: 'order_items.order_id' }, op: 'eq', right: { column: 'orders.id' } },
|
|
633
|
+
* ])
|
|
634
|
+
*
|
|
635
|
+
* // With a literal value filter:
|
|
636
|
+
* .subquery('activeItemCount', orderItems, 'count', [
|
|
637
|
+
* { left: { column: 'order_items.order_id' }, op: 'eq', right: { column: 'orders.id' } },
|
|
638
|
+
* { left: { column: 'order_items.status' }, op: 'eq', right: { value: 'active' } },
|
|
639
|
+
* ])
|
|
640
|
+
* ```
|
|
641
|
+
*
|
|
642
|
+
* ---
|
|
643
|
+
*
|
|
644
|
+
* ### 3. Raw SQL string *(@deprecated — developer-authored constants only)*
|
|
645
|
+
*
|
|
646
|
+
* Still accepted for backwards compatibility. Must be a hardcoded string authored
|
|
647
|
+
* by the developer — never derived from user input. Prefer form 1 or 2 instead.
|
|
648
|
+
*
|
|
649
|
+
* ```ts
|
|
650
|
+
* // @deprecated
|
|
651
|
+
* .subquery('itemCount', orderItems, 'count', 'order_items.order_id = orders.id')
|
|
652
|
+
* ```
|
|
653
|
+
*
|
|
654
|
+
* ---
|
|
655
|
+
*
|
|
656
|
+
* Omitting `filter` creates an uncorrelated subquery (full table scan).
|
|
657
|
+
*/
|
|
564
658
|
subquery(alias, table, type, filter) {
|
|
565
659
|
if (!this._config.subqueries)
|
|
566
660
|
this._config.subqueries = [];
|
|
661
|
+
let entry;
|
|
662
|
+
if (filter === undefined || filter === null) {
|
|
663
|
+
entry = { alias, table: getTableName(table), type };
|
|
664
|
+
}
|
|
665
|
+
else if (filter instanceof SQL) {
|
|
666
|
+
// Drizzle SQL expression — stored as runtime-only filterSql (not JSON-serializable)
|
|
667
|
+
entry = { alias, table: getTableName(table), type, filterSql: filter };
|
|
668
|
+
}
|
|
669
|
+
else if (typeof filter === "string") {
|
|
670
|
+
// @deprecated raw string — kept for backwards compatibility
|
|
671
|
+
entry = { alias, table: getTableName(table), type, filter };
|
|
672
|
+
}
|
|
673
|
+
else {
|
|
674
|
+
entry = {
|
|
675
|
+
alias,
|
|
676
|
+
table: getTableName(table),
|
|
677
|
+
type,
|
|
678
|
+
filterConditions: filter,
|
|
679
|
+
};
|
|
680
|
+
}
|
|
567
681
|
// Dedupe subquery entries by alias — replace if exists
|
|
568
|
-
const
|
|
569
|
-
const existingIdx = this._config.subqueries.findIndex(e => e.alias === alias);
|
|
682
|
+
const existingIdx = this._config.subqueries.findIndex((e) => e.alias === alias);
|
|
570
683
|
if (existingIdx >= 0) {
|
|
571
684
|
this._config.subqueries[existingIdx] = entry;
|
|
572
685
|
}
|
|
@@ -580,20 +693,21 @@ export class TableDefinitionBuilder {
|
|
|
580
693
|
// 'first' mode returns row_to_json() — a non-scalar JSON object — which
|
|
581
694
|
// cannot be used in ORDER BY. Mark it sortable: false to prevent DB errors.
|
|
582
695
|
// 'count' (integer) and 'exists' (boolean) are scalar and safe to sort.
|
|
583
|
-
const existingCol = this._config.columns.find(c => c.name === alias);
|
|
696
|
+
const existingCol = this._config.columns.find((c) => c.name === alias);
|
|
584
697
|
if (existingCol) {
|
|
585
|
-
existingCol.type =
|
|
586
|
-
|
|
698
|
+
existingCol.type =
|
|
699
|
+
type === "exists" ? "boolean" : type === "count" ? "number" : "json";
|
|
700
|
+
existingCol.sortable = type !== "first";
|
|
587
701
|
existingCol.filterable = false;
|
|
588
702
|
existingCol.computed = true;
|
|
589
703
|
}
|
|
590
704
|
else {
|
|
591
705
|
this._config.columns.push({
|
|
592
706
|
name: alias,
|
|
593
|
-
type: type ===
|
|
707
|
+
type: type === "exists" ? "boolean" : type === "count" ? "number" : "json",
|
|
594
708
|
label: alias,
|
|
595
709
|
hidden: false,
|
|
596
|
-
sortable: type !==
|
|
710
|
+
sortable: type !== "first",
|
|
597
711
|
filterable: false,
|
|
598
712
|
computed: true,
|
|
599
713
|
});
|
|
@@ -603,21 +717,21 @@ export class TableDefinitionBuilder {
|
|
|
603
717
|
// ──── Platform Features ────
|
|
604
718
|
softDelete(field) {
|
|
605
719
|
this._config.softDelete = {
|
|
606
|
-
field: field ?? this._config.softDelete?.field ??
|
|
720
|
+
field: field ?? this._config.softDelete?.field ?? "deletedAt",
|
|
607
721
|
enabled: true,
|
|
608
722
|
};
|
|
609
723
|
return this;
|
|
610
724
|
}
|
|
611
725
|
tenant(field) {
|
|
612
726
|
this._config.tenant = {
|
|
613
|
-
field: field ?? this._config.tenant?.field ??
|
|
727
|
+
field: field ?? this._config.tenant?.field ?? "tenantId",
|
|
614
728
|
enabled: true,
|
|
615
729
|
};
|
|
616
730
|
return this;
|
|
617
731
|
}
|
|
618
732
|
exportable(...formats) {
|
|
619
733
|
this._config.export = {
|
|
620
|
-
formats: formats.length > 0 ? formats : [
|
|
734
|
+
formats: formats.length > 0 ? formats : ["csv", "json"],
|
|
621
735
|
enabled: true,
|
|
622
736
|
};
|
|
623
737
|
return this;
|
|
@@ -627,10 +741,15 @@ export class TableDefinitionBuilder {
|
|
|
627
741
|
return this;
|
|
628
742
|
}
|
|
629
743
|
// ──── Name Override ────
|
|
744
|
+
/** Set a custom display name for this table definition. */
|
|
630
745
|
as(name) {
|
|
631
746
|
this._config.name = name;
|
|
632
747
|
return this;
|
|
633
748
|
}
|
|
749
|
+
/** Alias for `.as()` — sets the table's display name. */
|
|
750
|
+
name(name) {
|
|
751
|
+
return this.as(name);
|
|
752
|
+
}
|
|
634
753
|
// ──── Count Mode ────
|
|
635
754
|
/**
|
|
636
755
|
* Control how row counting works.
|
|
@@ -639,7 +758,7 @@ export class TableDefinitionBuilder {
|
|
|
639
758
|
* 'none' = skip counting entirely — fastest
|
|
640
759
|
*/
|
|
641
760
|
countMode(mode) {
|
|
642
|
-
this.
|
|
761
|
+
this._ext.countMode = mode;
|
|
643
762
|
return this;
|
|
644
763
|
}
|
|
645
764
|
// ──── DISTINCT ────
|
|
@@ -669,12 +788,18 @@ export class TableDefinitionBuilder {
|
|
|
669
788
|
}
|
|
670
789
|
// ──── Output ────
|
|
671
790
|
toConfig() {
|
|
672
|
-
|
|
791
|
+
const config = { ...this._config };
|
|
792
|
+
Object.defineProperty(config, TABLECRAFT_EXTENSIONS_KEY, {
|
|
793
|
+
value: this._ext,
|
|
794
|
+
enumerable: false,
|
|
795
|
+
configurable: false,
|
|
796
|
+
});
|
|
797
|
+
return config;
|
|
673
798
|
}
|
|
674
799
|
}
|
|
675
800
|
// ── Main Entry ──
|
|
676
801
|
export function defineTable(table, options) {
|
|
677
|
-
if (options &&
|
|
802
|
+
if (options && "columns" in options && Array.isArray(options.columns)) {
|
|
678
803
|
return new TableDefinitionBuilder(table, options);
|
|
679
804
|
}
|
|
680
805
|
const config = introspectTable(table);
|
|
@@ -702,7 +827,10 @@ function applyQuickOptions(config, options) {
|
|
|
702
827
|
}
|
|
703
828
|
}
|
|
704
829
|
if (options.sort) {
|
|
705
|
-
const specs = options.sort
|
|
830
|
+
const specs = options.sort
|
|
831
|
+
.split(",")
|
|
832
|
+
.map((s) => s.trim())
|
|
833
|
+
.filter(Boolean);
|
|
706
834
|
config.defaultSort = specs.map(parseSortSpec);
|
|
707
835
|
}
|
|
708
836
|
if (options.pageSize !== undefined) {
|
|
@@ -727,12 +855,12 @@ function applyQuickOptions(config, options) {
|
|
|
727
855
|
}
|
|
728
856
|
}
|
|
729
857
|
function parseSortSpec(spec) {
|
|
730
|
-
if (spec.startsWith(
|
|
731
|
-
return { field:
|
|
858
|
+
if (spec.startsWith("-")) {
|
|
859
|
+
return { field: spec.slice(1), order: "desc" };
|
|
732
860
|
}
|
|
733
|
-
if (spec.startsWith(
|
|
734
|
-
return { field:
|
|
861
|
+
if (spec.startsWith("+")) {
|
|
862
|
+
return { field: spec.slice(1), order: "asc" };
|
|
735
863
|
}
|
|
736
|
-
return { field:
|
|
864
|
+
return { field: spec, order: "asc" };
|
|
737
865
|
}
|
|
738
866
|
//# sourceMappingURL=define.js.map
|
package/dist/define.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"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"}
|
package/dist/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAA4D,WAAW,EAA6B,MAAM,gBAAgB,CAAC;AAoBlI,OAAO,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAA4D,WAAW,EAA6B,MAAM,gBAAgB,CAAC;AAoBlI,OAAO,EACL,sBAAsB,EAIvB,MAAM,UAAU,CAAC;AAOlB,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;AAsDpE,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,GAAG,CAAC;IACR,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,WAAW,CA0c3E;AAID,wBAAgB,aAAa,CAAC,OAAO,EAAE;IACrC,EAAE,EAAE,GAAG,CAAC;IACR,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACtD,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAS9B"}
|
package/dist/engine.js
CHANGED
|
@@ -18,7 +18,7 @@ import { FieldSelector } from './core/fieldSelector';
|
|
|
18
18
|
import { detectDialect, supportsFeature } from './core/dialect';
|
|
19
19
|
import { formatResponse, applyJsTransforms } from './utils/responseFormatter';
|
|
20
20
|
import { exportData } from './utils/export';
|
|
21
|
-
import { drizzleOperators } from './define';
|
|
21
|
+
import { TABLECRAFT_EXTENSIONS_KEY, drizzleOperators, } from './define';
|
|
22
22
|
import { TableCraftError, QueryError, DialectError } from './errors';
|
|
23
23
|
import { applyRoleBasedVisibility } from './core/roleFilter';
|
|
24
24
|
import { buildMetadata } from './core/metadataBuilder';
|
|
@@ -27,19 +27,23 @@ function resolveInput(input) {
|
|
|
27
27
|
const b = input;
|
|
28
28
|
return { config: b.toConfig(), ext: b._ext };
|
|
29
29
|
}
|
|
30
|
+
const plainConfig = input;
|
|
31
|
+
const embeddedExt = plainConfig[TABLECRAFT_EXTENSIONS_KEY];
|
|
30
32
|
return {
|
|
31
|
-
config:
|
|
32
|
-
ext:
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
33
|
+
config: plainConfig,
|
|
34
|
+
ext: embeddedExt ??
|
|
35
|
+
{
|
|
36
|
+
computedExpressions: new Map(),
|
|
37
|
+
transforms: new Map(),
|
|
38
|
+
rawSelects: new Map(),
|
|
39
|
+
rawWheres: [],
|
|
40
|
+
dynamicWheres: [],
|
|
41
|
+
rawJoins: [],
|
|
42
|
+
rawOrderBys: [],
|
|
43
|
+
ctes: new Map(),
|
|
44
|
+
sqlJoinConditions: new Map(),
|
|
45
|
+
countMode: undefined,
|
|
46
|
+
},
|
|
43
47
|
};
|
|
44
48
|
}
|
|
45
49
|
function normalizeSchema(schema) {
|
|
@@ -85,7 +89,7 @@ export function createTableEngine(options) {
|
|
|
85
89
|
const recursiveBuilder = new RecursiveBuilder(schema);
|
|
86
90
|
const fieldSelector = new FieldSelector();
|
|
87
91
|
const baseTable = schema[config.base];
|
|
88
|
-
const countMode =
|
|
92
|
+
const countMode = ext.countMode ?? 'exact';
|
|
89
93
|
// ── WHERE builder ──
|
|
90
94
|
async function buildWhereConditions(params, context) {
|
|
91
95
|
const parts = [];
|