litedbmodel 0.22.2 → 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 +114 -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/decorators.d.ts.map +1 -1
- package/dist/decorators.js +5 -1
- package/dist/decorators.js.map +1 -1
- package/dist/drivers/PostgresSqlBuilder.d.ts.map +1 -1
- package/dist/drivers/PostgresSqlBuilder.js +2 -0
- package/dist/drivers/PostgresSqlBuilder.js.map +1 -1
- 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
|
|
@@ -216,6 +227,31 @@ Use explicit type decorators when auto-inference isn't sufficient:
|
|
|
216
227
|
@column.json<Settings>() settings?: Settings; // JSON with type
|
|
217
228
|
```
|
|
218
229
|
|
|
230
|
+
### Date vs DateTime: Important Distinction
|
|
231
|
+
|
|
232
|
+
TypeScript has only one `Date` type, but databases distinguish between:
|
|
233
|
+
|
|
234
|
+
| DB Column Type | Decorator | Example |
|
|
235
|
+
|----------------|-----------|---------|
|
|
236
|
+
| `TIMESTAMP` / `DATETIME` | `@column()` or `@column.datetime()` | `created_at`, `updated_at` |
|
|
237
|
+
| `DATE` | `@column.date()` | `birth_date`, `settlement_date` |
|
|
238
|
+
|
|
239
|
+
**⚠️ Important**: `@column()` with `Date` type is treated as `TIMESTAMP/DATETIME`. For date-only columns (no time component), you **must** use `@column.date()` explicitly.
|
|
240
|
+
|
|
241
|
+
```typescript
|
|
242
|
+
// ✅ Correct usage
|
|
243
|
+
@column() created_at?: Date; // TIMESTAMP column (datetime)
|
|
244
|
+
@column.datetime() updated_at?: Date; // TIMESTAMP column (explicit)
|
|
245
|
+
@column.date() settlement_date?: Date; // DATE column (date only)
|
|
246
|
+
|
|
247
|
+
// ❌ Wrong: will cause type mismatch errors
|
|
248
|
+
@column() settlement_date?: Date; // Treated as TIMESTAMP, not DATE!
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
**Serialization behavior** (PostgreSQL):
|
|
252
|
+
- `@column()` / `@column.datetime()` → ISO 8601 UTC: `2024-06-15T10:30:00.000Z`
|
|
253
|
+
- `@column.date()` → UTC date only: `2024-06-15`
|
|
254
|
+
|
|
219
255
|
---
|
|
220
256
|
|
|
221
257
|
## CRUD Operations
|
|
@@ -432,34 +468,55 @@ await User.updateMany([
|
|
|
432
468
|
|
|
433
469
|
## Type-Safe Conditions
|
|
434
470
|
|
|
435
|
-
|
|
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:
|
|
436
474
|
|
|
437
475
|
```typescript
|
|
438
|
-
|
|
439
|
-
|
|
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.)
|
|
440
484
|
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
await User.find([[`${User.age} BETWEEN ? AND ?`, [18, 65]]]);
|
|
444
|
-
await User.find([[`${User.name} LIKE ?`, '%test%']]);
|
|
445
|
-
await User.find([[`${User.status} IN (?)`, ['a', 'b']]]);
|
|
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.
|
|
446
487
|
|
|
447
|
-
|
|
448
|
-
|
|
488
|
+
```typescript
|
|
489
|
+
import { sql } from 'litedbmodel';
|
|
449
490
|
|
|
450
|
-
|
|
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:
|
|
501
|
+
|
|
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
|
+
```
|
|
509
|
+
|
|
510
|
+
### OR Conditions and ORDER BY
|
|
511
|
+
|
|
512
|
+
```typescript
|
|
451
513
|
await User.find([
|
|
452
514
|
[User.is_active, true],
|
|
453
515
|
User.or(
|
|
454
516
|
[[User.role, 'admin']],
|
|
455
517
|
[[User.role, 'moderator']],
|
|
456
518
|
),
|
|
457
|
-
]);
|
|
458
|
-
|
|
459
|
-
// ORDER BY
|
|
460
|
-
await User.find([[User.is_active, true]], {
|
|
461
|
-
order: User.created_at.desc()
|
|
462
|
-
});
|
|
519
|
+
], { order: User.created_at.desc() });
|
|
463
520
|
```
|
|
464
521
|
|
|
465
522
|
> **ESLint Plugin:** Use `litedbmodel/eslint-plugin` to catch mistakes that TypeScript cannot:
|
|
@@ -555,7 +612,7 @@ Works for conditions too:
|
|
|
555
612
|
```typescript
|
|
556
613
|
await User.find([
|
|
557
614
|
[User.deleted, false],
|
|
558
|
-
[`${User.name} LIKE ?`,
|
|
615
|
+
query.name ? [sql`${User.name} LIKE ?`, `%${query.name}%`] : SKIP,
|
|
559
616
|
[User.status, query.status ?? SKIP],
|
|
560
617
|
]);
|
|
561
618
|
```
|
|
@@ -940,20 +997,19 @@ const rankings = await UserRanking.query(`
|
|
|
940
997
|
|
|
941
998
|
### DBModel.execute() - Non-Model Operations
|
|
942
999
|
|
|
943
|
-
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:
|
|
944
1002
|
|
|
945
1003
|
```typescript
|
|
946
|
-
|
|
947
|
-
await DBModel.execute('REFRESH MATERIALIZED VIEW CONCURRENTLY monthly_sales_summary');
|
|
948
|
-
|
|
949
|
-
// Database maintenance
|
|
950
|
-
await DBModel.execute('VACUUM ANALYZE orders');
|
|
1004
|
+
import { sql } from 'litedbmodel';
|
|
951
1005
|
|
|
952
|
-
//
|
|
953
|
-
await DBModel.execute(
|
|
954
|
-
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)})`);
|
|
955
1009
|
|
|
956
|
-
// DDL
|
|
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');
|
|
957
1013
|
await DBModel.execute('CREATE INDEX CONCURRENTLY idx_orders_date ON orders(created_at)');
|
|
958
1014
|
```
|
|
959
1015
|
|
|
@@ -1005,8 +1061,8 @@ export const UserStats = UserStatsModel.asModel();
|
|
|
1005
1061
|
|
|
1006
1062
|
// Use find() with additional conditions
|
|
1007
1063
|
const topContributors = await UserStats.find([
|
|
1008
|
-
[`${UserStats.post_count} >= ?`, 10],
|
|
1009
|
-
[`${UserStats.last_activity} > ?`, lastWeek],
|
|
1064
|
+
[sql`${UserStats.post_count} >= ?`, 10],
|
|
1065
|
+
[sql`${UserStats.last_activity} > ?`, lastWeek],
|
|
1010
1066
|
], { order: UserStats.post_count.desc(), limit: 100 });
|
|
1011
1067
|
```
|
|
1012
1068
|
|
|
@@ -1034,11 +1090,13 @@ ORDER BY post_count DESC
|
|
|
1034
1090
|
LIMIT 100
|
|
1035
1091
|
```
|
|
1036
1092
|
|
|
1037
|
-
### Parameterized Queries
|
|
1093
|
+
### Parameterized Queries with `sql` Tag
|
|
1038
1094
|
|
|
1039
|
-
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:
|
|
1040
1096
|
|
|
1041
1097
|
```typescript
|
|
1098
|
+
import { sql } from 'litedbmodel';
|
|
1099
|
+
|
|
1042
1100
|
@model('sales_report')
|
|
1043
1101
|
class SalesReportModel extends DBModel {
|
|
1044
1102
|
@column() product_id?: number;
|
|
@@ -1047,72 +1105,49 @@ class SalesReportModel extends DBModel {
|
|
|
1047
1105
|
@column() total_revenue?: number;
|
|
1048
1106
|
@column() order_count?: number;
|
|
1049
1107
|
|
|
1050
|
-
// Factory method - encapsulates query construction
|
|
1051
1108
|
static forPeriod(startDate: string, endDate: string) {
|
|
1052
|
-
return this.withQuery(
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
`,
|
|
1068
|
-
params: [startDate, endDate],
|
|
1069
|
-
});
|
|
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
|
+
`);
|
|
1070
1124
|
}
|
|
1071
1125
|
}
|
|
1072
1126
|
export const SalesReport = SalesReportModel.asModel();
|
|
1073
1127
|
|
|
1074
|
-
// Usage
|
|
1128
|
+
// Usage
|
|
1075
1129
|
const Q1Report = SalesReport.forPeriod('2024-01-01', '2024-04-01');
|
|
1076
1130
|
const topProducts = await Q1Report.find([
|
|
1077
|
-
[`${SalesReport.total_revenue} > ?`, 10000],
|
|
1131
|
+
[sql`${SalesReport.total_revenue} > ?`, 10000],
|
|
1078
1132
|
], { order: SalesReport.total_revenue.desc() });
|
|
1079
1133
|
```
|
|
1080
1134
|
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
```sql
|
|
1084
|
-
WITH sales_report AS (
|
|
1085
|
-
SELECT
|
|
1086
|
-
p.id AS product_id,
|
|
1087
|
-
p.name AS product_name,
|
|
1088
|
-
SUM(oi.quantity) AS total_quantity,
|
|
1089
|
-
SUM(oi.quantity * oi.unit_price) AS total_revenue,
|
|
1090
|
-
COUNT(DISTINCT o.id) AS order_count
|
|
1091
|
-
FROM products p
|
|
1092
|
-
INNER JOIN order_items oi ON p.id = oi.product_id
|
|
1093
|
-
INNER JOIN orders o ON oi.order_id = o.id
|
|
1094
|
-
WHERE o.status = 'completed'
|
|
1095
|
-
AND o.created_at >= $1
|
|
1096
|
-
AND o.created_at < $2
|
|
1097
|
-
GROUP BY p.id, p.name
|
|
1098
|
-
)
|
|
1099
|
-
SELECT * FROM sales_report
|
|
1100
|
-
WHERE total_revenue > $3
|
|
1101
|
-
ORDER BY total_revenue DESC
|
|
1102
|
-
```
|
|
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.
|
|
1103
1136
|
|
|
1104
|
-
### Type-Safe Column References
|
|
1137
|
+
### Type-Safe Column References in QUERY
|
|
1105
1138
|
|
|
1106
|
-
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:
|
|
1107
1140
|
|
|
1108
1141
|
```typescript
|
|
1142
|
+
import { sql } from 'litedbmodel';
|
|
1143
|
+
|
|
1109
1144
|
@model('user_activity')
|
|
1110
1145
|
class UserActivityModel extends DBModel {
|
|
1111
1146
|
@column() user_id?: number;
|
|
1112
1147
|
@column() user_name?: string;
|
|
1113
1148
|
@column() total_posts?: number;
|
|
1114
1149
|
|
|
1115
|
-
static QUERY = `
|
|
1150
|
+
static QUERY = sql`
|
|
1116
1151
|
SELECT
|
|
1117
1152
|
${User.id} AS user_id,
|
|
1118
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.
|