rado 0.1.23 → 0.1.25
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/driver/better-sqlite3.d.ts +15 -17
- package/dist/driver/better-sqlite3.js +25 -18
- package/dist/driver/sql.js.d.ts +15 -17
- package/dist/driver/sql.js.js +29 -26
- package/dist/driver/sqlite3.d.ts +18 -20
- package/dist/driver/sqlite3.js +40 -29
- package/dist/index.d.ts +20 -20
- package/dist/lib/Column.d.ts +57 -57
- package/dist/lib/Cursor.d.ts +78 -77
- package/dist/lib/Cursor.js +3 -0
- package/dist/lib/Driver.d.ts +105 -89
- package/dist/lib/Driver.js +72 -28
- package/dist/lib/Expr.d.ts +154 -154
- package/dist/lib/Fields.d.ts +13 -13
- package/dist/lib/Formatter.d.ts +56 -56
- package/dist/lib/Formatter.js +14 -4
- package/dist/lib/Functions.d.ts +7 -7
- package/dist/lib/Id.d.ts +3 -3
- package/dist/lib/Index.d.ts +17 -17
- package/dist/lib/Index.js +3 -3
- package/dist/lib/Ops.d.ts +8 -8
- package/dist/lib/OrderBy.d.ts +9 -9
- package/dist/lib/Param.d.ts +20 -15
- package/dist/lib/Param.js +10 -1
- package/dist/lib/Query.d.ts +108 -108
- package/dist/lib/Sanitizer.d.ts +4 -4
- package/dist/lib/Schema.d.ts +18 -18
- package/dist/lib/Schema.js +4 -4
- package/dist/lib/Selection.d.ts +20 -20
- package/dist/lib/Statement.d.ts +71 -61
- package/dist/lib/Statement.js +46 -5
- package/dist/lib/Table.d.ts +59 -58
- package/dist/lib/Table.js +4 -7
- package/dist/lib/Target.d.ts +30 -30
- package/dist/lib/Update.d.ts +4 -4
- package/dist/sqlite/SqliteFormatter.d.ts +11 -11
- package/dist/sqlite/SqliteFunctions.d.ts +156 -156
- package/dist/sqlite/SqliteSchema.d.ts +25 -24
- package/dist/sqlite/SqliteSchema.js +5 -4
- package/dist/sqlite.d.ts +2 -2
- package/package.json +47 -47
- package/dist/Column.d.ts +0 -41
- package/dist/Column.js +0 -58
- package/dist/Cursor.d.ts +0 -77
- package/dist/Cursor.js +0 -211
- package/dist/Driver.d.ts +0 -72
- package/dist/Driver.js +0 -145
- package/dist/Expr.d.ts +0 -149
- package/dist/Expr.js +0 -284
- package/dist/Fields.d.ts +0 -9
- package/dist/Fields.js +0 -0
- package/dist/Formatter.d.ts +0 -50
- package/dist/Formatter.js +0 -453
- package/dist/Functions.d.ts +0 -8
- package/dist/Functions.js +0 -11
- package/dist/Key.d.ts +0 -5
- package/dist/Ops.d.ts +0 -8
- package/dist/Ops.js +0 -46
- package/dist/OrderBy.d.ts +0 -9
- package/dist/OrderBy.js +0 -9
- package/dist/Param.d.ts +0 -15
- package/dist/Param.js +0 -18
- package/dist/Query.d.ts +0 -94
- package/dist/Query.js +0 -57
- package/dist/Sanitizer.d.ts +0 -4
- package/dist/Sanitizer.js +0 -0
- package/dist/Schema.d.ts +0 -10
- package/dist/Selection.d.ts +0 -18
- package/dist/Selection.js +0 -0
- package/dist/Statement.d.ts +0 -57
- package/dist/Statement.js +0 -184
- package/dist/Table.d.ts +0 -47
- package/dist/Table.js +0 -82
- package/dist/Target.d.ts +0 -30
- package/dist/Target.js +0 -37
- package/dist/Update.d.ts +0 -4
- package/dist/Update.js +0 -0
- package/dist/sqlite/index.d.ts +0 -2
- package/dist/sqlite/index.js +0 -3
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
# rado
|
|
1
|
+
# rado
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
import type { Database } from 'better-sqlite3';
|
|
2
|
-
import { Driver } from '../lib/Driver';
|
|
3
|
-
import { SchemaInstructions } from '../lib/Schema';
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
export declare function connect(db: Database): BetterSqlite3Driver;
|
|
1
|
+
import type { Database } from 'better-sqlite3';
|
|
2
|
+
import { Driver } from '../lib/Driver';
|
|
3
|
+
import { SchemaInstructions } from '../lib/Schema';
|
|
4
|
+
import { CompiledStatement } from '../lib/Statement';
|
|
5
|
+
import { SqliteSchema } from '../sqlite/SqliteSchema';
|
|
6
|
+
export declare class BetterSqlite3Driver 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: CompiledStatement): Driver.Sync.PreparedStatement;
|
|
12
|
+
schemaInstructions(tableName: string): SchemaInstructions | undefined;
|
|
13
|
+
export(): Uint8Array;
|
|
14
|
+
}
|
|
15
|
+
export declare function connect(db: Database): BetterSqlite3Driver;
|
|
@@ -2,31 +2,38 @@
|
|
|
2
2
|
import { Driver } from "../lib/Driver.js";
|
|
3
3
|
import { SqliteFormatter } from "../sqlite/SqliteFormatter.js";
|
|
4
4
|
import { SqliteSchema } from "../sqlite/SqliteSchema.js";
|
|
5
|
+
var PreparedStatement = class {
|
|
6
|
+
constructor(stmt) {
|
|
7
|
+
this.stmt = stmt;
|
|
8
|
+
}
|
|
9
|
+
all(params = []) {
|
|
10
|
+
return this.stmt.all(...params);
|
|
11
|
+
}
|
|
12
|
+
run(params = []) {
|
|
13
|
+
return { rowsAffected: this.stmt.run(...params).changes };
|
|
14
|
+
}
|
|
15
|
+
get(params = []) {
|
|
16
|
+
return this.stmt.get(...params);
|
|
17
|
+
}
|
|
18
|
+
execute(params = []) {
|
|
19
|
+
this.stmt.run(...params);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
5
22
|
var BetterSqlite3Driver = class extends Driver.Sync {
|
|
6
23
|
constructor(db) {
|
|
7
24
|
super(new SqliteFormatter());
|
|
8
25
|
this.db = db;
|
|
26
|
+
this.tableData = this.prepare(SqliteSchema.tableData);
|
|
27
|
+
this.indexData = this.prepare(SqliteSchema.indexData);
|
|
9
28
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return this.db.prepare(sql).raw().all(...params);
|
|
15
|
-
}
|
|
16
|
-
execute([sql, params]) {
|
|
17
|
-
this.db.prepare(sql).run(...params);
|
|
18
|
-
}
|
|
19
|
-
mutate([sql, params]) {
|
|
20
|
-
const { changes } = this.db.prepare(sql).run(...params);
|
|
21
|
-
return { rowsAffected: changes };
|
|
29
|
+
tableData;
|
|
30
|
+
indexData;
|
|
31
|
+
prepareStatement(stmt) {
|
|
32
|
+
return new PreparedStatement(this.db.prepare(stmt.sql));
|
|
22
33
|
}
|
|
23
34
|
schemaInstructions(tableName) {
|
|
24
|
-
const columnData = this.
|
|
25
|
-
|
|
26
|
-
);
|
|
27
|
-
const indexData = this.rows(
|
|
28
|
-
SqliteSchema.indexData(tableName).compile(this.formatter)
|
|
29
|
-
);
|
|
35
|
+
const columnData = this.tableData(tableName);
|
|
36
|
+
const indexData = this.indexData(tableName);
|
|
30
37
|
return SqliteSchema.createInstructions(columnData, indexData);
|
|
31
38
|
}
|
|
32
39
|
export() {
|
package/dist/driver/sql.js.d.ts
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
import type { Database } from 'sql.js';
|
|
2
|
-
import { Driver } from '../lib/Driver';
|
|
3
|
-
import { SchemaInstructions } from '../lib/Schema';
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
export declare function connect(db: Database): SqlJsDriver;
|
|
1
|
+
import type { Database } from 'sql.js';
|
|
2
|
+
import { Driver } from '../lib/Driver';
|
|
3
|
+
import { SchemaInstructions } from '../lib/Schema';
|
|
4
|
+
import { CompiledStatement } 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: CompiledStatement): 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
|
@@ -2,41 +2,44 @@
|
|
|
2
2
|
import { Driver } from "../lib/Driver.js";
|
|
3
3
|
import { SqliteFormatter } from "../sqlite/SqliteFormatter.js";
|
|
4
4
|
import { SqliteSchema } from "../sqlite/SqliteSchema.js";
|
|
5
|
-
var
|
|
6
|
-
constructor(db) {
|
|
7
|
-
super(new SqliteFormatter());
|
|
5
|
+
var PreparedStatement = class {
|
|
6
|
+
constructor(db, stmt) {
|
|
8
7
|
this.db = db;
|
|
8
|
+
this.stmt = stmt;
|
|
9
9
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
stmt.bind(params);
|
|
10
|
+
all(params) {
|
|
11
|
+
this.stmt.bind(params);
|
|
13
12
|
const res = [];
|
|
14
|
-
while (stmt.step())
|
|
15
|
-
res.push(stmt.getAsObject());
|
|
13
|
+
while (this.stmt.step())
|
|
14
|
+
res.push(this.stmt.getAsObject());
|
|
16
15
|
return res;
|
|
17
16
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const res = [];
|
|
22
|
-
while (stmt.step())
|
|
23
|
-
res.push(stmt.get());
|
|
24
|
-
return res;
|
|
17
|
+
run(params) {
|
|
18
|
+
this.stmt.run(params);
|
|
19
|
+
return { rowsAffected: this.db.getRowsModified() };
|
|
25
20
|
}
|
|
26
|
-
|
|
27
|
-
this.
|
|
21
|
+
get(params) {
|
|
22
|
+
return this.all(params)[0];
|
|
28
23
|
}
|
|
29
|
-
|
|
30
|
-
this.
|
|
31
|
-
|
|
24
|
+
execute(params) {
|
|
25
|
+
this.stmt.run(params);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
var SqlJsDriver = class extends Driver.Sync {
|
|
29
|
+
constructor(db) {
|
|
30
|
+
super(new SqliteFormatter());
|
|
31
|
+
this.db = db;
|
|
32
|
+
this.tableData = this.prepare(SqliteSchema.tableData);
|
|
33
|
+
this.indexData = this.prepare(SqliteSchema.indexData);
|
|
34
|
+
}
|
|
35
|
+
tableData;
|
|
36
|
+
indexData;
|
|
37
|
+
prepareStatement(stmt) {
|
|
38
|
+
return new PreparedStatement(this.db, this.db.prepare(stmt.sql));
|
|
32
39
|
}
|
|
33
40
|
schemaInstructions(tableName) {
|
|
34
|
-
const columnData = this.
|
|
35
|
-
|
|
36
|
-
);
|
|
37
|
-
const indexData = this.rows(
|
|
38
|
-
SqliteSchema.indexData(tableName).compile(this.formatter)
|
|
39
|
-
);
|
|
41
|
+
const columnData = this.tableData(tableName);
|
|
42
|
+
const indexData = this.indexData(tableName);
|
|
40
43
|
return SqliteSchema.createInstructions(columnData, indexData);
|
|
41
44
|
}
|
|
42
45
|
export() {
|
package/dist/driver/sqlite3.d.ts
CHANGED
|
@@ -1,20 +1,18 @@
|
|
|
1
|
-
import type { Database } from 'sqlite3';
|
|
2
|
-
import { Driver } from '../lib/Driver';
|
|
3
|
-
import { Query } from '../lib/Query';
|
|
4
|
-
import { SchemaInstructions } from '../lib/Schema';
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
export declare function connect(db: Database): Sqlite3Driver;
|
|
1
|
+
import type { Database } from 'sqlite3';
|
|
2
|
+
import { Driver } from '../lib/Driver';
|
|
3
|
+
import { Query } from '../lib/Query';
|
|
4
|
+
import { SchemaInstructions } from '../lib/Schema';
|
|
5
|
+
import { CompiledStatement } 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: CompiledStatement): 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
|
@@ -2,20 +2,13 @@
|
|
|
2
2
|
import { Driver } from "../lib/Driver.js";
|
|
3
3
|
import { SqliteFormatter } from "../sqlite/SqliteFormatter.js";
|
|
4
4
|
import { SqliteSchema } from "../sqlite/SqliteSchema.js";
|
|
5
|
-
var
|
|
6
|
-
constructor(
|
|
7
|
-
|
|
8
|
-
this.db = db;
|
|
9
|
-
}
|
|
10
|
-
lock;
|
|
11
|
-
async executeQuery(query) {
|
|
12
|
-
await this.lock;
|
|
13
|
-
return super.executeQuery(query);
|
|
5
|
+
var PreparedStatement = class {
|
|
6
|
+
constructor(stmt) {
|
|
7
|
+
this.stmt = stmt;
|
|
14
8
|
}
|
|
15
|
-
|
|
9
|
+
all(params) {
|
|
16
10
|
return new Promise((resolve, reject) => {
|
|
17
|
-
|
|
18
|
-
stmt.all(params, (err, rows) => {
|
|
11
|
+
this.stmt.all(params, (err, rows) => {
|
|
19
12
|
if (err)
|
|
20
13
|
reject(err);
|
|
21
14
|
else
|
|
@@ -23,39 +16,57 @@ var Sqlite3Driver = class extends Driver.Async {
|
|
|
23
16
|
});
|
|
24
17
|
});
|
|
25
18
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
19
|
+
run(params) {
|
|
20
|
+
return new Promise((resolve, reject) => {
|
|
21
|
+
this.stmt.run(params, function(err) {
|
|
22
|
+
if (err)
|
|
23
|
+
reject(err);
|
|
24
|
+
else
|
|
25
|
+
resolve({ rowsAffected: this.changes });
|
|
26
|
+
});
|
|
27
|
+
});
|
|
29
28
|
}
|
|
30
|
-
|
|
29
|
+
get(params) {
|
|
31
30
|
return new Promise((resolve, reject) => {
|
|
32
|
-
|
|
33
|
-
stmt.run(params, (err) => {
|
|
31
|
+
this.stmt.get(params, (err, row) => {
|
|
34
32
|
if (err)
|
|
35
33
|
reject(err);
|
|
36
34
|
else
|
|
37
|
-
resolve();
|
|
35
|
+
resolve(row);
|
|
38
36
|
});
|
|
39
37
|
});
|
|
40
38
|
}
|
|
41
|
-
|
|
39
|
+
execute(params) {
|
|
42
40
|
return new Promise((resolve, reject) => {
|
|
43
|
-
|
|
44
|
-
stmt.run(params, function(err) {
|
|
41
|
+
this.stmt.run(params, (err) => {
|
|
45
42
|
if (err)
|
|
46
43
|
reject(err);
|
|
47
44
|
else
|
|
48
|
-
resolve(
|
|
45
|
+
resolve();
|
|
49
46
|
});
|
|
50
47
|
});
|
|
51
48
|
}
|
|
49
|
+
};
|
|
50
|
+
var Sqlite3Driver = class extends Driver.Async {
|
|
51
|
+
constructor(db) {
|
|
52
|
+
super(new SqliteFormatter());
|
|
53
|
+
this.db = db;
|
|
54
|
+
this.tableData = this.prepare(SqliteSchema.tableData);
|
|
55
|
+
this.indexData = this.prepare(SqliteSchema.indexData);
|
|
56
|
+
}
|
|
57
|
+
lock;
|
|
58
|
+
tableData;
|
|
59
|
+
indexData;
|
|
60
|
+
async executeQuery(query, stmt, params) {
|
|
61
|
+
await this.lock;
|
|
62
|
+
return super.executeQuery(query, stmt, params);
|
|
63
|
+
}
|
|
64
|
+
prepareStatement(stmt) {
|
|
65
|
+
return new PreparedStatement(this.db.prepare(stmt.sql));
|
|
66
|
+
}
|
|
52
67
|
async schemaInstructions(tableName) {
|
|
53
|
-
const columnData = await this.
|
|
54
|
-
|
|
55
|
-
);
|
|
56
|
-
const indexData = await this.rows(
|
|
57
|
-
SqliteSchema.indexData(tableName).compile(this.formatter)
|
|
58
|
-
);
|
|
68
|
+
const columnData = await this.tableData(tableName);
|
|
69
|
+
const indexData = await this.indexData(tableName);
|
|
59
70
|
return SqliteSchema.createInstructions(columnData, indexData);
|
|
60
71
|
}
|
|
61
72
|
isolate() {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
export * from './lib/Column';
|
|
2
|
-
export * from './lib/Cursor';
|
|
3
|
-
export * from './lib/Driver';
|
|
4
|
-
export * from './lib/Expr';
|
|
5
|
-
export * from './lib/Fields';
|
|
6
|
-
export * from './lib/Formatter';
|
|
7
|
-
export * from './lib/Functions';
|
|
8
|
-
export * from './lib/Id';
|
|
9
|
-
export * from './lib/Index';
|
|
10
|
-
export * from './lib/Ops';
|
|
11
|
-
export * from './lib/OrderBy';
|
|
12
|
-
export * from './lib/Param';
|
|
13
|
-
export * from './lib/Query';
|
|
14
|
-
export * from './lib/Sanitizer';
|
|
15
|
-
export * from './lib/Schema';
|
|
16
|
-
export * from './lib/Selection';
|
|
17
|
-
export * from './lib/Statement';
|
|
18
|
-
export * from './lib/Table';
|
|
19
|
-
export * from './lib/Target';
|
|
20
|
-
export * from './lib/Update';
|
|
1
|
+
export * from './lib/Column';
|
|
2
|
+
export * from './lib/Cursor';
|
|
3
|
+
export * from './lib/Driver';
|
|
4
|
+
export * from './lib/Expr';
|
|
5
|
+
export * from './lib/Fields';
|
|
6
|
+
export * from './lib/Formatter';
|
|
7
|
+
export * from './lib/Functions';
|
|
8
|
+
export * from './lib/Id';
|
|
9
|
+
export * from './lib/Index';
|
|
10
|
+
export * from './lib/Ops';
|
|
11
|
+
export * from './lib/OrderBy';
|
|
12
|
+
export * from './lib/Param';
|
|
13
|
+
export * from './lib/Query';
|
|
14
|
+
export * from './lib/Sanitizer';
|
|
15
|
+
export * from './lib/Schema';
|
|
16
|
+
export * from './lib/Selection';
|
|
17
|
+
export * from './lib/Statement';
|
|
18
|
+
export * from './lib/Table';
|
|
19
|
+
export * from './lib/Target';
|
|
20
|
+
export * from './lib/Update';
|
package/dist/lib/Column.d.ts
CHANGED
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
import { EV, Expr, ExprData } from './Expr';
|
|
2
|
-
export declare enum ColumnType {
|
|
3
|
-
String = "String",
|
|
4
|
-
Integer = "Integer",
|
|
5
|
-
Number = "Number",
|
|
6
|
-
Boolean = "Boolean",
|
|
7
|
-
Json = "Json"
|
|
8
|
-
}
|
|
9
|
-
interface PartialColumnData {
|
|
10
|
-
type: ColumnType;
|
|
11
|
-
name?: string;
|
|
12
|
-
nullable?: boolean;
|
|
13
|
-
defaultValue?: ExprData;
|
|
14
|
-
autoIncrement?: boolean;
|
|
15
|
-
primaryKey?: boolean;
|
|
16
|
-
unique?: boolean;
|
|
17
|
-
references?: ExprData;
|
|
18
|
-
}
|
|
19
|
-
export interface ColumnData extends PartialColumnData {
|
|
20
|
-
type: ColumnType;
|
|
21
|
-
name: string;
|
|
22
|
-
}
|
|
23
|
-
export declare class Column<T> {
|
|
24
|
-
data: PartialColumnData;
|
|
25
|
-
constructor(data: PartialColumnData);
|
|
26
|
-
name(name: string): Column<T>;
|
|
27
|
-
nullable(): Column<T | null>;
|
|
28
|
-
autoIncrement(): Column<Column.IsOptional<T>>;
|
|
29
|
-
primaryKey<K extends string>(): Column<Column.IsPrimary<T, K>>;
|
|
30
|
-
references<X extends T>(column: Expr<X>): Column<X>;
|
|
31
|
-
unique(): Column<T>;
|
|
32
|
-
defaultValue(value: EV<T>): Column<Column.IsOptional<T>>;
|
|
33
|
-
}
|
|
34
|
-
export type PrimaryKey<T, K> = string extends K ? T : T & {
|
|
35
|
-
[Column.isPrimary]: K;
|
|
36
|
-
};
|
|
37
|
-
export declare namespace Column {
|
|
38
|
-
const isOptional: unique symbol;
|
|
39
|
-
type IsOptional<T> = {
|
|
40
|
-
[isOptional]: true;
|
|
41
|
-
__t: T;
|
|
42
|
-
};
|
|
43
|
-
const isPrimary: unique symbol;
|
|
44
|
-
type IsPrimary<T, K> = {
|
|
45
|
-
[isPrimary]: K;
|
|
46
|
-
__t: T;
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
export declare const column: {
|
|
50
|
-
string<T extends string = string>(): Column<T>;
|
|
51
|
-
integer<T_1 extends number = number>(): Column<T_1>;
|
|
52
|
-
number<T_2 extends number = number>(): Column<T_2>;
|
|
53
|
-
boolean<T_3 extends boolean = boolean>(): Column<T_3>;
|
|
54
|
-
object<T_4 extends object = object>(): Column<T_4>;
|
|
55
|
-
array<T_5 = any>(): Column<T_5[]>;
|
|
56
|
-
};
|
|
57
|
-
export {};
|
|
1
|
+
import { EV, Expr, ExprData } from './Expr';
|
|
2
|
+
export declare enum ColumnType {
|
|
3
|
+
String = "String",
|
|
4
|
+
Integer = "Integer",
|
|
5
|
+
Number = "Number",
|
|
6
|
+
Boolean = "Boolean",
|
|
7
|
+
Json = "Json"
|
|
8
|
+
}
|
|
9
|
+
interface PartialColumnData {
|
|
10
|
+
type: ColumnType;
|
|
11
|
+
name?: string;
|
|
12
|
+
nullable?: boolean;
|
|
13
|
+
defaultValue?: ExprData;
|
|
14
|
+
autoIncrement?: boolean;
|
|
15
|
+
primaryKey?: boolean;
|
|
16
|
+
unique?: boolean;
|
|
17
|
+
references?: ExprData;
|
|
18
|
+
}
|
|
19
|
+
export interface ColumnData extends PartialColumnData {
|
|
20
|
+
type: ColumnType;
|
|
21
|
+
name: string;
|
|
22
|
+
}
|
|
23
|
+
export declare class Column<T> {
|
|
24
|
+
data: PartialColumnData;
|
|
25
|
+
constructor(data: PartialColumnData);
|
|
26
|
+
name(name: string): Column<T>;
|
|
27
|
+
nullable(): Column<T | null>;
|
|
28
|
+
autoIncrement(): Column<Column.IsOptional<T>>;
|
|
29
|
+
primaryKey<K extends string>(): Column<Column.IsPrimary<T, K>>;
|
|
30
|
+
references<X extends T>(column: Expr<X>): Column<X>;
|
|
31
|
+
unique(): Column<T>;
|
|
32
|
+
defaultValue(value: EV<T>): Column<Column.IsOptional<T>>;
|
|
33
|
+
}
|
|
34
|
+
export type PrimaryKey<T, K> = string extends K ? T : T & {
|
|
35
|
+
[Column.isPrimary]: K;
|
|
36
|
+
};
|
|
37
|
+
export declare namespace Column {
|
|
38
|
+
const isOptional: unique symbol;
|
|
39
|
+
type IsOptional<T> = {
|
|
40
|
+
[isOptional]: true;
|
|
41
|
+
__t: T;
|
|
42
|
+
};
|
|
43
|
+
const isPrimary: unique symbol;
|
|
44
|
+
type IsPrimary<T, K> = {
|
|
45
|
+
[isPrimary]: K;
|
|
46
|
+
__t: T;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export declare const column: {
|
|
50
|
+
string<T extends string = string>(): Column<T>;
|
|
51
|
+
integer<T_1 extends number = number>(): Column<T_1>;
|
|
52
|
+
number<T_2 extends number = number>(): Column<T_2>;
|
|
53
|
+
boolean<T_3 extends boolean = boolean>(): Column<T_3>;
|
|
54
|
+
object<T_4 extends object = object>(): Column<T_4>;
|
|
55
|
+
array<T_5 = any>(): Column<T_5[]>;
|
|
56
|
+
};
|
|
57
|
+
export {};
|