rado 0.1.49 → 0.1.51
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 +1 -1
- package/dist/define/Column.d.ts +58 -58
- package/dist/define/Cursor.d.ts +85 -85
- package/dist/define/Expr.d.ts +154 -154
- package/dist/define/Fields.d.ts +13 -13
- package/dist/define/Functions.d.ts +5 -5
- package/dist/define/Id.d.ts +3 -3
- package/dist/define/Index.d.ts +17 -17
- package/dist/define/Ops.d.ts +7 -7
- package/dist/define/OrderBy.d.ts +9 -9
- package/dist/define/Param.d.ts +15 -15
- package/dist/define/Query.d.ts +109 -109
- package/dist/define/Schema.d.ts +18 -18
- package/dist/define/Selection.d.ts +20 -20
- package/dist/define/Table.d.ts +62 -62
- package/dist/define/Target.d.ts +38 -38
- package/dist/define/Update.d.ts +4 -4
- package/dist/driver/better-sqlite3.d.ts +15 -15
- package/dist/driver/better-sqlite3.js +6 -1
- package/dist/driver/bun-sqlite.d.ts +18 -18
- package/dist/driver/bun-sqlite.js +6 -1
- package/dist/driver/sql.js.d.ts +15 -15
- package/dist/driver/sql.js.js +10 -5
- package/dist/driver/sqlite3.d.ts +18 -18
- package/dist/driver/sqlite3.js +6 -1
- package/dist/index.d.ts +21 -20
- package/dist/index.js +1 -0
- package/dist/lib/Driver.d.ts +110 -110
- package/dist/lib/Formatter.d.ts +67 -67
- package/dist/lib/Formatter.js +5 -5
- package/dist/lib/Sanitizer.d.ts +5 -5
- package/dist/lib/SqlError.d.ts +4 -0
- package/dist/lib/SqlError.js +12 -0
- package/dist/lib/Statement.d.ts +29 -29
- package/dist/lib/Statement.js +1 -1
- package/dist/sqlite/SqliteFormatter.d.ts +11 -11
- package/dist/sqlite/SqliteFunctions.d.ts +165 -165
- package/dist/sqlite/SqliteSchema.d.ts +25 -25
- package/dist/sqlite.d.ts +2 -2
- package/package.json +60 -58
- package/dist/lib/Column.d.ts +0 -57
- package/dist/lib/Column.js +0 -68
- package/dist/lib/Cursor.d.ts +0 -85
- package/dist/lib/Cursor.js +0 -256
- package/dist/lib/Expr.d.ts +0 -154
- package/dist/lib/Expr.js +0 -284
- package/dist/lib/Fields.d.ts +0 -13
- package/dist/lib/Fields.js +0 -0
- package/dist/lib/Functions.d.ts +0 -5
- package/dist/lib/Functions.js +0 -11
- package/dist/lib/Id.d.ts +0 -3
- package/dist/lib/Id.js +0 -0
- package/dist/lib/Index.d.ts +0 -17
- package/dist/lib/Index.js +0 -20
- package/dist/lib/Ops.d.ts +0 -7
- package/dist/lib/Ops.js +0 -36
- package/dist/lib/OrderBy.d.ts +0 -9
- package/dist/lib/OrderBy.js +0 -9
- package/dist/lib/Param.d.ts +0 -20
- package/dist/lib/Param.js +0 -27
- package/dist/lib/Query.d.ts +0 -109
- package/dist/lib/Query.js +0 -74
- package/dist/lib/Schema.d.ts +0 -18
- package/dist/lib/Schema.js +0 -67
- package/dist/lib/Selection.d.ts +0 -20
- package/dist/lib/Selection.js +0 -7
- package/dist/lib/Table.d.ts +0 -62
- package/dist/lib/Table.js +0 -130
- package/dist/lib/Target.d.ts +0 -38
- package/dist/lib/Target.js +0 -42
- package/dist/lib/Update.d.ts +0 -4
- package/dist/lib/Update.js +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// src/driver/better-sqlite3.ts
|
|
2
2
|
import { Driver } from "../lib/Driver.js";
|
|
3
|
+
import { SqlError } from "../lib/SqlError.js";
|
|
3
4
|
import { SqliteFormatter } from "../sqlite/SqliteFormatter.js";
|
|
4
5
|
import { SqliteSchema } from "../sqlite/SqliteSchema.js";
|
|
5
6
|
var PreparedStatement = class {
|
|
@@ -32,7 +33,11 @@ var BetterSqlite3Driver = class extends Driver.Sync {
|
|
|
32
33
|
tableData;
|
|
33
34
|
indexData;
|
|
34
35
|
prepareStatement(stmt) {
|
|
35
|
-
|
|
36
|
+
try {
|
|
37
|
+
return new PreparedStatement(this.db.prepare(stmt.sql));
|
|
38
|
+
} catch (e) {
|
|
39
|
+
throw new SqlError(e, stmt.sql);
|
|
40
|
+
}
|
|
36
41
|
}
|
|
37
42
|
schemaInstructions(tableName) {
|
|
38
43
|
const columnData = this.tableData(tableName);
|
|
@@ -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;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { Cursor } from "../define/Cursor.js";
|
|
3
3
|
import { Query } from "../define/Query.js";
|
|
4
4
|
import { Driver } from "../lib/Driver.js";
|
|
5
|
+
import { SqlError } from "../lib/SqlError.js";
|
|
5
6
|
import { SqliteFormatter } from "../sqlite/SqliteFormatter.js";
|
|
6
7
|
import { SqliteSchema } from "../sqlite/SqliteSchema.js";
|
|
7
8
|
var PreparedStatement = class {
|
|
@@ -47,7 +48,11 @@ var BunSqliteDriver = class extends Driver.Sync {
|
|
|
47
48
|
indexData;
|
|
48
49
|
lastChanges;
|
|
49
50
|
prepareStatement(stmt) {
|
|
50
|
-
|
|
51
|
+
try {
|
|
52
|
+
return new PreparedStatement(this.lastChanges, this.db.prepare(stmt.sql));
|
|
53
|
+
} catch (e) {
|
|
54
|
+
throw new SqlError(e, stmt.sql);
|
|
55
|
+
}
|
|
51
56
|
}
|
|
52
57
|
schemaInstructions(tableName) {
|
|
53
58
|
const columnData = this.tableData(tableName);
|
package/dist/driver/sql.js.d.ts
CHANGED
|
@@ -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;
|
package/dist/driver/sql.js.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// src/driver/sql.js.ts
|
|
2
2
|
import { Driver } from "../lib/Driver.js";
|
|
3
|
+
import { SqlError } from "../lib/SqlError.js";
|
|
3
4
|
import { SqliteFormatter } from "../sqlite/SqliteFormatter.js";
|
|
4
5
|
import { SqliteSchema } from "../sqlite/SqliteSchema.js";
|
|
5
6
|
var PreparedStatement = class {
|
|
@@ -43,11 +44,15 @@ var SqlJsDriver = class extends Driver.Sync {
|
|
|
43
44
|
tableData;
|
|
44
45
|
indexData;
|
|
45
46
|
prepareStatement(stmt, discardAfter) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
try {
|
|
48
|
+
return new PreparedStatement(
|
|
49
|
+
this.db,
|
|
50
|
+
this.db.prepare(stmt.sql),
|
|
51
|
+
discardAfter
|
|
52
|
+
);
|
|
53
|
+
} catch (e) {
|
|
54
|
+
throw new SqlError(e, stmt.sql);
|
|
55
|
+
}
|
|
51
56
|
}
|
|
52
57
|
schemaInstructions(tableName) {
|
|
53
58
|
const columnData = this.tableData(tableName);
|
package/dist/driver/sqlite3.d.ts
CHANGED
|
@@ -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/driver/sqlite3.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// src/driver/sqlite3.ts
|
|
2
2
|
import { Driver } from "../lib/Driver.js";
|
|
3
|
+
import { SqlError } from "../lib/SqlError.js";
|
|
3
4
|
import { SqliteFormatter } from "../sqlite/SqliteFormatter.js";
|
|
4
5
|
import { SqliteSchema } from "../sqlite/SqliteSchema.js";
|
|
5
6
|
var PreparedStatement = class {
|
|
@@ -93,7 +94,11 @@ var Sqlite3Driver = class extends Driver.Async {
|
|
|
93
94
|
return super.executeQuery(query, stmt, params);
|
|
94
95
|
}
|
|
95
96
|
prepareStatement(stmt) {
|
|
96
|
-
|
|
97
|
+
try {
|
|
98
|
+
return new PreparedStatement(this.db.prepare(stmt.sql));
|
|
99
|
+
} catch (e) {
|
|
100
|
+
throw new SqlError(e, stmt.sql);
|
|
101
|
+
}
|
|
97
102
|
}
|
|
98
103
|
async schemaInstructions(tableName) {
|
|
99
104
|
const columnData = await this.tableData(tableName);
|
package/dist/index.d.ts
CHANGED
|
@@ -1,20 +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
|
|
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';
|
package/dist/index.js
CHANGED
package/dist/lib/Driver.d.ts
CHANGED
|
@@ -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 {};
|
package/dist/lib/Formatter.d.ts
CHANGED
|
@@ -1,67 +1,67 @@
|
|
|
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 } 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
|
-
format<T>(ctx: FormatContext, query: Query<T>): Statement;
|
|
34
|
-
formatSelect(ctx: FormatContext, query: Query.Select): Statement;
|
|
35
|
-
formatInsert(ctx: FormatContext, query: Query.Insert): Statement;
|
|
36
|
-
formatUpdate(ctx: FormatContext, query: Query.Update): Statement;
|
|
37
|
-
formatDelete(ctx: FormatContext, query: Query.Delete): Statement;
|
|
38
|
-
formatCreateTable(ctx: FormatContext, query: Query.CreateTable): Statement;
|
|
39
|
-
formatCreateIndex(ctx: FormatContext, query: Query.CreateIndex): Statement;
|
|
40
|
-
formatDropIndex(ctx: FormatContext, query: Query.DropIndex): Statement;
|
|
41
|
-
formatAlterTable(ctx: FormatContext, query: Query.AlterTable): Statement;
|
|
42
|
-
formatTransaction(ctx: FormatContext, { op, id }: Query.Transaction): Statement;
|
|
43
|
-
formatBatch(ctx: FormatContext, { queries }: Query.Batch): Statement;
|
|
44
|
-
formatRaw(ctx: FormatContext, { strings, params }: Query.Raw): Statement;
|
|
45
|
-
formatColumn(ctx: FormatContext, column: ColumnData): Statement;
|
|
46
|
-
formatContraintReference(ctx: FormatContext, reference: ExprData): Statement;
|
|
47
|
-
formatType(ctx: FormatContext, type: ColumnType): Statement;
|
|
48
|
-
formatInsertRow(ctx: FormatContext, columns: Record<string, ColumnData>, row: Record<string, any>): Statement;
|
|
49
|
-
formatColumnValue(ctx: FormatContext, column: ColumnData, columnValue: any): Statement;
|
|
50
|
-
formatTarget(ctx: FormatContext, target: Target): Statement;
|
|
51
|
-
formatWhere(ctx: FormatContext, expr: ExprData | undefined): Statement;
|
|
52
|
-
formatHaving(ctx: FormatContext, expr: ExprData | undefined): Statement;
|
|
53
|
-
formatGroupBy(ctx: FormatContext, groupBy: Array<ExprData> | undefined): Statement;
|
|
54
|
-
formatOrderBy(ctx: FormatContext, orderBy: Array<OrderBy> | undefined): Statement;
|
|
55
|
-
formatLimit(ctx: FormatContext, { limit, offset, singleResult }: Query.QueryBase): Statement;
|
|
56
|
-
formatSelection(ctx: FormatContext, selection: ExprData, formatSubject?: FormatSubject): Statement;
|
|
57
|
-
formatExprJson(ctx: FormatContext, expr: ExprData): Statement;
|
|
58
|
-
formatExprValue(ctx: FormatContext, expr: ExprData): Statement;
|
|
59
|
-
formatIn(ctx: FormatContext, expr: ExprData): Statement;
|
|
60
|
-
retrieveField(expr: ExprData, field: string): ExprData | undefined;
|
|
61
|
-
formatField(ctx: FormatContext, expr: ExprData, field: string): Statement;
|
|
62
|
-
formatString(ctx: FormatContext, input: string): Statement;
|
|
63
|
-
formatInlineValue(ctx: FormatContext, rawValue: any): Statement;
|
|
64
|
-
formatValue(ctx: FormatContext, rawValue: any): Statement;
|
|
65
|
-
formatExpr(ctx: FormatContext, expr: ExprData): Statement;
|
|
66
|
-
}
|
|
67
|
-
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 } 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
|
+
format<T>(ctx: FormatContext, query: Query<T>): Statement;
|
|
34
|
+
formatSelect(ctx: FormatContext, query: Query.Select): Statement;
|
|
35
|
+
formatInsert(ctx: FormatContext, query: Query.Insert): Statement;
|
|
36
|
+
formatUpdate(ctx: FormatContext, query: Query.Update): Statement;
|
|
37
|
+
formatDelete(ctx: FormatContext, query: Query.Delete): Statement;
|
|
38
|
+
formatCreateTable(ctx: FormatContext, query: Query.CreateTable): Statement;
|
|
39
|
+
formatCreateIndex(ctx: FormatContext, query: Query.CreateIndex): Statement;
|
|
40
|
+
formatDropIndex(ctx: FormatContext, query: Query.DropIndex): Statement;
|
|
41
|
+
formatAlterTable(ctx: FormatContext, query: Query.AlterTable): Statement;
|
|
42
|
+
formatTransaction(ctx: FormatContext, { op, id }: Query.Transaction): Statement;
|
|
43
|
+
formatBatch(ctx: FormatContext, { queries }: Query.Batch): Statement;
|
|
44
|
+
formatRaw(ctx: FormatContext, { strings, params }: Query.Raw): Statement;
|
|
45
|
+
formatColumn(ctx: FormatContext, column: ColumnData): Statement;
|
|
46
|
+
formatContraintReference(ctx: FormatContext, reference: ExprData): Statement;
|
|
47
|
+
formatType(ctx: FormatContext, type: ColumnType): Statement;
|
|
48
|
+
formatInsertRow(ctx: FormatContext, columns: Record<string, ColumnData>, row: Record<string, any>): Statement;
|
|
49
|
+
formatColumnValue(ctx: FormatContext, column: ColumnData, columnValue: any): Statement;
|
|
50
|
+
formatTarget(ctx: FormatContext, target: Target): Statement;
|
|
51
|
+
formatWhere(ctx: FormatContext, expr: ExprData | undefined): Statement;
|
|
52
|
+
formatHaving(ctx: FormatContext, expr: ExprData | undefined): Statement;
|
|
53
|
+
formatGroupBy(ctx: FormatContext, groupBy: Array<ExprData> | undefined): Statement;
|
|
54
|
+
formatOrderBy(ctx: FormatContext, orderBy: Array<OrderBy> | undefined): Statement;
|
|
55
|
+
formatLimit(ctx: FormatContext, { limit, offset, singleResult }: Query.QueryBase): Statement;
|
|
56
|
+
formatSelection(ctx: FormatContext, selection: ExprData, formatSubject?: FormatSubject): Statement;
|
|
57
|
+
formatExprJson(ctx: FormatContext, expr: ExprData): Statement;
|
|
58
|
+
formatExprValue(ctx: FormatContext, expr: ExprData): Statement;
|
|
59
|
+
formatIn(ctx: FormatContext, expr: ExprData): Statement;
|
|
60
|
+
retrieveField(expr: ExprData, field: string): ExprData | undefined;
|
|
61
|
+
formatField(ctx: FormatContext, expr: ExprData, field: string): Statement;
|
|
62
|
+
formatString(ctx: FormatContext, input: string): Statement;
|
|
63
|
+
formatInlineValue(ctx: FormatContext, rawValue: any): Statement;
|
|
64
|
+
formatValue(ctx: FormatContext, rawValue: any): Statement;
|
|
65
|
+
formatExpr(ctx: FormatContext, expr: ExprData): Statement;
|
|
66
|
+
}
|
|
67
|
+
export {};
|