rado 0.3.4 → 0.3.6

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 (95) hide show
  1. package/README.md +277 -277
  2. package/dist/driver/better-sqlite3.d.ts +1 -0
  3. package/dist/driver/better-sqlite3.js +3 -0
  4. package/dist/driver/bun-sqlite.d.ts +1 -0
  5. package/dist/driver/bun-sqlite.js +3 -0
  6. package/dist/driver/sql.js.d.ts +1 -0
  7. package/dist/driver/sql.js.js +3 -0
  8. package/dist/driver/sqlite3.d.ts +1 -0
  9. package/dist/driver/sqlite3.js +11 -0
  10. package/dist/lib/Driver.d.ts +3 -0
  11. package/dist/lib/Driver.js +3 -0
  12. package/dist/lib/Formatter.js +2 -2
  13. package/package.json +74 -74
  14. package/dist/define/CTE.d.ts +0 -2
  15. package/dist/define/CTE.js +0 -51
  16. package/dist/define/Cursor.d.ts +0 -108
  17. package/dist/define/Cursor.js +0 -338
  18. package/dist/define/Update.d.ts +0 -4
  19. package/dist/define/Update.js +0 -0
  20. package/dist/define/query/Batch.d.ts +0 -7
  21. package/dist/define/query/Batch.js +0 -17
  22. package/dist/define/query/CreateTable.d.ts +0 -6
  23. package/dist/define/query/CreateTable.js +0 -11
  24. package/dist/define/query/Delete.d.ts +0 -11
  25. package/dist/define/query/Delete.js +0 -18
  26. package/dist/define/query/Insert.d.ts +0 -22
  27. package/dist/define/query/Insert.js +0 -47
  28. package/dist/define/query/Select.d.ts +0 -39
  29. package/dist/define/query/Select.js +0 -170
  30. package/dist/define/query/TableSelect.d.ts +0 -28
  31. package/dist/define/query/TableSelect.js +0 -79
  32. package/dist/define/query/Union.d.ts +0 -17
  33. package/dist/define/query/Union.js +0 -116
  34. package/dist/define/query/Update.d.ts +0 -12
  35. package/dist/define/query/Update.js +0 -18
  36. package/dist/deno/driver/better-sqlite3.js +0 -57
  37. package/dist/deno/driver/bun-sqlite.js +0 -69
  38. package/dist/deno/driver/sql.js.js +0 -72
  39. package/dist/deno/driver/sqlite3.js +0 -123
  40. package/dist/deno/index.js +0 -14
  41. package/dist/deno/lib/Driver.js +0 -330
  42. package/dist/deno/lib/Formatter.js +0 -715
  43. package/dist/deno/lib/Sanitizer.js +0 -0
  44. package/dist/deno/lib/SqlError.js +0 -11
  45. package/dist/deno/lib/Statement.js +0 -108
  46. package/dist/deno/sqlite/SqliteFormatter.js +0 -70
  47. package/dist/deno/sqlite/SqliteFunctions.js +0 -150
  48. package/dist/deno/sqlite/SqliteSchema.js +0 -47
  49. package/dist/deno/sqlite.js +0 -3
  50. package/dist/deno/util/Callable.js +0 -15
  51. package/dist/sqlite/index.d.ts +0 -2
  52. package/dist/sqlite/index.js +0 -3
  53. package/dist/src/driver/better-sqlite3.js +0 -49
  54. package/dist/src/driver/sql.js.js +0 -66
  55. package/dist/src/driver/sqlite3.js +0 -87
  56. package/dist/src/index.js +0 -24
  57. package/dist/src/lib/Column.js +0 -63
  58. package/dist/src/lib/Cursor.js +0 -231
  59. package/dist/src/lib/Driver.js +0 -316
  60. package/dist/src/lib/Expr.js +0 -284
  61. package/dist/src/lib/Fields.js +0 -0
  62. package/dist/src/lib/Formatter.js +0 -625
  63. package/dist/src/lib/Functions.js +0 -11
  64. package/dist/src/lib/Id.js +0 -0
  65. package/dist/src/lib/Index.js +0 -20
  66. package/dist/src/lib/Ops.js +0 -45
  67. package/dist/src/lib/OrderBy.js +0 -9
  68. package/dist/src/lib/Param.js +0 -27
  69. package/dist/src/lib/Query.js +0 -74
  70. package/dist/src/lib/Sanitizer.js +0 -0
  71. package/dist/src/lib/Schema.js +0 -67
  72. package/dist/src/lib/Selection.js +0 -7
  73. package/dist/src/lib/Statement.js +0 -103
  74. package/dist/src/lib/Table.js +0 -130
  75. package/dist/src/lib/Target.js +0 -37
  76. package/dist/src/lib/Update.js +0 -0
  77. package/dist/src/sqlite/SqliteFormatter.js +0 -67
  78. package/dist/src/sqlite/SqliteFunctions.js +0 -146
  79. package/dist/src/sqlite/SqliteSchema.js +0 -47
  80. package/dist/src/sqlite.js +0 -3
  81. package/dist/test/DbSuite.js +0 -28
  82. package/dist/test/TSTestTypes.js +0 -6
  83. package/dist/test/TestBasic.js +0 -172
  84. package/dist/test/TestExtend.js +0 -68
  85. package/dist/test/TestFts5.js +0 -34
  86. package/dist/test/TestFunctions.js +0 -28
  87. package/dist/test/TestJoins.js +0 -34
  88. package/dist/test/TestJson.js +0 -33
  89. package/dist/test/TestPrepare.js +0 -27
  90. package/dist/test/TestRawSql.js +0 -31
  91. package/dist/test/TestSchema.js +0 -69
  92. package/dist/test/TestSubQueries.js +0 -79
  93. package/dist/test/TestTransaction.js +0 -54
  94. package/dist/test/TestUpdate.js +0 -95
  95. package/dist/test/index.js +0 -14
@@ -1,17 +0,0 @@
1
- import { Query, QueryData } from "../Query.js";
2
- class Batch extends Query {
3
- constructor(queries) {
4
- super(new QueryData.Batch({ queries }));
5
- this.queries = queries;
6
- }
7
- next(cursor) {
8
- return new Query(
9
- new QueryData.Batch({
10
- queries: [...this[Query.Data].queries, cursor[Query.Data]]
11
- })
12
- );
13
- }
14
- }
15
- export {
16
- Batch
17
- };
@@ -1,6 +0,0 @@
1
- import { Query } from '../Query.js';
2
- import { TableData } from '../Table.js';
3
- export declare class CreateTable extends Query<void> {
4
- protected table: TableData;
5
- constructor(table: TableData);
6
- }
@@ -1,11 +0,0 @@
1
- import { Query } from "../Query.js";
2
- import { Schema } from "../Schema.js";
3
- class CreateTable extends Query {
4
- constructor(table) {
5
- super(Schema.create(table));
6
- this.table = table;
7
- }
8
- }
9
- export {
10
- CreateTable
11
- };
@@ -1,11 +0,0 @@
1
- import { EV } from '../Expr.js';
2
- import { Query, QueryData } from '../Query.js';
3
- export declare class Delete extends Query<{
4
- rowsAffected: number;
5
- }> {
6
- [Query.Data]: QueryData.Delete;
7
- constructor(query: QueryData.Delete);
8
- where(...where: Array<EV<boolean>>): Delete;
9
- take(limit: number | undefined): Delete;
10
- skip(offset: number | undefined): Delete;
11
- }
@@ -1,18 +0,0 @@
1
- import { Query } from "../Query.js";
2
- class Delete extends Query {
3
- constructor(query) {
4
- super(query);
5
- }
6
- where(...where) {
7
- return new Delete(this.addWhere(where));
8
- }
9
- take(limit) {
10
- return new Delete(this[Query.Data].with({ limit }));
11
- }
12
- skip(offset) {
13
- return new Delete(this[Query.Data].with({ offset }));
14
- }
15
- }
16
- export {
17
- Delete
18
- };
@@ -1,22 +0,0 @@
1
- import { Query, QueryData } from '../Query.js';
2
- import { Selection } from '../Selection.js';
3
- import { Table, TableData } from '../Table.js';
4
- import { Select } from './Select.js';
5
- export declare class Insert<T = {
6
- rowsAffected: number;
7
- }> extends Query<T> {
8
- [Query.Data]: QueryData.Insert;
9
- constructor(query: QueryData.Insert);
10
- returning<X extends Selection>(selection: X): Insert<Array<Selection.Infer<X>>>;
11
- }
12
- export declare class InsertOne<T> extends Query<T> {
13
- [Query.Data]: QueryData.Insert;
14
- constructor(query: QueryData.Insert);
15
- returning<X extends Selection>(selection: X): Insert<Selection.Infer<X>>;
16
- }
17
- export declare class InsertInto<Definition> {
18
- protected into: TableData;
19
- constructor(into: TableData);
20
- selection(query: Select<Table.Select<Definition>>): Insert;
21
- values(...data: Array<Table.Insert<Definition>>): Insert;
22
- }
@@ -1,47 +0,0 @@
1
- import { ExprData } from "../Expr.js";
2
- import { Query, QueryData } from "../Query.js";
3
- class Insert extends Query {
4
- constructor(query) {
5
- super(query);
6
- }
7
- returning(selection) {
8
- return new Insert(
9
- new QueryData.Insert({
10
- ...this[Query.Data],
11
- selection: ExprData.create(selection)
12
- })
13
- );
14
- }
15
- }
16
- class InsertOne extends Query {
17
- constructor(query) {
18
- super(query);
19
- }
20
- returning(selection) {
21
- return new Insert(
22
- new QueryData.Insert({
23
- ...this[Query.Data],
24
- selection: ExprData.create(selection),
25
- singleResult: true
26
- })
27
- );
28
- }
29
- }
30
- class InsertInto {
31
- constructor(into) {
32
- this.into = into;
33
- }
34
- selection(query) {
35
- return new Insert(
36
- new QueryData.Insert({ into: this.into, select: query[Query.Data] })
37
- );
38
- }
39
- values(...data) {
40
- return new Insert(new QueryData.Insert({ into: this.into, data }));
41
- }
42
- }
43
- export {
44
- Insert,
45
- InsertInto,
46
- InsertOne
47
- };
@@ -1,39 +0,0 @@
1
- import { EV, Expr } from '../Expr.js';
2
- import { OrderBy } from '../OrderBy.js';
3
- import { Query, QueryData } from '../Query.js';
4
- import { Selection } from '../Selection.js';
5
- import { Table } from '../Table.js';
6
- import { VirtualTable } from '../VirtualTable.js';
7
- import { Union } from './Union.js';
8
- export declare class Select<Row> extends Union<Row> {
9
- [Query.Data]: QueryData.Select;
10
- constructor(query: QueryData.Select);
11
- from(table: Table<any> | VirtualTable<any>): Select<Row>;
12
- leftJoin<C>(that: Table<C> | Select<C>, ...on: Array<EV<boolean>>): Select<Row>;
13
- innerJoin<C>(that: Table<C> | Select<C>, ...on: Array<EV<boolean>>): Select<Row>;
14
- select<X extends Selection>(selection: X): Select<Selection.Infer<X>>;
15
- count(): SelectFirst<number>;
16
- orderBy(...orderBy: Array<Expr<any> | OrderBy>): Select<Row>;
17
- groupBy(...groupBy: Array<Expr<any>>): Select<Row>;
18
- maybeFirst(): SelectFirst<Row | null>;
19
- first(): SelectFirst<Row>;
20
- where(...where: Array<EV<boolean>>): Select<Row>;
21
- take(limit: number | undefined): Select<Row>;
22
- skip(offset: number | undefined): Select<Row>;
23
- [Expr.ToExpr](): Expr<Row>;
24
- }
25
- export declare class SelectFirst<Row> extends Query<Row> {
26
- [Query.Data]: QueryData.Select;
27
- constructor(query: QueryData.Select);
28
- from(table: Table<any>): Select<Row>;
29
- leftJoin<C>(that: Table<C> | Select<C>, ...on: Array<EV<boolean>>): SelectFirst<Row>;
30
- innerJoin<C>(that: Table<C> | Select<C>, ...on: Array<EV<boolean>>): SelectFirst<Row>;
31
- select<X extends Selection>(selection: X): SelectFirst<Selection.Infer<X>>;
32
- orderBy(...orderBy: Array<OrderBy>): SelectFirst<Row>;
33
- groupBy(...groupBy: Array<Expr<any>>): SelectFirst<Row>;
34
- where(...where: Array<EV<boolean>>): SelectFirst<Row>;
35
- take(limit: number | undefined): SelectFirst<Row>;
36
- skip(offset: number | undefined): SelectFirst<Row>;
37
- all(): Select<Row>;
38
- [Expr.ToExpr](): Expr<Row>;
39
- }
@@ -1,170 +0,0 @@
1
- import { Expr, ExprData } from "../Expr.js";
2
- import { Functions } from "../Functions.js";
3
- import { Query } from "../Query.js";
4
- import { Table } from "../Table.js";
5
- import { Target } from "../Target.js";
6
- import { VirtualTable } from "../VirtualTable.js";
7
- import { Union } from "./Union.js";
8
- function joinTarget(joinType, query, to, on) {
9
- const toQuery = Query.isQuery(to) ? to[Query.Data] : void 0;
10
- const target = toQuery ? toQuery.from : new Target.Table(to[Table.Data]);
11
- if (!query.from || !target)
12
- throw new Error("No from clause");
13
- const conditions = [...on];
14
- if (toQuery) {
15
- const where = toQuery.where;
16
- if (where)
17
- conditions.push(new Expr(where));
18
- }
19
- return new Target.Join(
20
- query.from,
21
- target,
22
- joinType,
23
- Expr.and(...conditions)[Expr.Data]
24
- );
25
- }
26
- class Select extends Union {
27
- constructor(query) {
28
- super(query);
29
- }
30
- from(table) {
31
- const virtual = table[VirtualTable.Data];
32
- return new Select(
33
- this[Query.Data].with({ from: virtual?.target || new Target.Table(table) })
34
- );
35
- }
36
- leftJoin(that, ...on) {
37
- const query = this[Query.Data];
38
- return new Select(
39
- this[Query.Data].with({
40
- from: joinTarget("left", query, that, on)
41
- })
42
- );
43
- }
44
- innerJoin(that, ...on) {
45
- const query = this[Query.Data];
46
- return new Select(
47
- this[Query.Data].with({
48
- from: joinTarget("inner", query, that, on)
49
- })
50
- );
51
- }
52
- select(selection) {
53
- return new Select(
54
- this[Query.Data].with({
55
- selection: ExprData.create(selection)
56
- })
57
- );
58
- }
59
- count() {
60
- return new SelectFirst(
61
- this[Query.Data].with({
62
- selection: Functions.count()[Expr.Data],
63
- singleResult: true
64
- })
65
- );
66
- }
67
- orderBy(...orderBy) {
68
- return new Select(
69
- this[Query.Data].with({
70
- orderBy: orderBy.map((e) => {
71
- return Expr.isExpr(e) ? e.asc() : e;
72
- })
73
- })
74
- );
75
- }
76
- groupBy(...groupBy) {
77
- return new Select(
78
- this[Query.Data].with({
79
- groupBy: groupBy.map(ExprData.create)
80
- })
81
- );
82
- }
83
- maybeFirst() {
84
- return new SelectFirst(this[Query.Data].with({ singleResult: true }));
85
- }
86
- first() {
87
- return new SelectFirst(
88
- this[Query.Data].with({
89
- singleResult: true,
90
- validate: true
91
- })
92
- );
93
- }
94
- where(...where) {
95
- return new Select(this.addWhere(where));
96
- }
97
- take(limit) {
98
- return new Select(this[Query.Data].with({ limit }));
99
- }
100
- skip(offset) {
101
- return new Select(this[Query.Data].with({ offset }));
102
- }
103
- [Expr.ToExpr]() {
104
- return new Expr(new ExprData.Query(this[Query.Data]));
105
- }
106
- }
107
- class SelectFirst extends Query {
108
- constructor(query) {
109
- super(query);
110
- }
111
- from(table) {
112
- return new Select(this[Query.Data].with({ from: new Target.Table(table) }));
113
- }
114
- leftJoin(that, ...on) {
115
- const query = this[Query.Data];
116
- return new SelectFirst(
117
- this[Query.Data].with({
118
- from: joinTarget("left", query, that, on)
119
- })
120
- );
121
- }
122
- innerJoin(that, ...on) {
123
- const query = this[Query.Data];
124
- return new SelectFirst(
125
- this[Query.Data].with({
126
- from: joinTarget("inner", query, that, on)
127
- })
128
- );
129
- }
130
- select(selection) {
131
- return new SelectFirst(
132
- this[Query.Data].with({
133
- selection: ExprData.create(selection)
134
- })
135
- );
136
- }
137
- orderBy(...orderBy) {
138
- return new SelectFirst(
139
- this[Query.Data].with({
140
- orderBy
141
- })
142
- );
143
- }
144
- groupBy(...groupBy) {
145
- return new SelectFirst(
146
- this[Query.Data].with({
147
- groupBy: groupBy.map(ExprData.create)
148
- })
149
- );
150
- }
151
- where(...where) {
152
- return new SelectFirst(this.addWhere(where));
153
- }
154
- take(limit) {
155
- return new SelectFirst(this[Query.Data].with({ limit }));
156
- }
157
- skip(offset) {
158
- return new SelectFirst(this[Query.Data].with({ offset }));
159
- }
160
- all() {
161
- return new Select(this[Query.Data].with({ singleResult: false }));
162
- }
163
- [Expr.ToExpr]() {
164
- return new Expr(new ExprData.Query(this[Query.Data]));
165
- }
166
- }
167
- export {
168
- Select,
169
- SelectFirst
170
- };
@@ -1,28 +0,0 @@
1
- import { EV, Expr } from '../Expr.js';
2
- import { Query, QueryData } from '../Query.js';
3
- import { Table, TableData } from '../Table.js';
4
- import { CreateTable } from './CreateTable.js';
5
- import { Delete } from './Delete.js';
6
- import { Insert, InsertOne } from './Insert.js';
7
- import { Select } from './Select.js';
8
- import { Update } from './Update.js';
9
- export declare class TableSelect<Definition> extends Select<Table.Select<Definition>> {
10
- protected table: TableData;
11
- [Query.Data]: QueryData.Select;
12
- constructor(table: TableData, conditions?: Array<EV<boolean>>);
13
- as(alias: string): Table<Definition>;
14
- create(): CreateTable;
15
- insert(query: Select<Table.Insert<Definition>>): Insert;
16
- insert(rows: Array<Table.Insert<Definition>>): Insert;
17
- insert(row: Table.Insert<Definition>): InsertOne<Table.Select<Definition>>;
18
- insertSelect(query: Select<Table.Insert<Definition>>): Insert<{
19
- rowsAffected: number;
20
- }>;
21
- insertOne(record: Table.Insert<Definition>): InsertOne<{ [K in keyof Definition as Definition[K] extends import("../Column.js").Column<any> ? K : never]: Definition[K] extends import("../Column.js").Column<infer T> ? T : never; }>;
22
- insertAll(data: Array<Table.Insert<Definition>>): Insert<{
23
- rowsAffected: number;
24
- }>;
25
- set(data: Table.Update<Definition>): Update<Definition>;
26
- delete(): Delete;
27
- get(name: string): Expr<any>;
28
- }
@@ -1,79 +0,0 @@
1
- import { Expr, ExprData } from "../Expr.js";
2
- import { Query, QueryData } from "../Query.js";
3
- import { createTable } from "../Table.js";
4
- import { Target } from "../Target.js";
5
- import { CreateTable } from "./CreateTable.js";
6
- import { Delete } from "./Delete.js";
7
- import { Insert, InsertInto, InsertOne } from "./Insert.js";
8
- import { Select } from "./Select.js";
9
- import { Update } from "./Update.js";
10
- class TableSelect extends Select {
11
- constructor(table, conditions = []) {
12
- const target = new Target.Table(table);
13
- super(
14
- new QueryData.Select({
15
- from: target,
16
- selection: new ExprData.Row(target),
17
- where: Expr.and(...conditions)[Expr.Data]
18
- })
19
- );
20
- this.table = table;
21
- }
22
- as(alias) {
23
- return createTable({ ...this.table, alias });
24
- }
25
- create() {
26
- return new CreateTable(this.table);
27
- }
28
- insert(input) {
29
- if (input instanceof Select) {
30
- return this.insertSelect(input);
31
- } else if (Array.isArray(input)) {
32
- return this.insertAll(input);
33
- } else {
34
- return this.insertOne(input);
35
- }
36
- }
37
- insertSelect(query) {
38
- return new Insert(
39
- new QueryData.Insert({ into: this.table, select: query[Query.Data] })
40
- );
41
- }
42
- insertOne(record) {
43
- return new InsertOne(
44
- new QueryData.Insert({
45
- into: this.table,
46
- data: [record],
47
- selection: new ExprData.Row(new Target.Table(this.table)),
48
- singleResult: true
49
- })
50
- );
51
- }
52
- insertAll(data) {
53
- return new InsertInto(this.table).values(...data);
54
- }
55
- set(data) {
56
- return new Update(
57
- new QueryData.Update({
58
- table: this.table,
59
- where: this[Query.Data].where
60
- })
61
- ).set(data);
62
- }
63
- delete() {
64
- return new Delete(
65
- new QueryData.Delete({
66
- table: this.table,
67
- where: this[Query.Data].where
68
- })
69
- );
70
- }
71
- get(name) {
72
- return new Expr(
73
- new ExprData.Field(new ExprData.Row(new Target.Table(this.table)), name)
74
- );
75
- }
76
- }
77
- export {
78
- TableSelect
79
- };
@@ -1,17 +0,0 @@
1
- import { Query, QueryData } from '../Query.js';
2
- import { VirtualTable } from '../VirtualTable.js';
3
- import { Select } from './Select.js';
4
- export declare class RecursiveUnion<Row> {
5
- initialSelect: QueryData.Select;
6
- constructor(initialSelect: QueryData.Select);
7
- union(create: () => Select<Row> | Union<Row>): VirtualTable.Of<Row>;
8
- unionAll(create: () => Select<Row> | Union<Row>): VirtualTable.Of<Row>;
9
- }
10
- export declare class Union<Row> extends Query<Array<Row>> {
11
- [Query.Data]: QueryData.Union | QueryData.Select;
12
- constructor(query: QueryData.Union | QueryData.Select);
13
- union(query: Select<Row> | Union<Row>): Union<Row>;
14
- unionAll(query: Select<Row> | Union<Row>): Union<Row>;
15
- except(query: Select<Row> | Union<Row>): Union<Row>;
16
- intersect(query: Select<Row> | Union<Row>): Union<Row>;
17
- }
@@ -1,116 +0,0 @@
1
- import { randomAlias } from "../../util/Alias.js";
2
- import { Expr, ExprData, ExprType } from "../Expr.js";
3
- import { Query, QueryData } from "../Query.js";
4
- import { Target, TargetType } from "../Target.js";
5
- import { createVirtualTable } from "../VirtualTable.js";
6
- import { Select } from "./Select.js";
7
- const { keys, create, fromEntries } = Object;
8
- function columnsOf(expr) {
9
- switch (expr.type) {
10
- case ExprType.Record:
11
- return keys(expr.fields);
12
- case ExprType.Row:
13
- switch (expr.target.type) {
14
- case TargetType.Table:
15
- return keys(expr.target.table.columns);
16
- default:
17
- throw new Error("Could not retrieve CTE columns");
18
- }
19
- default:
20
- throw new Error("Could not retrieve CTE columns");
21
- }
22
- }
23
- function makeRecursiveUnion(initial, createUnion, operator) {
24
- const name = randomAlias();
25
- const cols = columnsOf(initial.selection);
26
- const union = new QueryData.Union({
27
- a: initial,
28
- operator,
29
- b: () => createUnion()[Query.Data]
30
- });
31
- const target = new Target.CTE(name, union);
32
- const row = new ExprData.Row(target);
33
- const selection = new ExprData.Record(
34
- fromEntries(cols.map((col) => [col, new ExprData.Field(row, col)]))
35
- );
36
- const select = (conditions) => {
37
- const where = Expr.and(...conditions)[Expr.Data];
38
- return new Select(
39
- new QueryData.Select({
40
- selection,
41
- from: target,
42
- where
43
- })
44
- );
45
- };
46
- const cte = createVirtualTable({
47
- name,
48
- target,
49
- select
50
- });
51
- return cte;
52
- }
53
- class RecursiveUnion {
54
- constructor(initialSelect) {
55
- this.initialSelect = initialSelect;
56
- }
57
- union(create2) {
58
- return makeRecursiveUnion(
59
- this.initialSelect,
60
- create2,
61
- QueryData.UnionOperation.Union
62
- );
63
- }
64
- unionAll(create2) {
65
- return makeRecursiveUnion(
66
- this.initialSelect,
67
- create2,
68
- QueryData.UnionOperation.UnionAll
69
- );
70
- }
71
- }
72
- class Union extends Query {
73
- constructor(query) {
74
- super(query);
75
- }
76
- union(query) {
77
- return new Union(
78
- new QueryData.Union({
79
- a: this[Query.Data],
80
- operator: QueryData.UnionOperation.Union,
81
- b: query[Query.Data]
82
- })
83
- );
84
- }
85
- unionAll(query) {
86
- return new Union(
87
- new QueryData.Union({
88
- a: this[Query.Data],
89
- operator: QueryData.UnionOperation.UnionAll,
90
- b: query[Query.Data]
91
- })
92
- );
93
- }
94
- except(query) {
95
- return new Union(
96
- new QueryData.Union({
97
- a: this[Query.Data],
98
- operator: QueryData.UnionOperation.Except,
99
- b: query[Query.Data]
100
- })
101
- );
102
- }
103
- intersect(query) {
104
- return new Union(
105
- new QueryData.Union({
106
- a: this[Query.Data],
107
- operator: QueryData.UnionOperation.Intersect,
108
- b: query[Query.Data]
109
- })
110
- );
111
- }
112
- }
113
- export {
114
- RecursiveUnion,
115
- Union
116
- };
@@ -1,12 +0,0 @@
1
- import { EV } from '../Expr.js';
2
- import { Query, QueryData } from '../Query.js';
3
- import { Table } from '../Table.js';
4
- export declare class Update<Definition> extends Query<{
5
- rowsAffected: number;
6
- }> {
7
- [Query.Data]: QueryData.Update;
8
- set(set: Table.Update<Definition>): Update<Definition>;
9
- where(...where: Array<EV<boolean>>): Update<Definition>;
10
- take(limit: number | undefined): Update<Definition>;
11
- skip(offset: number | undefined): Update<Definition>;
12
- }
@@ -1,18 +0,0 @@
1
- import { Query } from "../Query.js";
2
- class Update extends Query {
3
- set(set) {
4
- return new Update(this[Query.Data].with({ set }));
5
- }
6
- where(...where) {
7
- return new Update(this.addWhere(where));
8
- }
9
- take(limit) {
10
- return new Update(this[Query.Data].with({ limit }));
11
- }
12
- skip(offset) {
13
- return new Update(this[Query.Data].with({ offset }));
14
- }
15
- }
16
- export {
17
- Update
18
- };
@@ -1,57 +0,0 @@
1
- // src/driver/better-sqlite3.ts
2
- import { Driver } from "../lib/Driver.ts";
3
- import { SqlError } from "../lib/SqlError.ts";
4
- import { SqliteFormatter } from "../sqlite/SqliteFormatter.ts";
5
- import { SqliteSchema } from "../sqlite/SqliteSchema.ts";
6
- var PreparedStatement = class {
7
- constructor(stmt) {
8
- this.stmt = stmt;
9
- }
10
- iterate(params = []) {
11
- return this.stmt.iterate(...params);
12
- }
13
- all(params = []) {
14
- return this.stmt.all(...params);
15
- }
16
- run(params = []) {
17
- return { rowsAffected: this.stmt.run(...params).changes };
18
- }
19
- get(params = []) {
20
- return this.stmt.get(...params);
21
- }
22
- execute(params = []) {
23
- this.stmt.run(...params);
24
- }
25
- };
26
- var BetterSqlite3Driver = class extends Driver.Sync {
27
- constructor(db) {
28
- super(new SqliteFormatter());
29
- this.db = db;
30
- this.tableData = this.prepare(SqliteSchema.tableData);
31
- this.indexData = this.prepare(SqliteSchema.indexData);
32
- }
33
- tableData;
34
- indexData;
35
- prepareStatement(stmt) {
36
- try {
37
- return new PreparedStatement(this.db.prepare(stmt.sql));
38
- } catch (e) {
39
- throw new SqlError(e, stmt.sql);
40
- }
41
- }
42
- schemaInstructions(tableName) {
43
- const columnData = this.tableData(tableName);
44
- const indexData = this.indexData(tableName);
45
- return SqliteSchema.createInstructions(columnData, indexData);
46
- }
47
- export() {
48
- return this.db.serialize();
49
- }
50
- };
51
- function connect(db) {
52
- return new BetterSqlite3Driver(db);
53
- }
54
- export {
55
- BetterSqlite3Driver,
56
- connect
57
- };