litedbmodel 0.22.3 → 1.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.
- package/README.md +89 -79
- package/dist/Column.d.ts +17 -9
- package/dist/Column.d.ts.map +1 -1
- package/dist/Column.js +39 -4
- package/dist/Column.js.map +1 -1
- package/dist/DBModel.d.ts +39 -16
- package/dist/DBModel.d.ts.map +1 -1
- package/dist/DBModel.js +69 -41
- package/dist/DBModel.js.map +1 -1
- package/dist/SqlFragment.d.ts +118 -0
- package/dist/SqlFragment.d.ts.map +1 -0
- package/dist/SqlFragment.js +237 -0
- package/dist/SqlFragment.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -1
- package/dist/index.js.map +1 -1
- package/docs/COMPARISON.md +25 -20
- package/docs/sql-tagged-template.md +259 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ litedbmodel keeps SQL visible and controllable: generated queries are intentiona
|
|
|
27
27
|
|
|
28
28
|
### Refactoring-friendly, without sacrificing SQL control
|
|
29
29
|
- Column references are **symbol-based** (`Model.column`) so IDE rename/find-references work.
|
|
30
|
-
- Conditions are **type-safe tuples** (`[Column, value]`),
|
|
30
|
+
- Conditions are **type-safe tuples** (`[Column, value]`), with a `sql` tagged template for operators (`[sql\`${Col} > ?\`, value]`). An ESLint plugin catches mistakes TS cannot.
|
|
31
31
|
|
|
32
32
|
> See [Design Philosophy](./docs/BENCHMARK.md#litedbmodels-design-philosophy) for detailed comparison with query-centric ORMs.
|
|
33
33
|
|
|
@@ -93,6 +93,17 @@ npm install mysql2 # MySQL
|
|
|
93
93
|
npm install better-sqlite3 # SQLite
|
|
94
94
|
```
|
|
95
95
|
|
|
96
|
+
### Code Generation (optional)
|
|
97
|
+
|
|
98
|
+
[**litedbmodel-gen**](https://www.npmjs.com/package/litedbmodel-gen) generates model column definitions from SQL DDL (`schema.sql`). Column definitions inside markers are auto-updated when the schema changes; hand-written code (relations, methods, exports) is preserved.
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
npm install -D litedbmodel-gen embedoc
|
|
102
|
+
npx embedoc init && npx litedbmodel-gen init
|
|
103
|
+
npx embedoc generate --datasource schema # scaffold model files
|
|
104
|
+
npx embedoc build # sync column definitions
|
|
105
|
+
```
|
|
106
|
+
|
|
96
107
|
## Quick Start
|
|
97
108
|
|
|
98
109
|
```typescript
|
|
@@ -457,34 +468,55 @@ await User.updateMany([
|
|
|
457
468
|
|
|
458
469
|
## Type-Safe Conditions
|
|
459
470
|
|
|
460
|
-
|
|
471
|
+
### Column Tuples (recommended for equality/simple conditions)
|
|
472
|
+
|
|
473
|
+
The simplest and most type-safe form. The value type is validated at compile time:
|
|
474
|
+
|
|
475
|
+
```typescript
|
|
476
|
+
await User.find([
|
|
477
|
+
[User.status, 'active'], // status = 'active'
|
|
478
|
+
[User.is_active, true], // is_active = TRUE
|
|
479
|
+
]);
|
|
480
|
+
await User.find([[User.email, 'john@example.com']]);
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
### `sql` Tagged Template (for operators, LIKE, BETWEEN, IS NULL, etc.)
|
|
484
|
+
|
|
485
|
+
Use the `sql` tagged template for conditions that need operators. The `sql` tag extracts the Column reference, producing a type-safe fragment.
|
|
486
|
+
See [sql Tagged Template Literal](./docs/sql-tagged-template.md) for full reference.
|
|
461
487
|
|
|
462
488
|
```typescript
|
|
463
|
-
|
|
464
|
-
|
|
489
|
+
import { sql } from 'litedbmodel';
|
|
490
|
+
|
|
491
|
+
await User.find([
|
|
492
|
+
[sql`${User.age} > ?`, 18], // age > 18
|
|
493
|
+
[sql`${User.age} BETWEEN ? AND ?`, [18, 65]], // age BETWEEN 18 AND 65
|
|
494
|
+
[sql`${User.name} LIKE ?`, '%test%'], // name LIKE '%test%'
|
|
495
|
+
[sql`${User.status} IN (?)`, ['active', 'pending']], // status IN ('active', 'pending')
|
|
496
|
+
sql`${User.deleted_at} IS NULL`, // deleted_at IS NULL (no value needed)
|
|
497
|
+
]);
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
Values can also be embedded directly in the template. The `sql` tag automatically extracts them as parameterized values:
|
|
465
501
|
|
|
466
|
-
|
|
467
|
-
await User.find([
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
502
|
+
```typescript
|
|
503
|
+
await User.find([
|
|
504
|
+
sql`${User.age} > ${18}`,
|
|
505
|
+
sql`${User.name} LIKE ${'%test%'}`,
|
|
506
|
+
sql`${User.deleted_at} IS NULL`,
|
|
507
|
+
]);
|
|
508
|
+
```
|
|
471
509
|
|
|
472
|
-
|
|
473
|
-
await User.find([[`${User.deleted_at} IS NULL`]]);
|
|
510
|
+
### OR Conditions and ORDER BY
|
|
474
511
|
|
|
475
|
-
|
|
512
|
+
```typescript
|
|
476
513
|
await User.find([
|
|
477
514
|
[User.is_active, true],
|
|
478
515
|
User.or(
|
|
479
516
|
[[User.role, 'admin']],
|
|
480
517
|
[[User.role, 'moderator']],
|
|
481
518
|
),
|
|
482
|
-
]);
|
|
483
|
-
|
|
484
|
-
// ORDER BY
|
|
485
|
-
await User.find([[User.is_active, true]], {
|
|
486
|
-
order: User.created_at.desc()
|
|
487
|
-
});
|
|
519
|
+
], { order: User.created_at.desc() });
|
|
488
520
|
```
|
|
489
521
|
|
|
490
522
|
> **ESLint Plugin:** Use `litedbmodel/eslint-plugin` to catch mistakes that TypeScript cannot:
|
|
@@ -580,7 +612,7 @@ Works for conditions too:
|
|
|
580
612
|
```typescript
|
|
581
613
|
await User.find([
|
|
582
614
|
[User.deleted, false],
|
|
583
|
-
[`${User.name} LIKE ?`,
|
|
615
|
+
query.name ? [sql`${User.name} LIKE ?`, `%${query.name}%`] : SKIP,
|
|
584
616
|
[User.status, query.status ?? SKIP],
|
|
585
617
|
]);
|
|
586
618
|
```
|
|
@@ -965,20 +997,19 @@ const rankings = await UserRanking.query(`
|
|
|
965
997
|
|
|
966
998
|
### DBModel.execute() - Non-Model Operations
|
|
967
999
|
|
|
968
|
-
Use `execute()` for DDL, maintenance, and operations that don't return model instances
|
|
1000
|
+
Use `execute()` for DDL, maintenance, and operations that don't return model instances.
|
|
1001
|
+
Accepts either raw SQL strings or `sql` tagged templates:
|
|
969
1002
|
|
|
970
1003
|
```typescript
|
|
971
|
-
|
|
972
|
-
await DBModel.execute('REFRESH MATERIALIZED VIEW CONCURRENTLY monthly_sales_summary');
|
|
1004
|
+
import { sql } from 'litedbmodel';
|
|
973
1005
|
|
|
974
|
-
//
|
|
975
|
-
await DBModel.execute(
|
|
1006
|
+
// With sql tag — parameters are co-located
|
|
1007
|
+
await DBModel.execute(sql`SELECT process_daily_aggregates(${targetDate})`);
|
|
1008
|
+
await DBModel.execute(sql`SELECT pg_notify(${'events'}, ${JSON.stringify(payload)})`);
|
|
976
1009
|
|
|
977
|
-
//
|
|
978
|
-
await DBModel.execute('
|
|
979
|
-
await DBModel.execute('
|
|
980
|
-
|
|
981
|
-
// DDL operations
|
|
1010
|
+
// Raw SQL strings for DDL and maintenance
|
|
1011
|
+
await DBModel.execute('REFRESH MATERIALIZED VIEW CONCURRENTLY monthly_sales_summary');
|
|
1012
|
+
await DBModel.execute('VACUUM ANALYZE orders');
|
|
982
1013
|
await DBModel.execute('CREATE INDEX CONCURRENTLY idx_orders_date ON orders(created_at)');
|
|
983
1014
|
```
|
|
984
1015
|
|
|
@@ -1030,8 +1061,8 @@ export const UserStats = UserStatsModel.asModel();
|
|
|
1030
1061
|
|
|
1031
1062
|
// Use find() with additional conditions
|
|
1032
1063
|
const topContributors = await UserStats.find([
|
|
1033
|
-
[`${UserStats.post_count} >= ?`, 10],
|
|
1034
|
-
[`${UserStats.last_activity} > ?`, lastWeek],
|
|
1064
|
+
[sql`${UserStats.post_count} >= ?`, 10],
|
|
1065
|
+
[sql`${UserStats.last_activity} > ?`, lastWeek],
|
|
1035
1066
|
], { order: UserStats.post_count.desc(), limit: 100 });
|
|
1036
1067
|
```
|
|
1037
1068
|
|
|
@@ -1059,11 +1090,13 @@ ORDER BY post_count DESC
|
|
|
1059
1090
|
LIMIT 100
|
|
1060
1091
|
```
|
|
1061
1092
|
|
|
1062
|
-
### Parameterized Queries
|
|
1093
|
+
### Parameterized Queries with `sql` Tag
|
|
1063
1094
|
|
|
1064
|
-
For queries that need runtime parameters,
|
|
1095
|
+
For queries that need runtime parameters, use the `sql` tagged template with `withQuery()`. Parameters are co-located with SQL — no manual `$1`/`$2` numbering or DB dialect differences:
|
|
1065
1096
|
|
|
1066
1097
|
```typescript
|
|
1098
|
+
import { sql } from 'litedbmodel';
|
|
1099
|
+
|
|
1067
1100
|
@model('sales_report')
|
|
1068
1101
|
class SalesReportModel extends DBModel {
|
|
1069
1102
|
@column() product_id?: number;
|
|
@@ -1072,72 +1105,49 @@ class SalesReportModel extends DBModel {
|
|
|
1072
1105
|
@column() total_revenue?: number;
|
|
1073
1106
|
@column() order_count?: number;
|
|
1074
1107
|
|
|
1075
|
-
// Factory method - encapsulates query construction
|
|
1076
1108
|
static forPeriod(startDate: string, endDate: string) {
|
|
1077
|
-
return this.withQuery(
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
`,
|
|
1093
|
-
params: [startDate, endDate],
|
|
1094
|
-
});
|
|
1109
|
+
return this.withQuery(sql`
|
|
1110
|
+
SELECT
|
|
1111
|
+
p.id AS product_id,
|
|
1112
|
+
p.name AS product_name,
|
|
1113
|
+
SUM(oi.quantity) AS total_quantity,
|
|
1114
|
+
SUM(oi.quantity * oi.unit_price) AS total_revenue,
|
|
1115
|
+
COUNT(DISTINCT o.id) AS order_count
|
|
1116
|
+
FROM products p
|
|
1117
|
+
INNER JOIN order_items oi ON p.id = oi.product_id
|
|
1118
|
+
INNER JOIN orders o ON oi.order_id = o.id
|
|
1119
|
+
WHERE o.status = 'completed'
|
|
1120
|
+
AND o.created_at >= ${startDate}
|
|
1121
|
+
AND o.created_at < ${endDate}
|
|
1122
|
+
GROUP BY p.id, p.name
|
|
1123
|
+
`);
|
|
1095
1124
|
}
|
|
1096
1125
|
}
|
|
1097
1126
|
export const SalesReport = SalesReportModel.asModel();
|
|
1098
1127
|
|
|
1099
|
-
// Usage
|
|
1128
|
+
// Usage
|
|
1100
1129
|
const Q1Report = SalesReport.forPeriod('2024-01-01', '2024-04-01');
|
|
1101
1130
|
const topProducts = await Q1Report.find([
|
|
1102
|
-
[`${SalesReport.total_revenue} > ?`, 10000],
|
|
1131
|
+
[sql`${SalesReport.total_revenue} > ?`, 10000],
|
|
1103
1132
|
], { order: SalesReport.total_revenue.desc() });
|
|
1104
1133
|
```
|
|
1105
1134
|
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
```sql
|
|
1109
|
-
WITH sales_report AS (
|
|
1110
|
-
SELECT
|
|
1111
|
-
p.id AS product_id,
|
|
1112
|
-
p.name AS product_name,
|
|
1113
|
-
SUM(oi.quantity) AS total_quantity,
|
|
1114
|
-
SUM(oi.quantity * oi.unit_price) AS total_revenue,
|
|
1115
|
-
COUNT(DISTINCT o.id) AS order_count
|
|
1116
|
-
FROM products p
|
|
1117
|
-
INNER JOIN order_items oi ON p.id = oi.product_id
|
|
1118
|
-
INNER JOIN orders o ON oi.order_id = o.id
|
|
1119
|
-
WHERE o.status = 'completed'
|
|
1120
|
-
AND o.created_at >= $1
|
|
1121
|
-
AND o.created_at < $2
|
|
1122
|
-
GROUP BY p.id, p.name
|
|
1123
|
-
)
|
|
1124
|
-
SELECT * FROM sales_report
|
|
1125
|
-
WHERE total_revenue > $3
|
|
1126
|
-
ORDER BY total_revenue DESC
|
|
1127
|
-
```
|
|
1135
|
+
The `sql` tag automatically converts interpolated values to `?` placeholders and extracts them as parameters. The internal dialect conversion (`?` → `$1`/`$2` for PostgreSQL) is handled transparently.
|
|
1128
1136
|
|
|
1129
|
-
### Type-Safe Column References
|
|
1137
|
+
### Type-Safe Column References in QUERY
|
|
1130
1138
|
|
|
1131
|
-
Use Column
|
|
1139
|
+
Use the `sql` tag with Column and `TABLE_NAME` references for refactoring safety. Columns and table names are embedded directly in SQL; they are not parameterized:
|
|
1132
1140
|
|
|
1133
1141
|
```typescript
|
|
1142
|
+
import { sql } from 'litedbmodel';
|
|
1143
|
+
|
|
1134
1144
|
@model('user_activity')
|
|
1135
1145
|
class UserActivityModel extends DBModel {
|
|
1136
1146
|
@column() user_id?: number;
|
|
1137
1147
|
@column() user_name?: string;
|
|
1138
1148
|
@column() total_posts?: number;
|
|
1139
1149
|
|
|
1140
|
-
static QUERY = `
|
|
1150
|
+
static QUERY = sql`
|
|
1141
1151
|
SELECT
|
|
1142
1152
|
${User.id} AS user_id,
|
|
1143
1153
|
${User.name} AS user_name,
|
package/dist/Column.d.ts
CHANGED
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
* ```
|
|
19
19
|
*/
|
|
20
20
|
import { DBNotNullValue, DBCast, DBCastArray } from './DBValues';
|
|
21
|
+
import { type SqlFragment, type SqlTypedFragment, type SqlCondition } from './SqlFragment';
|
|
21
22
|
/**
|
|
22
23
|
* Sort direction for ORDER BY
|
|
23
24
|
* @internal
|
|
@@ -419,6 +420,18 @@ export declare class Conditions<Model> {
|
|
|
419
420
|
* Add a raw condition with template literal (e.g., `${User.age} > ?`).
|
|
420
421
|
*/
|
|
421
422
|
addRaw(condition: string, value?: unknown): this;
|
|
423
|
+
/**
|
|
424
|
+
* Add a type-safe sql-tagged condition.
|
|
425
|
+
*
|
|
426
|
+
* @example
|
|
427
|
+
* ```typescript
|
|
428
|
+
* const where = new Conditions<User>();
|
|
429
|
+
* where.addSql(sql`${User.age} > ?`, 18);
|
|
430
|
+
* where.addSql(sql`${User.deleted_at} IS NULL`);
|
|
431
|
+
* ```
|
|
432
|
+
*/
|
|
433
|
+
addSql<V>(fragment: SqlTypedFragment<V, Model>, value: V): this;
|
|
434
|
+
addSql(fragment: SqlTypedFragment<any, Model>): this;
|
|
422
435
|
/**
|
|
423
436
|
* Add an OR condition group.
|
|
424
437
|
*/
|
|
@@ -505,7 +518,7 @@ export declare function pairsToRecord(pairs: readonly (readonly [Column<any, any
|
|
|
505
518
|
* @deprecated Use CondOf<M> for type-safe conditions
|
|
506
519
|
* @internal
|
|
507
520
|
*/
|
|
508
|
-
export type Cond = readonly [Column<any, any>, unknown] | readonly [Column<any, any>[], unknown[][]] | readonly [string, unknown] | readonly [string];
|
|
521
|
+
export type Cond = readonly [Column<any, any>, unknown] | readonly [Column<any, any>[], unknown[][]] | readonly [SqlTypedFragment<any, any>, unknown] | readonly [string, unknown] | readonly [string];
|
|
509
522
|
/**
|
|
510
523
|
* Extract instance type from a model class type.
|
|
511
524
|
* If M is already an instance type, returns M unchanged.
|
|
@@ -530,7 +543,7 @@ type ModelInstance<M> = M extends new (...args: any[]) => infer I ? I : M;
|
|
|
530
543
|
*
|
|
531
544
|
* @internal
|
|
532
545
|
*/
|
|
533
|
-
export type CondOf<M> = readonly [Column<any, ModelInstance<M>>, unknown] | readonly [Column<any, ModelInstance<M>>[], unknown[][]] | readonly [string, unknown] | readonly [string];
|
|
546
|
+
export type CondOf<M> = readonly [Column<any, ModelInstance<M>>, unknown] | readonly [Column<any, ModelInstance<M>>[], unknown[][]] | readonly [SqlTypedFragment<any, ModelInstance<M>>, unknown] | readonly [string, unknown] | readonly [string];
|
|
534
547
|
/**
|
|
535
548
|
* OR condition marker (legacy)
|
|
536
549
|
* @deprecated Use OrCondOf<M> for type-safe OR conditions
|
|
@@ -554,13 +567,13 @@ export interface OrCondOf<M> {
|
|
|
554
567
|
* @deprecated Use CondElementOf<M> for type-safe conditions
|
|
555
568
|
* @internal
|
|
556
569
|
*/
|
|
557
|
-
export type CondElement = Cond | OrCond | SkipType;
|
|
570
|
+
export type CondElement = Cond | OrCond | SkipType | SqlCondition | SqlTypedFragment | SqlFragment;
|
|
558
571
|
/**
|
|
559
572
|
* Type-safe condition element for a specific model.
|
|
560
573
|
* @typeParam M - The model class type
|
|
561
574
|
* @internal
|
|
562
575
|
*/
|
|
563
|
-
export type CondElementOf<M> = CondOf<M> | OrCondOf<M> | SkipType;
|
|
576
|
+
export type CondElementOf<M> = CondOf<M> | OrCondOf<M> | SkipType | SqlCondition<ModelInstance<M>> | SqlTypedFragment<any, ModelInstance<M>> | SqlFragment;
|
|
564
577
|
/**
|
|
565
578
|
* Array of condition elements (legacy).
|
|
566
579
|
* @deprecated Use CondsOf<M> for type-safe conditions
|
|
@@ -596,11 +609,6 @@ export declare function createOrCond<M>(condGroups: readonly CondsOf<M>[]): OrCo
|
|
|
596
609
|
* @internal
|
|
597
610
|
*/
|
|
598
611
|
export declare function isOrCond(cond: CondElement | CondElementOf<any>): cond is OrCond | OrCondOf<any>;
|
|
599
|
-
/**
|
|
600
|
-
* Convert condition tuples to a ConditionObject.
|
|
601
|
-
* Handles regular conditions, OR conditions, and SKIP.
|
|
602
|
-
* @internal
|
|
603
|
-
*/
|
|
604
612
|
export declare function condsToRecord(conditions: Conds): Record<string, unknown>;
|
|
605
613
|
export {};
|
|
606
614
|
//# sourceMappingURL=Column.d.ts.map
|
package/dist/Column.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Column.d.ts","sourceRoot":"","sources":["../src/Column.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,cAAc,EAAa,MAAM,EAAE,WAAW,EAAW,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Column.d.ts","sourceRoot":"","sources":["../src/Column.ts"],"names":[],"mappings":"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"}
|
package/dist/Column.js
CHANGED
|
@@ -30,6 +30,7 @@ exports.createOrCond = createOrCond;
|
|
|
30
30
|
exports.isOrCond = isOrCond;
|
|
31
31
|
exports.condsToRecord = condsToRecord;
|
|
32
32
|
const DBValues_1 = require("./DBValues");
|
|
33
|
+
const SqlFragment_1 = require("./SqlFragment");
|
|
33
34
|
/**
|
|
34
35
|
* Type-safe ORDER BY column reference.
|
|
35
36
|
* Returned by `Column.desc()`, `Column.asc()` methods.
|
|
@@ -367,6 +368,16 @@ class Conditions {
|
|
|
367
368
|
}
|
|
368
369
|
return this;
|
|
369
370
|
}
|
|
371
|
+
addSql(fragment, value) {
|
|
372
|
+
if (value !== undefined) {
|
|
373
|
+
this.conds.push([fragment, value]);
|
|
374
|
+
}
|
|
375
|
+
else {
|
|
376
|
+
// Value-free condition (IS NULL, etc.) — push as direct SqlTypedFragment
|
|
377
|
+
this.conds.push(fragment);
|
|
378
|
+
}
|
|
379
|
+
return this;
|
|
380
|
+
}
|
|
370
381
|
/**
|
|
371
382
|
* Add an OR condition group.
|
|
372
383
|
*/
|
|
@@ -459,9 +470,12 @@ function condToKeyValue(cond) {
|
|
|
459
470
|
const columns = keyOrCol;
|
|
460
471
|
const tuples = value;
|
|
461
472
|
const columnNames = columns.map(col => col.columnName);
|
|
462
|
-
// Use special key for tuple IN, the actual SQL is generated by dbTupleIn
|
|
463
473
|
return ['__tuple__', (0, DBValues_1.dbTupleIn)(columnNames, tuples)];
|
|
464
474
|
}
|
|
475
|
+
// Handle SqlTypedFragment tuple: [sql`${Col} > ?`, value]
|
|
476
|
+
if ((0, SqlFragment_1.isSqlTypedFragment)(keyOrCol)) {
|
|
477
|
+
return [keyOrCol.sql, value];
|
|
478
|
+
}
|
|
465
479
|
if (typeof keyOrCol === 'string') {
|
|
466
480
|
return [keyOrCol, value];
|
|
467
481
|
}
|
|
@@ -486,6 +500,21 @@ function condToKeyValue(cond) {
|
|
|
486
500
|
* Handles regular conditions, OR conditions, and SKIP.
|
|
487
501
|
* @internal
|
|
488
502
|
*/
|
|
503
|
+
/**
|
|
504
|
+
* Convert a SqlCondition/SqlFragment/SqlTypedFragment to key-value pair(s).
|
|
505
|
+
* @internal
|
|
506
|
+
*/
|
|
507
|
+
function sqlFragmentToKeyValue(frag) {
|
|
508
|
+
if (frag.params.length === 0) {
|
|
509
|
+
// Value-free condition (e.g., IS NULL)
|
|
510
|
+
return [frag.sql, true];
|
|
511
|
+
}
|
|
512
|
+
if (frag.params.length === 1) {
|
|
513
|
+
return [frag.sql, frag.params[0]];
|
|
514
|
+
}
|
|
515
|
+
// Multiple params (e.g., BETWEEN ? AND ?)
|
|
516
|
+
return [frag.sql, [...frag.params]];
|
|
517
|
+
}
|
|
489
518
|
function condsToRecord(conditions) {
|
|
490
519
|
const result = {};
|
|
491
520
|
for (const cond of conditions) {
|
|
@@ -494,15 +523,21 @@ function condsToRecord(conditions) {
|
|
|
494
523
|
continue;
|
|
495
524
|
}
|
|
496
525
|
if (isOrCond(cond)) {
|
|
497
|
-
// OR condition: convert each group and wrap with DBOrConditions
|
|
498
526
|
const orGroups = cond.conditions.map(group => condsToRecord(group));
|
|
499
|
-
// Use special key for OR conditions (will be processed by DBConditions)
|
|
500
527
|
result['__or__'] = orGroups;
|
|
501
528
|
}
|
|
529
|
+
else if ((0, SqlFragment_1.isAnySqlFragment)(cond)) {
|
|
530
|
+
// Direct SqlCondition / SqlFragment / SqlTypedFragment as condition element
|
|
531
|
+
const kv = sqlFragmentToKeyValue(cond);
|
|
532
|
+
if (kv !== null) {
|
|
533
|
+
const [key, value] = kv;
|
|
534
|
+
result[key] = value;
|
|
535
|
+
}
|
|
536
|
+
}
|
|
502
537
|
else {
|
|
503
538
|
const kv = condToKeyValue(cond);
|
|
504
539
|
if (kv === null)
|
|
505
|
-
continue;
|
|
540
|
+
continue;
|
|
506
541
|
const [key, value] = kv;
|
|
507
542
|
result[key] = value;
|
|
508
543
|
}
|
package/dist/Column.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Column.js","sourceRoot":"","sources":["../src/Column.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Column.js","sourceRoot":"","sources":["../src/Column.ts"],"names":[],"mappings":"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"}
|
package/dist/DBModel.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { type ConditionObject } from './DBConditions';
|
|
|
7
7
|
import { DBHandler, type DBConfig, type DBConnection } from './DBHandler';
|
|
8
8
|
import type { SelectOptions, InsertOptions, UpdateOptions, DeleteOptions, UpdateManyOptions, TransactionOptions, LimitConfig, DBConfigOptions, PkeyResult } from './types';
|
|
9
9
|
import { type Column, type OrderSpec, type CVs, type Conds, type CondsOf, type OrCondOf, type ColumnsOf } from './Column';
|
|
10
|
+
import { type SqlFragment, type SqlCondition, type SqlTypedFragment } from './SqlFragment';
|
|
10
11
|
import { type MiddlewareClass, type MiddlewareConfig, type CreatedMiddlewareClass, type ExecuteResult } from './Middleware';
|
|
11
12
|
import { type KeyPair, type CompositeKeyPairs } from './decorators';
|
|
12
13
|
import { LazyRelationContext, type RelationType } from './LazyRelation';
|
|
@@ -124,7 +125,7 @@ export declare abstract class DBModel {
|
|
|
124
125
|
* `;
|
|
125
126
|
* ```
|
|
126
127
|
*/
|
|
127
|
-
static QUERY: string | null;
|
|
128
|
+
static QUERY: string | SqlFragment | SqlCondition | SqlTypedFragment | null;
|
|
128
129
|
/**
|
|
129
130
|
* Query parameters for QUERY (set via withQuery())
|
|
130
131
|
* @internal
|
|
@@ -573,6 +574,20 @@ export declare abstract class DBModel {
|
|
|
573
574
|
* @internal
|
|
574
575
|
*/
|
|
575
576
|
static getCTEAlias(): string;
|
|
577
|
+
/**
|
|
578
|
+
* Resolve QUERY to a SQL string and params.
|
|
579
|
+
* Handles both string and SqlFragment QUERY types.
|
|
580
|
+
* @internal
|
|
581
|
+
*/
|
|
582
|
+
protected static _resolveQuery(): {
|
|
583
|
+
sql: string;
|
|
584
|
+
params: unknown[];
|
|
585
|
+
} | null;
|
|
586
|
+
/**
|
|
587
|
+
* Get the QUERY SQL string (resolves SqlFragment if needed).
|
|
588
|
+
* @internal
|
|
589
|
+
*/
|
|
590
|
+
protected static _getQuerySQL(): string | null;
|
|
576
591
|
/**
|
|
577
592
|
* Get query parameters (set via withQuery()).
|
|
578
593
|
* @internal
|
|
@@ -585,31 +600,32 @@ export declare abstract class DBModel {
|
|
|
585
600
|
/**
|
|
586
601
|
* Create a new model class bound to specific query parameters.
|
|
587
602
|
* Used for parameterized query-based models.
|
|
603
|
+
* Accepts either `{ sql, params }` object or a `SqlFragment` from `sql` tagged template.
|
|
588
604
|
*
|
|
589
|
-
* @param queryConfig - Query configuration with sql and params
|
|
605
|
+
* @param queryConfig - Query configuration with sql and params, or SqlFragment
|
|
590
606
|
* @returns A new model class with bound parameters
|
|
591
607
|
*
|
|
592
608
|
* @example
|
|
593
609
|
* ```typescript
|
|
594
|
-
*
|
|
595
|
-
* static QUERY = '...'; // Base query template
|
|
610
|
+
* import { sql } from 'litedbmodel';
|
|
596
611
|
*
|
|
612
|
+
* class SalesReportModel extends DBModel {
|
|
597
613
|
* static forPeriod(startDate: string, endDate: string) {
|
|
598
|
-
* return this.withQuery(
|
|
599
|
-
*
|
|
600
|
-
*
|
|
601
|
-
*
|
|
614
|
+
* return this.withQuery(sql`
|
|
615
|
+
* SELECT p.id, SUM(oi.quantity) AS total
|
|
616
|
+
* FROM products p
|
|
617
|
+
* JOIN order_items oi ON p.id = oi.product_id
|
|
618
|
+
* WHERE oi.created_at >= ${startDate} AND oi.created_at < ${endDate}
|
|
619
|
+
* GROUP BY p.id
|
|
620
|
+
* `);
|
|
602
621
|
* }
|
|
603
622
|
* }
|
|
604
|
-
*
|
|
605
|
-
* const Q1Report = SalesReport.forPeriod('2024-01-01', '2024-04-01');
|
|
606
|
-
* const results = await Q1Report.find([...]);
|
|
607
623
|
* ```
|
|
608
624
|
*/
|
|
609
625
|
static withQuery<T extends typeof DBModel>(this: T, queryConfig: {
|
|
610
626
|
sql: string;
|
|
611
627
|
params?: unknown[];
|
|
612
|
-
}): T;
|
|
628
|
+
} | SqlFragment | SqlCondition | SqlTypedFragment): T;
|
|
613
629
|
/**
|
|
614
630
|
* Get table name for UPDATE/DELETE queries.
|
|
615
631
|
* Query-based models cannot be updated/deleted directly.
|
|
@@ -969,22 +985,29 @@ export declare abstract class DBModel {
|
|
|
969
985
|
static updateMany<T extends typeof DBModel>(this: T, rows: readonly (readonly (readonly [Column<any, any>, any])[])[], options: UpdateManyOptions): Promise<PkeyResult | null>;
|
|
970
986
|
/**
|
|
971
987
|
* Execute raw SQL query.
|
|
988
|
+
* Accepts either a SQL string with params, or a `SqlFragment` from `sql` tagged template.
|
|
972
989
|
*
|
|
973
|
-
* @param sql - SQL query
|
|
974
|
-
* @param params - Query parameters
|
|
990
|
+
* @param sql - SQL query string or SqlFragment
|
|
991
|
+
* @param params - Query parameters (ignored when SqlFragment is passed)
|
|
975
992
|
* @returns QueryResult with rows, rowCount
|
|
976
993
|
*
|
|
977
994
|
* @example
|
|
978
995
|
* ```typescript
|
|
996
|
+
* // Traditional
|
|
979
997
|
* const result = await DBModel.execute(
|
|
980
998
|
* 'SELECT * FROM users WHERE id = $1',
|
|
981
999
|
* [1]
|
|
982
1000
|
* );
|
|
983
|
-
*
|
|
984
|
-
*
|
|
1001
|
+
*
|
|
1002
|
+
* // With sql tag
|
|
1003
|
+
* import { sql } from 'litedbmodel';
|
|
1004
|
+
* const result = await DBModel.execute(
|
|
1005
|
+
* sql`SELECT process_daily_aggregates(${targetDate})`
|
|
1006
|
+
* );
|
|
985
1007
|
* ```
|
|
986
1008
|
*/
|
|
987
1009
|
static execute(sql: string, params?: unknown[]): Promise<ExecuteResult>;
|
|
1010
|
+
static execute(fragment: SqlFragment | SqlCondition | SqlTypedFragment): Promise<ExecuteResult>;
|
|
988
1011
|
/**
|
|
989
1012
|
* Execute raw SQL and return model instances.
|
|
990
1013
|
* The SQL should return columns matching the model's properties.
|