rado 0.1.53 → 0.1.55

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 (150) hide show
  1. package/dist/define/Column.d.ts +58 -58
  2. package/dist/define/Cursor.d.ts +86 -85
  3. package/dist/define/Cursor.js +3 -0
  4. package/dist/define/Expr.d.ts +154 -154
  5. package/dist/define/Fields.d.ts +13 -13
  6. package/dist/define/Functions.d.ts +5 -5
  7. package/dist/define/Id.d.ts +3 -3
  8. package/dist/define/Index.d.ts +17 -17
  9. package/dist/define/Ops.d.ts +7 -7
  10. package/dist/define/OrderBy.d.ts +9 -9
  11. package/dist/define/Param.d.ts +15 -15
  12. package/dist/define/Query.d.ts +109 -109
  13. package/dist/define/Schema.d.ts +18 -18
  14. package/dist/define/Selection.d.ts +20 -20
  15. package/dist/define/Table.d.ts +62 -62
  16. package/dist/define/Target.d.ts +38 -38
  17. package/dist/define/Update.d.ts +4 -4
  18. package/dist/driver/better-sqlite3.d.ts +15 -15
  19. package/dist/driver/bun-sqlite.d.ts +18 -18
  20. package/dist/driver/sql.js.d.ts +15 -15
  21. package/dist/driver/sqlite3.d.ts +18 -18
  22. package/dist/index.d.ts +21 -21
  23. package/dist/lib/Driver.d.ts +110 -110
  24. package/dist/lib/Driver.js +2 -2
  25. package/dist/lib/Formatter.d.ts +78 -78
  26. package/dist/lib/Formatter.js +5 -7
  27. package/dist/lib/Sanitizer.d.ts +5 -5
  28. package/dist/lib/SqlError.d.ts +3 -3
  29. package/dist/lib/Statement.d.ts +33 -33
  30. package/dist/sqlite/SqliteFormatter.d.ts +11 -11
  31. package/dist/sqlite/SqliteFunctions.d.ts +165 -165
  32. package/dist/sqlite/SqliteSchema.d.ts +25 -25
  33. package/dist/sqlite.d.ts +2 -2
  34. package/package.json +60 -60
  35. package/dist/CPU.20230126.092143.12244.0.001.cpuprofile +0 -1
  36. package/dist/Column.d.ts +0 -54
  37. package/dist/Column.js +0 -63
  38. package/dist/Cursor.d.ts +0 -77
  39. package/dist/Cursor.js +0 -221
  40. package/dist/Driver.d.ts +0 -89
  41. package/dist/Driver.js +0 -262
  42. package/dist/Expr.d.ts +0 -149
  43. package/dist/Expr.js +0 -284
  44. package/dist/Fields.d.ts +0 -11
  45. package/dist/Fields.js +0 -0
  46. package/dist/Formatter.d.ts +0 -55
  47. package/dist/Formatter.js +0 -496
  48. package/dist/Functions.d.ts +0 -7
  49. package/dist/Functions.js +0 -11
  50. package/dist/Id.d.ts +0 -3
  51. package/dist/Id.js +0 -0
  52. package/dist/Ops.d.ts +0 -8
  53. package/dist/Ops.js +0 -45
  54. package/dist/OrderBy.d.ts +0 -9
  55. package/dist/OrderBy.js +0 -9
  56. package/dist/Param.d.ts +0 -15
  57. package/dist/Param.js +0 -18
  58. package/dist/Query.d.ts +0 -107
  59. package/dist/Query.js +0 -74
  60. package/dist/Sanitizer.d.ts +0 -4
  61. package/dist/Sanitizer.js +0 -0
  62. package/dist/Schema.d.ts +0 -23
  63. package/dist/Schema.js +0 -60
  64. package/dist/Selection.d.ts +0 -20
  65. package/dist/Selection.js +0 -7
  66. package/dist/Statement.d.ts +0 -57
  67. package/dist/Statement.js +0 -184
  68. package/dist/Table.d.ts +0 -56
  69. package/dist/Table.js +0 -104
  70. package/dist/Target.d.ts +0 -30
  71. package/dist/Target.js +0 -37
  72. package/dist/Update.d.ts +0 -4
  73. package/dist/Update.js +0 -0
  74. package/dist/lib/Column.d.ts +0 -57
  75. package/dist/lib/Column.js +0 -63
  76. package/dist/lib/Cursor.d.ts +0 -79
  77. package/dist/lib/Cursor.js +0 -231
  78. package/dist/lib/Expr.d.ts +0 -154
  79. package/dist/lib/Expr.js +0 -284
  80. package/dist/lib/Fields.d.ts +0 -13
  81. package/dist/lib/Fields.js +0 -0
  82. package/dist/lib/Functions.d.ts +0 -5
  83. package/dist/lib/Functions.js +0 -11
  84. package/dist/lib/Id.d.ts +0 -3
  85. package/dist/lib/Id.js +0 -0
  86. package/dist/lib/Index.d.ts +0 -17
  87. package/dist/lib/Index.js +0 -20
  88. package/dist/lib/Ops.d.ts +0 -8
  89. package/dist/lib/Ops.js +0 -45
  90. package/dist/lib/OrderBy.d.ts +0 -9
  91. package/dist/lib/OrderBy.js +0 -9
  92. package/dist/lib/Param.d.ts +0 -20
  93. package/dist/lib/Param.js +0 -27
  94. package/dist/lib/Query.d.ts +0 -109
  95. package/dist/lib/Query.js +0 -74
  96. package/dist/lib/Schema.d.ts +0 -18
  97. package/dist/lib/Schema.js +0 -67
  98. package/dist/lib/Selection.d.ts +0 -20
  99. package/dist/lib/Selection.js +0 -7
  100. package/dist/lib/Table.d.ts +0 -62
  101. package/dist/lib/Table.js +0 -130
  102. package/dist/lib/Target.d.ts +0 -30
  103. package/dist/lib/Target.js +0 -37
  104. package/dist/lib/Update.d.ts +0 -4
  105. package/dist/lib/Update.js +0 -0
  106. package/dist/sqlite/index.d.ts +0 -2
  107. package/dist/sqlite/index.js +0 -3
  108. package/dist/src/driver/better-sqlite3.js +0 -49
  109. package/dist/src/driver/sql.js.js +0 -66
  110. package/dist/src/driver/sqlite3.js +0 -87
  111. package/dist/src/index.js +0 -24
  112. package/dist/src/lib/Column.js +0 -63
  113. package/dist/src/lib/Cursor.js +0 -231
  114. package/dist/src/lib/Driver.js +0 -316
  115. package/dist/src/lib/Expr.js +0 -284
  116. package/dist/src/lib/Fields.js +0 -0
  117. package/dist/src/lib/Formatter.js +0 -625
  118. package/dist/src/lib/Functions.js +0 -11
  119. package/dist/src/lib/Id.js +0 -0
  120. package/dist/src/lib/Index.js +0 -20
  121. package/dist/src/lib/Ops.js +0 -45
  122. package/dist/src/lib/OrderBy.js +0 -9
  123. package/dist/src/lib/Param.js +0 -27
  124. package/dist/src/lib/Query.js +0 -74
  125. package/dist/src/lib/Sanitizer.js +0 -0
  126. package/dist/src/lib/Schema.js +0 -67
  127. package/dist/src/lib/Selection.js +0 -7
  128. package/dist/src/lib/Statement.js +0 -103
  129. package/dist/src/lib/Table.js +0 -130
  130. package/dist/src/lib/Target.js +0 -37
  131. package/dist/src/lib/Update.js +0 -0
  132. package/dist/src/sqlite/SqliteFormatter.js +0 -67
  133. package/dist/src/sqlite/SqliteFunctions.js +0 -146
  134. package/dist/src/sqlite/SqliteSchema.js +0 -47
  135. package/dist/src/sqlite.js +0 -3
  136. package/dist/test/DbSuite.js +0 -28
  137. package/dist/test/TSTestTypes.js +0 -6
  138. package/dist/test/TestBasic.js +0 -172
  139. package/dist/test/TestExtend.js +0 -68
  140. package/dist/test/TestFts5.js +0 -34
  141. package/dist/test/TestFunctions.js +0 -28
  142. package/dist/test/TestJoins.js +0 -34
  143. package/dist/test/TestJson.js +0 -33
  144. package/dist/test/TestPrepare.js +0 -27
  145. package/dist/test/TestRawSql.js +0 -31
  146. package/dist/test/TestSchema.js +0 -69
  147. package/dist/test/TestSubQueries.js +0 -79
  148. package/dist/test/TestTransaction.js +0 -54
  149. package/dist/test/TestUpdate.js +0 -95
  150. package/dist/test/index.js +0 -14
@@ -1,18 +1,18 @@
1
- /// <reference types="bun-types" />
2
- import type { Database } from 'bun:sqlite';
3
- import { SchemaInstructions } from '../define/Schema';
4
- import { Driver } from '../lib/Driver';
5
- import { Statement } from '../lib/Statement';
6
- import { SqliteSchema } from '../sqlite/SqliteSchema';
7
- export declare class BunSqliteDriver extends Driver.Sync {
8
- db: Database;
9
- tableData: (tableName: string) => Array<SqliteSchema.Column>;
10
- indexData: (tableName: string) => Array<SqliteSchema.Index>;
11
- lastChanges: () => {
12
- rowsAffected: number;
13
- };
14
- constructor(db: Database);
15
- prepareStatement(stmt: Statement): Driver.Sync.PreparedStatement;
16
- schemaInstructions(tableName: string): SchemaInstructions | undefined;
17
- }
18
- export declare function connect(db: Database): BunSqliteDriver;
1
+ /// <reference types="bun-types" />
2
+ import type { Database } from 'bun:sqlite';
3
+ import { SchemaInstructions } from '../define/Schema';
4
+ import { Driver } from '../lib/Driver';
5
+ import { Statement } from '../lib/Statement';
6
+ import { SqliteSchema } from '../sqlite/SqliteSchema';
7
+ export declare class BunSqliteDriver extends Driver.Sync {
8
+ db: Database;
9
+ tableData: (tableName: string) => Array<SqliteSchema.Column>;
10
+ indexData: (tableName: string) => Array<SqliteSchema.Index>;
11
+ lastChanges: () => {
12
+ rowsAffected: number;
13
+ };
14
+ constructor(db: Database);
15
+ prepareStatement(stmt: Statement): Driver.Sync.PreparedStatement;
16
+ schemaInstructions(tableName: string): SchemaInstructions | undefined;
17
+ }
18
+ export declare function connect(db: Database): BunSqliteDriver;
@@ -1,15 +1,15 @@
1
- import type { Database } from 'sql.js';
2
- import { SchemaInstructions } from '../define/Schema';
3
- import { Driver } from '../lib/Driver';
4
- import { Statement } from '../lib/Statement';
5
- import { SqliteSchema } from '../sqlite/SqliteSchema';
6
- export declare class SqlJsDriver extends Driver.Sync {
7
- db: Database;
8
- tableData: (tableName: string) => Array<SqliteSchema.Column>;
9
- indexData: (tableName: string) => Array<SqliteSchema.Index>;
10
- constructor(db: Database);
11
- prepareStatement(stmt: Statement, discardAfter: boolean): Driver.Sync.PreparedStatement;
12
- schemaInstructions(tableName: string): SchemaInstructions | undefined;
13
- export(): Uint8Array;
14
- }
15
- export declare function connect(db: Database): SqlJsDriver;
1
+ import type { Database } from 'sql.js';
2
+ import { SchemaInstructions } from '../define/Schema';
3
+ import { Driver } from '../lib/Driver';
4
+ import { Statement } from '../lib/Statement';
5
+ import { SqliteSchema } from '../sqlite/SqliteSchema';
6
+ export declare class SqlJsDriver extends Driver.Sync {
7
+ db: Database;
8
+ tableData: (tableName: string) => Array<SqliteSchema.Column>;
9
+ indexData: (tableName: string) => Array<SqliteSchema.Index>;
10
+ constructor(db: Database);
11
+ prepareStatement(stmt: Statement, discardAfter: boolean): Driver.Sync.PreparedStatement;
12
+ schemaInstructions(tableName: string): SchemaInstructions | undefined;
13
+ export(): Uint8Array;
14
+ }
15
+ export declare function connect(db: Database): SqlJsDriver;
@@ -1,18 +1,18 @@
1
- import type { Database } from 'sqlite3';
2
- import { Query } from '../define/Query';
3
- import { SchemaInstructions } from '../define/Schema';
4
- import { Driver } from '../lib/Driver';
5
- import { Statement } from '../lib/Statement';
6
- import { SqliteSchema } from '../sqlite/SqliteSchema';
7
- export declare class Sqlite3Driver extends Driver.Async {
8
- private db;
9
- lock: Promise<void> | undefined;
10
- tableData: (tableName: string) => Promise<Array<SqliteSchema.Column>>;
11
- indexData: (tableName: string) => Promise<Array<SqliteSchema.Index>>;
12
- constructor(db: Database);
13
- executeQuery<T>(query: Query<T>, stmt?: Driver.Async.PreparedStatement, params?: any[] | undefined): Promise<T>;
14
- prepareStatement(stmt: Statement): Driver.Async.PreparedStatement;
15
- schemaInstructions(tableName: string): Promise<SchemaInstructions | undefined>;
16
- isolate(): [connection: Driver.Async, release: () => Promise<void>];
17
- }
18
- export declare function connect(db: Database): Sqlite3Driver;
1
+ import type { Database } from 'sqlite3';
2
+ import { Query } from '../define/Query';
3
+ import { SchemaInstructions } from '../define/Schema';
4
+ import { Driver } from '../lib/Driver';
5
+ import { Statement } from '../lib/Statement';
6
+ import { SqliteSchema } from '../sqlite/SqliteSchema';
7
+ export declare class Sqlite3Driver extends Driver.Async {
8
+ private db;
9
+ lock: Promise<void> | undefined;
10
+ tableData: (tableName: string) => Promise<Array<SqliteSchema.Column>>;
11
+ indexData: (tableName: string) => Promise<Array<SqliteSchema.Index>>;
12
+ constructor(db: Database);
13
+ executeQuery<T>(query: Query<T>, stmt?: Driver.Async.PreparedStatement, params?: any[] | undefined): Promise<T>;
14
+ prepareStatement(stmt: Statement): Driver.Async.PreparedStatement;
15
+ schemaInstructions(tableName: string): Promise<SchemaInstructions | undefined>;
16
+ isolate(): [connection: Driver.Async, release: () => Promise<void>];
17
+ }
18
+ export declare function connect(db: Database): Sqlite3Driver;
package/dist/index.d.ts CHANGED
@@ -1,21 +1,21 @@
1
- export * from './define/Column';
2
- export * from './define/Cursor';
3
- export * from './define/Expr';
4
- export * from './define/Fields';
5
- export * from './define/Functions';
6
- export * from './define/Id';
7
- export * from './define/Index';
8
- export * from './define/Ops';
9
- export * from './define/OrderBy';
10
- export * from './define/Param';
11
- export * from './define/Query';
12
- export * from './define/Schema';
13
- export * from './define/Selection';
14
- export * from './define/Table';
15
- export * from './define/Target';
16
- export * from './define/Update';
17
- export type { Driver } from './lib/Driver';
18
- export type { FormatContext, Formatter } from './lib/Formatter';
19
- export type { Sanitizer } from './lib/Sanitizer';
20
- export * from './lib/SqlError';
21
- export type { Statement } from './lib/Statement';
1
+ export * from './define/Column';
2
+ export * from './define/Cursor';
3
+ export * from './define/Expr';
4
+ export * from './define/Fields';
5
+ export * from './define/Functions';
6
+ export * from './define/Id';
7
+ export * from './define/Index';
8
+ export * from './define/Ops';
9
+ export * from './define/OrderBy';
10
+ export * from './define/Param';
11
+ export * from './define/Query';
12
+ export * from './define/Schema';
13
+ export * from './define/Selection';
14
+ export * from './define/Table';
15
+ export * from './define/Target';
16
+ export * from './define/Update';
17
+ export type { Driver } from './lib/Driver';
18
+ export type { FormatContext, Formatter } from './lib/Formatter';
19
+ export type { Sanitizer } from './lib/Sanitizer';
20
+ export * from './lib/SqlError';
21
+ export type { Statement } from './lib/Statement';
@@ -1,110 +1,110 @@
1
- import { Cursor } from '../define/Cursor';
2
- import { Expr } from '../define/Expr';
3
- import { Query } from '../define/Query';
4
- import { SchemaInstructions } from '../define/Schema';
5
- import { Table } from '../define/Table';
6
- import { Formatter } from './Formatter';
7
- import { Statement } from './Statement';
8
- declare class Callable extends Function {
9
- constructor(fn: Function);
10
- }
11
- declare abstract class DriverBase extends Callable {
12
- formatter: Formatter;
13
- constructor(formatter: Formatter);
14
- compile<T extends Array<Expr<any>>, R>(create: (...params: T) => Cursor<R>): [Query<T>, Statement];
15
- all(...args: Array<any>): any;
16
- get(...args: Array<any>): any;
17
- sql(strings: TemplateStringsArray, ...params: Array<any>): Cursor<unknown>;
18
- executeTemplate(expectedReturn: Query.RawReturn, strings: TemplateStringsArray, ...params: Array<any>): any;
19
- abstract executeQuery(query: Query<any>): any;
20
- }
21
- type ParamTypes<Params extends [...any[]]> = {
22
- [K in keyof Params]: Params[K] extends Expr<infer T> ? T : never;
23
- } & {
24
- length: Params['length'];
25
- };
26
- interface SyncDriver {
27
- <T>(query: Cursor<T>): T;
28
- <T>(...queries: Array<Cursor<any>>): T;
29
- (strings: TemplateStringsArray, ...values: any[]): any;
30
- }
31
- declare abstract class SyncDriver extends DriverBase {
32
- transactionId: number;
33
- abstract prepareStatement(stmt: Statement, discardAfter: boolean): SyncPreparedStatement;
34
- abstract schemaInstructions(tableName: string): SchemaInstructions | undefined;
35
- prepare<T extends Array<Expr<any>>, R>(create: (...params: T) => Cursor<R>): (...params: ParamTypes<T>) => R;
36
- migrateSchema(...tables: Array<Table<any>>): unknown;
37
- executeQuery<T>(query: Query<T>, stmt?: SyncPreparedStatement, params?: Array<any>): T;
38
- all<T>(cursor: Cursor.SelectSingle<T>): Array<T>;
39
- all<T>(cursor: Cursor<T>): T;
40
- all<T>(strings: TemplateStringsArray, ...params: Array<any>): Array<T>;
41
- get<T>(cursor: Cursor.SelectMultiple<T>): T | null;
42
- get<T>(cursor: Cursor<T>): T;
43
- get<T>(strings: TemplateStringsArray, ...params: Array<any>): T;
44
- iterate<T>(cursor: Cursor.SelectMultiple<T>): Iterable<T>;
45
- transaction<T>(run: (query: SyncDriver) => T): T;
46
- toAsync(): SyncWrapper;
47
- }
48
- interface SyncPreparedStatement {
49
- run(params?: Array<any>): {
50
- rowsAffected: number;
51
- };
52
- iterate<T>(params?: Array<any>): Iterable<T>;
53
- all<T>(params?: Array<any>): Array<T>;
54
- get<T>(params?: Array<any>): T;
55
- execute(params?: Array<any>): void;
56
- }
57
- interface AsyncDriver {
58
- <T>(query: Cursor<T>): Promise<T>;
59
- <T>(...queries: Array<Cursor<any>>): Promise<T>;
60
- (strings: TemplateStringsArray, ...values: any[]): Promise<any>;
61
- }
62
- declare abstract class AsyncDriver extends DriverBase {
63
- transactionId: number;
64
- abstract isolate(): [connection: AsyncDriver, release: () => Promise<void>];
65
- abstract prepareStatement(stmt: Statement, discardAfter: boolean): AsyncPreparedStatement;
66
- abstract schemaInstructions(tableName: string): Promise<SchemaInstructions | undefined>;
67
- prepare<T extends Array<Expr<any>>, R>(create: (...params: T) => Cursor<R>): (...params: ParamTypes<T>) => Promise<R>;
68
- migrateSchema(...tables: Array<Table<any>>): Promise<unknown>;
69
- executeQuery<T>(query: Query<T>, stmt?: AsyncPreparedStatement, params?: Array<any>): Promise<T>;
70
- all<T>(cursor: Cursor.SelectSingle<T>): Promise<Array<T>>;
71
- all<T>(cursor: Cursor<T>): Promise<T>;
72
- all<T>(strings: TemplateStringsArray, ...params: Array<any>): Promise<Array<T>>;
73
- get<T>(cursor: Cursor.SelectMultiple<T>): Promise<T | null>;
74
- get<T>(cursor: Cursor<T>): Promise<T>;
75
- get<T>(strings: TemplateStringsArray, ...params: Array<any>): Promise<T>;
76
- iterate<T>(cursor: Cursor.SelectMultiple<T>): AsyncIterable<T>;
77
- transaction<T>(run: (query: AsyncDriver) => T): Promise<T>;
78
- }
79
- declare class SyncWrapper extends AsyncDriver {
80
- private sync;
81
- lock: Promise<void> | undefined;
82
- constructor(sync: SyncDriver);
83
- executeQuery<T>(query: Query<T>, stmt?: AsyncPreparedStatement, params?: Array<any>): Promise<T>;
84
- prepareStatement(stmt: Statement, discardAfter: boolean): AsyncPreparedStatement;
85
- schemaInstructions(tableName: string): Promise<SchemaInstructions | undefined>;
86
- isolate(): [connection: AsyncDriver, release: () => Promise<void>];
87
- }
88
- interface AsyncPreparedStatement {
89
- run(params?: Array<any>): Promise<{
90
- rowsAffected: number;
91
- }>;
92
- iterate<T>(params?: Array<any>): AsyncIterable<T>;
93
- all<T>(params?: Array<any>): Promise<Array<T>>;
94
- get<T>(params?: Array<any>): Promise<T>;
95
- execute(params?: Array<any>): Promise<void>;
96
- }
97
- export type Driver = SyncDriver | AsyncDriver;
98
- export declare namespace Driver {
99
- type Sync = SyncDriver;
100
- const Sync: typeof SyncDriver;
101
- namespace Sync {
102
- type PreparedStatement = SyncPreparedStatement;
103
- }
104
- type Async = AsyncDriver;
105
- const Async: typeof AsyncDriver;
106
- namespace Async {
107
- type PreparedStatement = AsyncPreparedStatement;
108
- }
109
- }
110
- export {};
1
+ import { Cursor } from '../define/Cursor';
2
+ import { Expr } from '../define/Expr';
3
+ import { Query } from '../define/Query';
4
+ import { SchemaInstructions } from '../define/Schema';
5
+ import { Table } from '../define/Table';
6
+ import { Formatter } from './Formatter';
7
+ import { Statement } from './Statement';
8
+ declare class Callable extends Function {
9
+ constructor(fn: Function);
10
+ }
11
+ declare abstract class DriverBase extends Callable {
12
+ formatter: Formatter;
13
+ constructor(formatter: Formatter);
14
+ compile<T extends Array<Expr<any>>, R>(create: (...params: T) => Cursor<R>): [Query<T>, Statement];
15
+ all(...args: Array<any>): any;
16
+ get(...args: Array<any>): any;
17
+ sql(strings: TemplateStringsArray, ...params: Array<any>): Cursor<unknown>;
18
+ executeTemplate(expectedReturn: Query.RawReturn, strings: TemplateStringsArray, ...params: Array<any>): any;
19
+ abstract executeQuery(query: Query<any>): any;
20
+ }
21
+ type ParamTypes<Params extends [...any[]]> = {
22
+ [K in keyof Params]: Params[K] extends Expr<infer T> ? T : never;
23
+ } & {
24
+ length: Params['length'];
25
+ };
26
+ interface SyncDriver {
27
+ <T>(query: Cursor<T>): T;
28
+ <T>(...queries: Array<Cursor<any>>): T;
29
+ (strings: TemplateStringsArray, ...values: any[]): any;
30
+ }
31
+ declare abstract class SyncDriver extends DriverBase {
32
+ transactionId: number;
33
+ abstract prepareStatement(stmt: Statement, discardAfter: boolean): SyncPreparedStatement;
34
+ abstract schemaInstructions(tableName: string): SchemaInstructions | undefined;
35
+ prepare<T extends Array<Expr<any>>, R>(create: (...params: T) => Cursor<R>): (...params: ParamTypes<T>) => R;
36
+ migrateSchema(...tables: Array<Table<any>>): unknown;
37
+ executeQuery<T>(query: Query<T>, stmt?: SyncPreparedStatement, params?: Array<any>): T;
38
+ all<T>(cursor: Cursor.SelectSingle<T>): Array<T>;
39
+ all<T>(cursor: Cursor<T>): T;
40
+ all<T>(strings: TemplateStringsArray, ...params: Array<any>): Array<T>;
41
+ get<T>(cursor: Cursor.SelectMultiple<T>): T | null;
42
+ get<T>(cursor: Cursor<T>): T;
43
+ get<T>(strings: TemplateStringsArray, ...params: Array<any>): T;
44
+ iterate<T>(cursor: Cursor.SelectMultiple<T>): Iterable<T>;
45
+ transaction<T>(run: (query: SyncDriver) => T): T;
46
+ toAsync(): SyncWrapper;
47
+ }
48
+ interface SyncPreparedStatement {
49
+ run(params?: Array<any>): {
50
+ rowsAffected: number;
51
+ };
52
+ iterate<T>(params?: Array<any>): Iterable<T>;
53
+ all<T>(params?: Array<any>): Array<T>;
54
+ get<T>(params?: Array<any>): T;
55
+ execute(params?: Array<any>): void;
56
+ }
57
+ interface AsyncDriver {
58
+ <T>(query: Cursor<T>): Promise<T>;
59
+ <T>(...queries: Array<Cursor<any>>): Promise<T>;
60
+ (strings: TemplateStringsArray, ...values: any[]): Promise<any>;
61
+ }
62
+ declare abstract class AsyncDriver extends DriverBase {
63
+ transactionId: number;
64
+ abstract isolate(): [connection: AsyncDriver, release: () => Promise<void>];
65
+ abstract prepareStatement(stmt: Statement, discardAfter: boolean): AsyncPreparedStatement;
66
+ abstract schemaInstructions(tableName: string): Promise<SchemaInstructions | undefined>;
67
+ prepare<T extends Array<Expr<any>>, R>(create: (...params: T) => Cursor<R>): (...params: ParamTypes<T>) => Promise<R>;
68
+ migrateSchema(...tables: Array<Table<any>>): Promise<unknown>;
69
+ executeQuery<T>(query: Query<T>, stmt?: AsyncPreparedStatement, params?: Array<any>): Promise<T>;
70
+ all<T>(cursor: Cursor.SelectSingle<T>): Promise<Array<T>>;
71
+ all<T>(cursor: Cursor<T>): Promise<T>;
72
+ all<T>(strings: TemplateStringsArray, ...params: Array<any>): Promise<Array<T>>;
73
+ get<T>(cursor: Cursor.SelectMultiple<T>): Promise<T | null>;
74
+ get<T>(cursor: Cursor<T>): Promise<T>;
75
+ get<T>(strings: TemplateStringsArray, ...params: Array<any>): Promise<T>;
76
+ iterate<T>(cursor: Cursor.SelectMultiple<T>): AsyncIterable<T>;
77
+ transaction<T>(run: (query: AsyncDriver) => T): Promise<T>;
78
+ }
79
+ declare class SyncWrapper extends AsyncDriver {
80
+ private sync;
81
+ lock: Promise<void> | undefined;
82
+ constructor(sync: SyncDriver);
83
+ executeQuery<T>(query: Query<T>, stmt?: AsyncPreparedStatement, params?: Array<any>): Promise<T>;
84
+ prepareStatement(stmt: Statement, discardAfter: boolean): AsyncPreparedStatement;
85
+ schemaInstructions(tableName: string): Promise<SchemaInstructions | undefined>;
86
+ isolate(): [connection: AsyncDriver, release: () => Promise<void>];
87
+ }
88
+ interface AsyncPreparedStatement {
89
+ run(params?: Array<any>): Promise<{
90
+ rowsAffected: number;
91
+ }>;
92
+ iterate<T>(params?: Array<any>): AsyncIterable<T>;
93
+ all<T>(params?: Array<any>): Promise<Array<T>>;
94
+ get<T>(params?: Array<any>): Promise<T>;
95
+ execute(params?: Array<any>): Promise<void>;
96
+ }
97
+ export type Driver = SyncDriver | AsyncDriver;
98
+ export declare namespace Driver {
99
+ type Sync = SyncDriver;
100
+ const Sync: typeof SyncDriver;
101
+ namespace Sync {
102
+ type PreparedStatement = SyncPreparedStatement;
103
+ }
104
+ type Async = AsyncDriver;
105
+ const Async: typeof AsyncDriver;
106
+ namespace Async {
107
+ type PreparedStatement = AsyncPreparedStatement;
108
+ }
109
+ }
110
+ export {};
@@ -115,7 +115,7 @@ var SyncDriver = class extends DriverBase {
115
115
  const res = stmt.all(params).map((row) => JSON.parse(row.result).result);
116
116
  if (query.singleResult) {
117
117
  const row = res[0];
118
- if (query.validate && !row)
118
+ if (query.validate && row === void 0)
119
119
  throw new Error("No row found");
120
120
  return row;
121
121
  }
@@ -223,7 +223,7 @@ var AsyncDriver = class extends DriverBase {
223
223
  );
224
224
  if (query.singleResult) {
225
225
  const row = res[0];
226
- if (query.validate && !row)
226
+ if (query.validate && row === void 0)
227
227
  throw new Error("No row found");
228
228
  return row;
229
229
  }
@@ -1,78 +1,78 @@
1
- import { ColumnData, ColumnType } from '../define/Column';
2
- import { ExprData } from '../define/Expr';
3
- import { OrderBy } from '../define/OrderBy';
4
- import { Query } from '../define/Query';
5
- import { Target } from '../define/Target';
6
- import { Sanitizer } from './Sanitizer';
7
- import { Statement, StatementOptions } from './Statement';
8
- export interface FormatContext {
9
- stmt: Statement;
10
- nameResult?: string;
11
- /** Skip prefixing fields with their table name */
12
- skipTableName?: boolean;
13
- /**
14
- * In SQLite table names are used as expressions in the FTS5 plugin.
15
- * To distinguish between formatting a row of the table and just the table name
16
- * this flag can be used.
17
- **/
18
- tableAsExpr?: boolean;
19
- /** Inline all parameters */
20
- forceInline?: boolean;
21
- formatAsJson?: boolean;
22
- formatAsDefault?: boolean;
23
- topLevel?: boolean;
24
- }
25
- type FormatSubject = (stmt: Statement, mkSubject: () => void) => void;
26
- export declare abstract class Formatter implements Sanitizer {
27
- constructor();
28
- abstract escapeValue(value: any): string;
29
- abstract escapeIdentifier(ident: string): string;
30
- abstract formatParamValue(paramValue: any): any;
31
- abstract formatAccess(ctx: FormatContext, mkSubject: () => void, field: string): Statement;
32
- compile<T>(query: Query<T>, options?: Partial<FormatContext>): Statement;
33
- createContext(options?: Partial<FormatContext> & StatementOptions): {
34
- stmt: Statement;
35
- nameResult?: string | undefined;
36
- skipTableName?: boolean | undefined;
37
- tableAsExpr?: boolean | undefined;
38
- forceInline?: boolean | undefined;
39
- formatAsJson?: boolean | undefined;
40
- formatAsDefault?: boolean | undefined;
41
- topLevel?: boolean | undefined;
42
- skipNewlines?: boolean | undefined;
43
- };
44
- format<T>(ctx: FormatContext, query: Query<T>): Statement;
45
- formatSelect(ctx: FormatContext, query: Query.Select): Statement;
46
- formatInsert(ctx: FormatContext, query: Query.Insert): Statement;
47
- formatUpdate(ctx: FormatContext, query: Query.Update): Statement;
48
- formatDelete(ctx: FormatContext, query: Query.Delete): Statement;
49
- formatCreateTable(ctx: FormatContext, query: Query.CreateTable): Statement;
50
- formatCreateIndex(ctx: FormatContext, query: Query.CreateIndex): Statement;
51
- formatDropIndex(ctx: FormatContext, query: Query.DropIndex): Statement;
52
- formatAlterTable(ctx: FormatContext, query: Query.AlterTable): Statement;
53
- formatTransaction(ctx: FormatContext, { op, id }: Query.Transaction): Statement;
54
- formatBatch(ctx: FormatContext, { queries }: Query.Batch): Statement;
55
- formatRaw(ctx: FormatContext, { strings, params }: Query.Raw): Statement;
56
- formatColumn(ctx: FormatContext, column: ColumnData): Statement;
57
- formatContraintReference(ctx: FormatContext, reference: ExprData): Statement;
58
- formatType(ctx: FormatContext, type: ColumnType): Statement;
59
- formatInsertRow(ctx: FormatContext, columns: Record<string, ColumnData>, row: Record<string, any>): Statement;
60
- formatColumnValue(ctx: FormatContext, column: ColumnData, columnValue: any): Statement;
61
- formatTarget(ctx: FormatContext, target: Target): Statement;
62
- formatWhere(ctx: FormatContext, expr: ExprData | undefined): Statement;
63
- formatHaving(ctx: FormatContext, expr: ExprData | undefined): Statement;
64
- formatGroupBy(ctx: FormatContext, groupBy: Array<ExprData> | undefined): Statement;
65
- formatOrderBy(ctx: FormatContext, orderBy: Array<OrderBy> | undefined): Statement;
66
- formatLimit(ctx: FormatContext, { limit, offset, singleResult }: Query.QueryBase): Statement;
67
- formatSelection(ctx: FormatContext, selection: ExprData, formatSubject?: FormatSubject): Statement;
68
- formatExprJson(ctx: FormatContext, expr: ExprData): Statement;
69
- formatExprValue(ctx: FormatContext, expr: ExprData): Statement;
70
- formatIn(ctx: FormatContext, expr: ExprData): Statement;
71
- retrieveField(expr: ExprData, field: string): ExprData | undefined;
72
- formatField(ctx: FormatContext, expr: ExprData, field: string): Statement;
73
- formatString(ctx: FormatContext, input: string): Statement;
74
- formatInlineValue(ctx: FormatContext, rawValue: any): Statement;
75
- formatValue(ctx: FormatContext, rawValue: any): Statement;
76
- formatExpr(ctx: FormatContext, expr: ExprData): Statement;
77
- }
78
- export {};
1
+ import { ColumnData, ColumnType } from '../define/Column';
2
+ import { ExprData } from '../define/Expr';
3
+ import { OrderBy } from '../define/OrderBy';
4
+ import { Query } from '../define/Query';
5
+ import { Target } from '../define/Target';
6
+ import { Sanitizer } from './Sanitizer';
7
+ import { Statement, StatementOptions } from './Statement';
8
+ export interface FormatContext {
9
+ stmt: Statement;
10
+ nameResult?: string;
11
+ /** Skip prefixing fields with their table name */
12
+ skipTableName?: boolean;
13
+ /**
14
+ * In SQLite table names are used as expressions in the FTS5 plugin.
15
+ * To distinguish between formatting a row of the table and just the table name
16
+ * this flag can be used.
17
+ **/
18
+ tableAsExpr?: boolean;
19
+ /** Inline all parameters */
20
+ forceInline?: boolean;
21
+ formatAsJson?: boolean;
22
+ formatAsDefault?: boolean;
23
+ topLevel?: boolean;
24
+ }
25
+ type FormatSubject = (stmt: Statement, mkSubject: () => void) => void;
26
+ export declare abstract class Formatter implements Sanitizer {
27
+ constructor();
28
+ abstract escapeValue(value: any): string;
29
+ abstract escapeIdentifier(ident: string): string;
30
+ abstract formatParamValue(paramValue: any): any;
31
+ abstract formatAccess(ctx: FormatContext, mkSubject: () => void, field: string): Statement;
32
+ compile<T>(query: Query<T>, options?: Partial<FormatContext>): Statement;
33
+ createContext(options?: Partial<FormatContext> & StatementOptions): {
34
+ stmt: Statement;
35
+ nameResult?: string | undefined;
36
+ skipTableName?: boolean | undefined;
37
+ tableAsExpr?: boolean | undefined;
38
+ forceInline?: boolean | undefined;
39
+ formatAsJson?: boolean | undefined;
40
+ formatAsDefault?: boolean | undefined;
41
+ topLevel?: boolean | undefined;
42
+ skipNewlines?: boolean | undefined;
43
+ };
44
+ format<T>(ctx: FormatContext, query: Query<T>): Statement;
45
+ formatSelect(ctx: FormatContext, query: Query.Select): Statement;
46
+ formatInsert(ctx: FormatContext, query: Query.Insert): Statement;
47
+ formatUpdate(ctx: FormatContext, query: Query.Update): Statement;
48
+ formatDelete(ctx: FormatContext, query: Query.Delete): Statement;
49
+ formatCreateTable(ctx: FormatContext, query: Query.CreateTable): Statement;
50
+ formatCreateIndex(ctx: FormatContext, query: Query.CreateIndex): Statement;
51
+ formatDropIndex(ctx: FormatContext, query: Query.DropIndex): Statement;
52
+ formatAlterTable(ctx: FormatContext, query: Query.AlterTable): Statement;
53
+ formatTransaction(ctx: FormatContext, { op, id }: Query.Transaction): Statement;
54
+ formatBatch(ctx: FormatContext, { queries }: Query.Batch): Statement;
55
+ formatRaw(ctx: FormatContext, { strings, params }: Query.Raw): Statement;
56
+ formatColumn(ctx: FormatContext, column: ColumnData): Statement;
57
+ formatContraintReference(ctx: FormatContext, reference: ExprData): Statement;
58
+ formatType(ctx: FormatContext, type: ColumnType): Statement;
59
+ formatInsertRow(ctx: FormatContext, columns: Record<string, ColumnData>, row: Record<string, any>): Statement;
60
+ formatColumnValue(ctx: FormatContext, column: ColumnData, columnValue: any): Statement;
61
+ formatTarget(ctx: FormatContext, target: Target): Statement;
62
+ formatWhere(ctx: FormatContext, expr: ExprData | undefined): Statement;
63
+ formatHaving(ctx: FormatContext, expr: ExprData | undefined): Statement;
64
+ formatGroupBy(ctx: FormatContext, groupBy: Array<ExprData> | undefined): Statement;
65
+ formatOrderBy(ctx: FormatContext, orderBy: Array<OrderBy> | undefined): Statement;
66
+ formatLimit(ctx: FormatContext, { limit, offset, singleResult }: Query.QueryBase): Statement;
67
+ formatSelection(ctx: FormatContext, selection: ExprData, formatSubject?: FormatSubject): Statement;
68
+ formatExprJson(ctx: FormatContext, expr: ExprData): Statement;
69
+ formatExprValue(ctx: FormatContext, expr: ExprData): Statement;
70
+ formatIn(ctx: FormatContext, expr: ExprData): Statement;
71
+ retrieveField(expr: ExprData, field: string): ExprData | undefined;
72
+ formatField(ctx: FormatContext, expr: ExprData, field: string): Statement;
73
+ formatString(ctx: FormatContext, input: string): Statement;
74
+ formatInlineValue(ctx: FormatContext, rawValue: any): Statement;
75
+ formatValue(ctx: FormatContext, rawValue: any): Statement;
76
+ formatExpr(ctx: FormatContext, expr: ExprData): Statement;
77
+ }
78
+ export {};
@@ -118,13 +118,11 @@ var Formatter = class {
118
118
  stmt.add("UPDATE").addIdentifier(query.table.name).add("SET").space();
119
119
  for (const key of stmt.separate(Object.keys(data))) {
120
120
  stmt.identifier(key).add("=").space();
121
- this.formatExpr(
122
- {
123
- ...ctx,
124
- formatAsJson: true
125
- },
126
- ExprData.create(data[key])
127
- );
121
+ const value = data[key];
122
+ if (value instanceof Expr)
123
+ this.formatExprJson(ctx, ExprData.create(data[key]));
124
+ else
125
+ this.formatValue({ ...ctx, formatAsJson: true }, value);
128
126
  }
129
127
  this.formatWhere(ctx, query.where);
130
128
  this.formatLimit(ctx, query);
@@ -1,5 +1,5 @@
1
- export interface Sanitizer {
2
- escapeValue(value: any): string;
3
- escapeIdentifier(ident: string): string;
4
- formatParamValue(paramValue: any): any;
5
- }
1
+ export interface Sanitizer {
2
+ escapeValue(value: any): string;
3
+ escapeIdentifier(ident: string): string;
4
+ formatParamValue(paramValue: any): any;
5
+ }
@@ -1,3 +1,3 @@
1
- export declare class SqlError extends Error {
2
- constructor(cause: Error, sql: string);
3
- }
1
+ export declare class SqlError extends Error {
2
+ constructor(cause: Error, sql: string);
3
+ }