@ignisia/sql 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/column/constants.d.cts +150 -0
- package/dist/cjs/column/constants.js +158 -0
- package/dist/cjs/column/index.d.cts +43 -0
- package/dist/cjs/column/index.js +127 -0
- package/dist/cjs/column/types.d.cts +43 -0
- package/dist/cjs/column/types.js +4 -0
- package/dist/cjs/column/utils.d.cts +133 -0
- package/dist/cjs/column/utils.js +34 -0
- package/dist/cjs/database/alter.d.cts +53 -0
- package/dist/cjs/database/alter.js +93 -0
- package/dist/cjs/database/column.d.cts +25 -0
- package/dist/cjs/database/column.js +39 -0
- package/dist/cjs/database/contract.d.cts +9 -0
- package/dist/cjs/database/contract.js +2 -0
- package/dist/cjs/database/index.d.cts +9 -0
- package/dist/cjs/database/index.js +107 -0
- package/dist/cjs/database/table.d.cts +22 -0
- package/dist/cjs/database/table.js +49 -0
- package/dist/cjs/database/types.d.cts +8 -0
- package/dist/cjs/database/types.js +2 -0
- package/dist/cjs/database/wrapper.d.cts +32 -0
- package/dist/cjs/database/wrapper.js +87 -0
- package/dist/cjs/index-2jl8MRfX.d.cts +105 -0
- package/dist/cjs/index-CnQVnCEI.d.cts +392 -0
- package/dist/cjs/index.d.cts +11 -0
- package/dist/cjs/index.js +30 -0
- package/dist/cjs/migration/index.d.cts +31 -0
- package/dist/{migration → cjs/migration}/index.js +3 -1
- package/dist/cjs/migration/runner.js +58 -0
- package/dist/cjs/migration/type.d.cts +20 -0
- package/dist/cjs/migration/type.js +2 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/query/builder.d.cts +15 -0
- package/dist/cjs/query/builder.js +71 -0
- package/dist/cjs/query/condition.d.cts +8 -0
- package/dist/cjs/query/condition.js +109 -0
- package/dist/cjs/query/constants.js +64 -0
- package/dist/cjs/query/contract.d.cts +8 -0
- package/dist/cjs/query/contract.js +2 -0
- package/dist/cjs/query/helper.d.cts +8 -0
- package/dist/cjs/query/helper.js +36 -0
- package/dist/cjs/query/index.d.cts +8 -0
- package/dist/cjs/query/index.js +206 -0
- package/dist/cjs/query/join.d.cts +17 -0
- package/dist/cjs/query/join.js +18 -0
- package/dist/cjs/query/sql.d.cts +18 -0
- package/dist/cjs/query/sql.js +132 -0
- package/dist/cjs/query/types.d.cts +8 -0
- package/dist/cjs/query/types.js +2 -0
- package/dist/cjs/query/utilities.d.cts +37 -0
- package/dist/cjs/query/utilities.js +194 -0
- package/dist/cjs/table/constants.d.cts +8 -0
- package/dist/cjs/table/constants.js +9 -0
- package/dist/cjs/table/index.d.cts +8 -0
- package/dist/cjs/table/index.js +74 -0
- package/dist/cjs/table/types.d.cts +8 -0
- package/dist/cjs/table/types.js +2 -0
- package/dist/cjs/table/utilities.d.cts +8 -0
- package/dist/cjs/table/utilities.js +55 -0
- package/dist/cjs/types.js +2 -0
- package/dist/cjs/utilities.js +21 -0
- package/dist/{column → esm/column}/constants.d.ts +58 -5
- package/dist/esm/column/constants.js +154 -0
- package/dist/{column → esm/column}/index.d.ts +1 -0
- package/dist/{column → esm/column}/index.js +36 -15
- package/dist/esm/column/types.js +1 -0
- package/dist/esm/column/utils.d.ts +133 -0
- package/dist/esm/column/utils.js +32 -0
- package/dist/{database → esm/database}/alter.d.ts +3 -2
- package/dist/{database → esm/database}/alter.js +17 -16
- package/dist/{database → esm/database}/column.d.ts +3 -2
- package/dist/{database → esm/database}/column.js +11 -8
- package/dist/{database → esm/database}/contract.d.ts +3 -2
- package/dist/{database → esm/database}/index.d.ts +3 -2
- package/dist/{database → esm/database}/index.js +24 -10
- package/dist/{database → esm/database}/table.d.ts +3 -2
- package/dist/{database → esm/database}/table.js +14 -5
- package/dist/esm/database/types.d.ts +8 -0
- package/dist/esm/database/wrapper.d.ts +32 -0
- package/dist/esm/database/wrapper.js +83 -0
- package/dist/{index-DFrpzXEn.d.ts → esm/index-BXOAxB_h.d.ts} +4 -2
- package/dist/{index-FMT0YEO7.d.ts → esm/index-BdpoD4zk.d.ts} +80 -46
- package/dist/{index.d.ts → esm/index.d.ts} +3 -2
- package/dist/esm/index.js +5 -0
- package/dist/{migration → esm/migration}/index.d.ts +3 -2
- package/dist/esm/migration/index.js +49 -0
- package/dist/esm/migration/runner.d.ts +3 -0
- package/dist/{migration → esm/migration}/runner.js +7 -6
- package/dist/{migration → esm/migration}/type.d.ts +3 -2
- package/dist/{query → esm/query}/builder.d.ts +2 -1
- package/dist/{query → esm/query}/builder.js +3 -2
- package/dist/esm/query/condition.d.ts +8 -0
- package/dist/{query → esm/query}/condition.js +9 -5
- package/dist/esm/query/constants.d.ts +63 -0
- package/dist/{query → esm/query}/constants.js +9 -8
- package/dist/{query → esm/query}/contract.d.ts +3 -2
- package/dist/{query → esm/query}/helper.d.ts +2 -1
- package/dist/{query → esm/query}/helper.js +3 -2
- package/dist/{query → esm/query}/index.d.ts +2 -1
- package/dist/{query → esm/query}/index.js +26 -16
- package/dist/{query → esm/query}/join.d.ts +2 -1
- package/dist/{query → esm/query}/join.js +1 -0
- package/dist/{query → esm/query}/sql.d.ts +5 -4
- package/dist/{query → esm/query}/sql.js +40 -11
- package/dist/esm/query/types.d.ts +8 -0
- package/dist/{query → esm/query}/utilities.d.ts +4 -1
- package/dist/{query → esm/query}/utilities.js +20 -9
- package/dist/{table → esm/table}/constants.d.ts +1 -0
- package/dist/{table → esm/table}/constants.js +3 -1
- package/dist/{table → esm/table}/index.d.ts +2 -1
- package/dist/{table → esm/table}/index.js +35 -14
- package/dist/{table → esm/table}/types.d.ts +2 -1
- package/dist/{table → esm/table}/utilities.d.ts +2 -1
- package/dist/{table → esm/table}/utilities.js +5 -4
- package/dist/esm/types.d.ts +3 -0
- package/dist/esm/utilities.d.ts +4 -0
- package/dist/{utilities.js → esm/utilities.js} +1 -0
- package/package.json +42 -19
- package/dist/column/constants.js +0 -98
- package/dist/column/types.js +0 -1
- package/dist/database/types.d.ts +0 -7
- package/dist/database/wrapper.d.ts +0 -36
- package/dist/database/wrapper.js +0 -92
- package/dist/index.js +0 -5
- package/dist/query/condition.d.ts +0 -7
- package/dist/query/types.d.ts +0 -7
- /package/dist/{migration/runner.d.ts → cjs/migration/runner.d.cts} +0 -0
- /package/dist/{query/constants.d.ts → cjs/query/constants.d.cts} +0 -0
- /package/dist/{types.d.ts → cjs/types.d.cts} +0 -0
- /package/dist/{utilities.d.ts → cjs/utilities.d.cts} +0 -0
- /package/dist/{column → esm/column}/types.d.ts +0 -0
- /package/dist/{database → esm/database}/contract.js +0 -0
- /package/dist/{database → esm/database}/types.js +0 -0
- /package/dist/{migration → esm/migration}/type.js +0 -0
- /package/dist/{query → esm/query}/contract.js +0 -0
- /package/dist/{query → esm/query}/types.js +0 -0
- /package/dist/{table → esm/table}/types.js +0 -0
- /package/dist/{types.js → esm/types.js} +0 -0
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { Dialect } from '../table/constants';
|
|
1
|
+
import { Dialect } from '../table/constants.js';
|
|
2
2
|
|
|
3
|
+
// src/database/column.ts
|
|
3
4
|
async function addColumn(tableName, columnName, column) {
|
|
4
|
-
await this.client.exec(
|
|
5
|
-
`ALTER TABLE ${tableName} ADD COLUMN ${columnName} ${column.toString()};`
|
|
6
|
-
);
|
|
5
|
+
await this.client.exec({
|
|
6
|
+
sql: `ALTER TABLE ${tableName} ADD COLUMN ${columnName} ${column.toString()};`
|
|
7
|
+
});
|
|
7
8
|
if (!this.tables[tableName]) return this;
|
|
8
9
|
this.tables[tableName].columns[columnName] = column;
|
|
9
10
|
return this;
|
|
@@ -12,9 +13,9 @@ async function renameColumn(tableName, oldName, newName) {
|
|
|
12
13
|
if (this.dialect === Dialect.SQLITE) {
|
|
13
14
|
throw new Error("SQLite does not support RENAME COLUMN natively.");
|
|
14
15
|
}
|
|
15
|
-
await this.client.exec(
|
|
16
|
-
`ALTER TABLE ${tableName} RENAME COLUMN ${oldName} TO ${newName};`
|
|
17
|
-
);
|
|
16
|
+
await this.client.exec({
|
|
17
|
+
sql: `ALTER TABLE ${tableName} RENAME COLUMN ${oldName} TO ${newName};`
|
|
18
|
+
});
|
|
18
19
|
if (!this.tables[tableName]) return this;
|
|
19
20
|
this.tables[tableName].columns[newName] = this.tables[tableName].columns[oldName];
|
|
20
21
|
delete this.tables[tableName].columns[oldName];
|
|
@@ -24,7 +25,9 @@ async function dropColumn(tableName, columnName) {
|
|
|
24
25
|
if (this.dialect === Dialect.SQLITE) {
|
|
25
26
|
throw new Error("SQLite does not support DROP COLUMN natively.");
|
|
26
27
|
}
|
|
27
|
-
await this.client.exec(
|
|
28
|
+
await this.client.exec({
|
|
29
|
+
sql: `ALTER TABLE ${tableName} DROP COLUMN ${columnName};`
|
|
30
|
+
});
|
|
28
31
|
if (!this.tables[tableName]) return this;
|
|
29
32
|
delete this.tables[tableName].columns[columnName];
|
|
30
33
|
return this;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
export { C as ColumnAlterationContract, T as TableAlterationContract } from '../index-
|
|
1
|
+
export { C as ColumnAlterationContract, T as TableAlterationContract } from '../index-BXOAxB_h.js';
|
|
2
2
|
import '../column/index.js';
|
|
3
3
|
import '../column/constants.js';
|
|
4
|
-
import '../index-
|
|
4
|
+
import '../index-BdpoD4zk.js';
|
|
5
5
|
import '../table/constants.js';
|
|
6
|
+
import 'bun';
|
|
6
7
|
import '../query/constants.js';
|
|
7
8
|
import '../column/types.js';
|
|
8
9
|
import '../types.js';
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import 'bun';
|
|
1
2
|
import '../column/index.js';
|
|
2
|
-
import '../index-
|
|
3
|
+
import '../index-BdpoD4zk.js';
|
|
3
4
|
import '../query/constants.js';
|
|
4
5
|
import '../table/constants.js';
|
|
5
|
-
export { D as Database } from '../index-
|
|
6
|
+
export { D as Database } from '../index-BXOAxB_h.js';
|
|
6
7
|
import '../column/constants.js';
|
|
7
8
|
import '../column/types.js';
|
|
8
9
|
import '../types.js';
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import '../table';
|
|
2
|
-
import { Dialect } from '../table/constants';
|
|
3
|
-
import { alterColumnType, setColumnDefault, dropColumnDefault, dropColumnNotNull } from './alter';
|
|
4
|
-
import { addColumn, renameColumn, dropColumn } from './column';
|
|
5
|
-
import { createTable, renameTable, dropTable } from './table';
|
|
6
|
-
import { DatabasePsql, DatabaseSqlite } from './wrapper';
|
|
1
|
+
import '../table/index.js';
|
|
2
|
+
import { Dialect } from '../table/constants.js';
|
|
3
|
+
import { alterColumnType, setColumnDefault, dropColumnDefault, dropColumnNotNull } from './alter.js';
|
|
4
|
+
import { addColumn, renameColumn, dropColumn } from './column.js';
|
|
5
|
+
import { createTable, renameTable, dropTable } from './table.js';
|
|
6
|
+
import { DatabaseMysql, DatabasePsql, DatabaseSqlite } from './wrapper.js';
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
// src/database/index.ts
|
|
9
|
+
var Database = class _Database {
|
|
9
10
|
hooks;
|
|
10
11
|
dialect;
|
|
11
12
|
defintion;
|
|
@@ -30,10 +31,11 @@ class Database {
|
|
|
30
31
|
dialect: options.dialect,
|
|
31
32
|
config: options.config
|
|
32
33
|
};
|
|
33
|
-
this.client =
|
|
34
|
+
this.client = this.createClient(options);
|
|
34
35
|
if (options.tables) {
|
|
35
36
|
for (const tableName in options.tables) {
|
|
36
37
|
options.tables[tableName].client = this.client;
|
|
38
|
+
options.tables[tableName].setDialect(this.dialect);
|
|
37
39
|
}
|
|
38
40
|
}
|
|
39
41
|
this.createTable = createTable.bind(this);
|
|
@@ -58,6 +60,18 @@ class Database {
|
|
|
58
60
|
this
|
|
59
61
|
);
|
|
60
62
|
}
|
|
63
|
+
createClient(options) {
|
|
64
|
+
switch (options.dialect) {
|
|
65
|
+
case Dialect.SQLITE:
|
|
66
|
+
return new DatabaseSqlite(options.config);
|
|
67
|
+
case Dialect.POSTGRES:
|
|
68
|
+
return new DatabasePsql(options.config);
|
|
69
|
+
case Dialect.MYSQL:
|
|
70
|
+
return new DatabaseMysql(options.config);
|
|
71
|
+
default:
|
|
72
|
+
throw new Error(`Dialect ${options.dialect} is not supported`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
61
75
|
table(tableName) {
|
|
62
76
|
if (!this.tables[tableName]) {
|
|
63
77
|
throw new Error(`Table ${tableName} does not exist`);
|
|
@@ -85,8 +99,8 @@ class Database {
|
|
|
85
99
|
return this.client.transaction(fn);
|
|
86
100
|
}
|
|
87
101
|
static define(options) {
|
|
88
|
-
return new
|
|
102
|
+
return new _Database(options);
|
|
89
103
|
}
|
|
90
|
-
}
|
|
104
|
+
};
|
|
91
105
|
|
|
92
106
|
export { Database };
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { D as Database } from '../index-
|
|
1
|
+
import { D as Database } from '../index-BXOAxB_h.js';
|
|
2
2
|
import { Column } from '../column/index.js';
|
|
3
|
-
import { T as Table, D as DatabaseDefinition, a as TimestampOptions, M as MergeTimestampParanoid } from '../index-
|
|
3
|
+
import { T as Table, D as DatabaseDefinition, a as TimestampOptions, M as MergeTimestampParanoid } from '../index-BdpoD4zk.js';
|
|
4
4
|
import { Dialect } from '../table/constants.js';
|
|
5
|
+
import 'bun';
|
|
5
6
|
import '../query/constants.js';
|
|
6
7
|
import '../column/constants.js';
|
|
7
8
|
import '../column/types.js';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Table } from '../table';
|
|
1
|
+
import { Table } from '../table/index.js';
|
|
2
2
|
|
|
3
|
+
// src/database/table.ts
|
|
3
4
|
async function createTable(tableName, columns, options) {
|
|
4
5
|
const table = Table.define({
|
|
5
6
|
name: tableName,
|
|
@@ -15,21 +16,29 @@ async function createTable(tableName, columns, options) {
|
|
|
15
16
|
while (this.client.status === "connecting") {
|
|
16
17
|
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
17
18
|
}
|
|
18
|
-
await table.create(
|
|
19
|
+
await table.create({
|
|
20
|
+
db: this.client
|
|
21
|
+
});
|
|
19
22
|
return this;
|
|
20
23
|
}
|
|
21
24
|
async function renameTable(oldName, newName) {
|
|
22
|
-
await this.client.exec(
|
|
25
|
+
await this.client.exec({
|
|
26
|
+
sql: `ALTER TABLE ${oldName} RENAME TO ${newName};`
|
|
27
|
+
});
|
|
23
28
|
this.tables[newName] = this.tables[oldName];
|
|
24
29
|
delete this.tables[oldName];
|
|
25
30
|
return this;
|
|
26
31
|
}
|
|
27
32
|
async function dropTable(tableName) {
|
|
28
33
|
if (!this.tables[tableName]) {
|
|
29
|
-
await this.client.exec(
|
|
34
|
+
await this.client.exec({
|
|
35
|
+
sql: `DROP TABLE IF EXISTS ${tableName};`
|
|
36
|
+
});
|
|
30
37
|
return this;
|
|
31
38
|
}
|
|
32
|
-
await this.tables[tableName].drop(
|
|
39
|
+
await this.tables[tableName].drop({
|
|
40
|
+
db: this.client
|
|
41
|
+
});
|
|
33
42
|
delete this.tables[tableName];
|
|
34
43
|
return this;
|
|
35
44
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import 'bun';
|
|
2
|
+
import '../column/index.js';
|
|
3
|
+
export { D as DatabaseDefinition, b as DatabaseDialect, c as DatabaseExecOptions, i as DatabaseOptions, s as MysqlConfig, P as PostgresConfig, r as SqlConfig, S as SqlConfigMapping, d as SqliteConfig } from '../index-BdpoD4zk.js';
|
|
4
|
+
import '../table/constants.js';
|
|
5
|
+
import '../column/constants.js';
|
|
6
|
+
import '../column/types.js';
|
|
7
|
+
import '../types.js';
|
|
8
|
+
import '../query/constants.js';
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { SQL, TransactionSQL } from 'bun';
|
|
2
|
+
import { Dialect } from '../table/constants.js';
|
|
3
|
+
import { S as SqlConfigMapping, b as DatabaseDialect, c as DatabaseExecOptions, P as PostgresConfig, d as SqliteConfig } from '../index-BdpoD4zk.js';
|
|
4
|
+
import '../column/index.js';
|
|
5
|
+
import '../column/constants.js';
|
|
6
|
+
import '../column/types.js';
|
|
7
|
+
import '../types.js';
|
|
8
|
+
import '../query/constants.js';
|
|
9
|
+
|
|
10
|
+
declare class BaseSql<DbDialect extends Dialect, Options extends SqlConfigMapping[DbDialect]> implements DatabaseDialect {
|
|
11
|
+
readonly dialect: Dialect;
|
|
12
|
+
readonly options: Options;
|
|
13
|
+
client: SQL;
|
|
14
|
+
status: 'connecting' | 'connected' | 'disconnected';
|
|
15
|
+
constructor(dialect: Dialect, options: Options);
|
|
16
|
+
connect(): Promise<this>;
|
|
17
|
+
disconnect(): Promise<this>;
|
|
18
|
+
exec<T>(options: DatabaseExecOptions): Promise<T>;
|
|
19
|
+
transaction<T, U extends (tx: TransactionSQL) => Promise<T>>(fn: U): Promise<T>;
|
|
20
|
+
distributed<T extends string, U, V extends (tx: TransactionSQL) => Promise<U>>(name: T, fn: V): Promise<U>;
|
|
21
|
+
}
|
|
22
|
+
declare class DatabasePsql extends BaseSql<typeof Dialect.POSTGRES, PostgresConfig> {
|
|
23
|
+
constructor(options: PostgresConfig);
|
|
24
|
+
}
|
|
25
|
+
declare class DatabaseMysql extends BaseSql<typeof Dialect.MYSQL, PostgresConfig> {
|
|
26
|
+
constructor(options: PostgresConfig);
|
|
27
|
+
}
|
|
28
|
+
declare class DatabaseSqlite extends BaseSql<typeof Dialect.SQLITE, SqliteConfig> {
|
|
29
|
+
constructor(options: SqliteConfig);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export { BaseSql, DatabaseMysql, DatabasePsql, DatabaseSqlite };
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { SQL } from 'bun';
|
|
2
|
+
import { Dialect } from '../table/constants.js';
|
|
3
|
+
|
|
4
|
+
// src/database/wrapper.ts
|
|
5
|
+
var BaseSql = class {
|
|
6
|
+
dialect;
|
|
7
|
+
options;
|
|
8
|
+
client;
|
|
9
|
+
status;
|
|
10
|
+
constructor(dialect, options) {
|
|
11
|
+
this.dialect = dialect;
|
|
12
|
+
this.options = options;
|
|
13
|
+
this.status = "connecting";
|
|
14
|
+
this.client = new SQL({
|
|
15
|
+
...options,
|
|
16
|
+
adapter: dialect,
|
|
17
|
+
onconnect: () => {
|
|
18
|
+
this.status = "connected";
|
|
19
|
+
},
|
|
20
|
+
onclose: () => {
|
|
21
|
+
this.status = "disconnected";
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
this.connect();
|
|
25
|
+
}
|
|
26
|
+
async connect() {
|
|
27
|
+
await this.client.connect();
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
async disconnect() {
|
|
31
|
+
await this.client.close();
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
async exec(options) {
|
|
35
|
+
const client = options.tx || this.client;
|
|
36
|
+
if (!client) {
|
|
37
|
+
throw new Error("Database not connected");
|
|
38
|
+
}
|
|
39
|
+
if (!options.params) {
|
|
40
|
+
return client.unsafe(options.sql);
|
|
41
|
+
}
|
|
42
|
+
const params = (options.params ?? []).map((param) => {
|
|
43
|
+
if (param === null || typeof param === "string" || typeof param === "number" || typeof param === "boolean" || typeof param === "bigint") {
|
|
44
|
+
return param;
|
|
45
|
+
}
|
|
46
|
+
if (param === void 0) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
if (param instanceof Date) {
|
|
50
|
+
return param.toISOString();
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
return JSON.stringify(param);
|
|
54
|
+
} catch {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
return client.unsafe(options.sql, params);
|
|
59
|
+
}
|
|
60
|
+
async transaction(fn) {
|
|
61
|
+
return this.client.transaction(fn);
|
|
62
|
+
}
|
|
63
|
+
async distributed(name, fn) {
|
|
64
|
+
return this.client.distributed(name, fn);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
var DatabasePsql = class extends BaseSql {
|
|
68
|
+
constructor(options) {
|
|
69
|
+
super(Dialect.POSTGRES, options);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
var DatabaseMysql = class extends BaseSql {
|
|
73
|
+
constructor(options) {
|
|
74
|
+
super(Dialect.MYSQL, options);
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
var DatabaseSqlite = class extends BaseSql {
|
|
78
|
+
constructor(options) {
|
|
79
|
+
super(Dialect.SQLITE, options);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
export { BaseSql, DatabaseMysql, DatabasePsql, DatabaseSqlite };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { TransactionSQL } from 'bun';
|
|
1
2
|
import { Column } from './column/index.js';
|
|
2
|
-
import { T as Table, D as DatabaseDefinition, a as TimestampOptions, M as MergeTimestampParanoid,
|
|
3
|
+
import { T as Table, D as DatabaseDefinition, a as TimestampOptions, M as MergeTimestampParanoid, h as QuerHooks, b as DatabaseDialect, i as DatabaseOptions, f as QueryBuilder, j as QueryRunHooks } from './index-BdpoD4zk.js';
|
|
3
4
|
import { QueryHooksType } from './query/constants.js';
|
|
4
5
|
import { Dialect } from './table/constants.js';
|
|
5
6
|
import { AcceptedColumnTypes } from './column/constants.js';
|
|
@@ -93,10 +94,11 @@ declare class Database<DbDialect extends Dialect, Tables extends Record<string,
|
|
|
93
94
|
setColumnNotNull: ColumnAlterationContract<DbDialect, Tables, Definition>['setColumnNotNull'];
|
|
94
95
|
dropColumnNotNull: ColumnAlterationContract<DbDialect, Tables, Definition>['dropColumnNotNull'];
|
|
95
96
|
protected constructor(options: DatabaseOptions<DbDialect, Tables>);
|
|
97
|
+
private createClient;
|
|
96
98
|
table<TableName extends keyof Tables & string, Table extends Tables[TableName]>(tableName: TableName): QueryBuilder<TableName, Table>;
|
|
97
99
|
addHook(type: QueryHooksType, fn: QueryRunHooks): this;
|
|
98
100
|
removeHook(type: QueryHooksType, fn: QueryRunHooks): this;
|
|
99
|
-
transaction<T, U extends () => Promise<T>>(fn: U): Promise<unknown>;
|
|
101
|
+
transaction<T, U extends (tx: TransactionSQL) => Promise<T>>(fn: U): Promise<unknown>;
|
|
100
102
|
static define<DbDialect extends Dialect, Tables extends Record<string, Table<string, Record<string, Column>>>>(options: DatabaseOptions<DbDialect, Tables>): Database<DbDialect, Tables, DatabaseDefinition<DbDialect>>;
|
|
101
103
|
}
|
|
102
104
|
|
|
@@ -2,6 +2,7 @@ import { Column } from './column/index.js';
|
|
|
2
2
|
import { AcceptedColumnTypes } from './column/constants.js';
|
|
3
3
|
import { UnionToIntersection } from './types.js';
|
|
4
4
|
import { QueryType, OrderBy, AggregationFunction, QueryHooksType, AcceptedOperator, ConditionClause, LogicalOperator } from './query/constants.js';
|
|
5
|
+
import { TransactionSQL } from 'bun';
|
|
5
6
|
import { Dialect } from './table/constants.js';
|
|
6
7
|
|
|
7
8
|
type ColumnSelector<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>> = `${Alias}."${keyof TableRef['columns'] & string}"` | `${Alias}.*` | {
|
|
@@ -132,6 +133,52 @@ interface QuerHooks {
|
|
|
132
133
|
before: Set<QueryRunHooks>;
|
|
133
134
|
}
|
|
134
135
|
|
|
136
|
+
type SqlConfigMapping = {
|
|
137
|
+
[Dialect.POSTGRES]: PostgresConfig;
|
|
138
|
+
[Dialect.MYSQL]: MysqlConfig;
|
|
139
|
+
[Dialect.SQLITE]: SqliteConfig;
|
|
140
|
+
};
|
|
141
|
+
interface SqliteConfig {
|
|
142
|
+
filename: ':memory:' | (string & {});
|
|
143
|
+
}
|
|
144
|
+
interface SqlConfig {
|
|
145
|
+
host: string;
|
|
146
|
+
port: number;
|
|
147
|
+
user: string;
|
|
148
|
+
password: string;
|
|
149
|
+
database: string;
|
|
150
|
+
}
|
|
151
|
+
interface PostgresConfig extends SqlConfig {
|
|
152
|
+
}
|
|
153
|
+
interface MysqlConfig extends SqlConfig {
|
|
154
|
+
}
|
|
155
|
+
interface DatabaseOptions<DbDialect extends Dialect, Tables extends Record<string, Table<string, Record<string, Column>>>> {
|
|
156
|
+
dialect: DbDialect;
|
|
157
|
+
config: SqlConfigMapping[DbDialect];
|
|
158
|
+
tables?: Tables;
|
|
159
|
+
}
|
|
160
|
+
interface DatabaseExecOptions {
|
|
161
|
+
sql: string;
|
|
162
|
+
params?: unknown[] | null | undefined;
|
|
163
|
+
tx?: TransactionSQL | null;
|
|
164
|
+
}
|
|
165
|
+
interface DatabaseDefinition<DbDialect extends Dialect> extends Omit<DatabaseOptions<DbDialect, any>, 'tables'> {
|
|
166
|
+
}
|
|
167
|
+
interface DatabaseDialect {
|
|
168
|
+
status: 'connecting' | 'connected' | 'disconnected';
|
|
169
|
+
connect(): Promise<this>;
|
|
170
|
+
disconnect(): Promise<this>;
|
|
171
|
+
exec<T>(options: DatabaseExecOptions): Promise<T>;
|
|
172
|
+
/**
|
|
173
|
+
* Begins a transaction
|
|
174
|
+
*/
|
|
175
|
+
transaction<T, U extends (tx: TransactionSQL) => Promise<T>>(fn: U): Promise<T>;
|
|
176
|
+
/**
|
|
177
|
+
* Begins a distributed transaction
|
|
178
|
+
*/
|
|
179
|
+
distributed<T extends string, U, V extends (tx: TransactionSQL) => Promise<U>>(name: T, fn: V): Promise<U>;
|
|
180
|
+
}
|
|
181
|
+
|
|
135
182
|
declare const createdAt: Column<AcceptedColumnTypes, number | readonly string[], {
|
|
136
183
|
type: "DATETIME";
|
|
137
184
|
}, Date, Date, {
|
|
@@ -143,68 +190,50 @@ declare const updatedAt: Column<AcceptedColumnTypes, number | readonly string[],
|
|
|
143
190
|
declare const deletedAt: Column<AcceptedColumnTypes, number | readonly string[], {
|
|
144
191
|
type: "DATETIME";
|
|
145
192
|
}, Date, Date, {}>;
|
|
146
|
-
declare function defineColumns<TableName extends string, Columns extends Record<string, Column>, CreatedAt extends string, UpdatedAt extends string, Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> | boolean, Paranoid extends string | boolean, FinalColumns extends MergeTimestampParanoid<Columns, CreatedAt, UpdatedAt, Timestamp, Paranoid>>(options: TableOptions<TableName, Columns, Dialect, CreatedAt, UpdatedAt, Timestamp, Paranoid>): FinalColumns;
|
|
193
|
+
declare function defineColumns<TableName extends string, Columns extends Record<string, Column>, CreatedAt extends string | boolean, UpdatedAt extends string | boolean, Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> | boolean, Paranoid extends string | boolean, FinalColumns extends MergeTimestampParanoid<Columns, CreatedAt, UpdatedAt, Timestamp, Paranoid>>(options: TableOptions<TableName, Columns, Dialect, CreatedAt, UpdatedAt, Timestamp, Paranoid>): FinalColumns;
|
|
147
194
|
|
|
148
|
-
interface TimestampOptions<CreatedAt extends string, UpdatedAt extends string> {
|
|
195
|
+
interface TimestampOptions<CreatedAt extends string | boolean, UpdatedAt extends string | boolean> {
|
|
149
196
|
createdAt?: CreatedAt;
|
|
150
197
|
updatedAt?: UpdatedAt;
|
|
151
198
|
}
|
|
152
|
-
interface TableOptions<TableName extends string, Columns extends Record<string, Column>, DbDialect extends Dialect, CreatedAt extends string, UpdatedAt extends string, Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> | boolean, Paranoid extends string | boolean> {
|
|
153
|
-
dialect
|
|
199
|
+
interface TableOptions<TableName extends string, Columns extends Record<string, Column>, DbDialect extends Dialect, CreatedAt extends string | boolean, UpdatedAt extends string | boolean, Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> | boolean, Paranoid extends string | boolean> {
|
|
200
|
+
dialect?: DbDialect;
|
|
154
201
|
name: TableName;
|
|
155
202
|
columns: Columns;
|
|
156
203
|
paranoid?: Paranoid;
|
|
157
204
|
timestamp?: Timestamp;
|
|
158
205
|
}
|
|
159
|
-
type MergeTimestampParanoid<Columns extends Record<string, Column>, CreatedAt extends string, UpdatedAt extends string, Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> | boolean, Paranoid extends string | boolean> = Columns & (Timestamp extends true ? {
|
|
206
|
+
type MergeTimestampParanoid<Columns extends Record<string, Column>, CreatedAt extends string | boolean, UpdatedAt extends string | boolean, Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> | boolean, Paranoid extends string | boolean> = Columns & (Timestamp extends true ? {
|
|
160
207
|
createdAt: typeof createdAt;
|
|
161
208
|
updatedAt: typeof updatedAt;
|
|
162
|
-
} : Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> ? (Timestamp['createdAt'] extends CreatedAt ? {
|
|
209
|
+
} : Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> ? (Timestamp['createdAt'] extends CreatedAt ? Timestamp['createdAt'] extends true ? {
|
|
210
|
+
createdAt: typeof createdAt;
|
|
211
|
+
} : Timestamp['createdAt'] extends string ? {
|
|
163
212
|
[K in Timestamp['createdAt']]: typeof createdAt;
|
|
164
|
-
} : {
|
|
213
|
+
} : NonNullable<unknown> : {
|
|
165
214
|
createdAt: typeof createdAt;
|
|
166
|
-
}) & (Timestamp['updatedAt'] extends UpdatedAt ? {
|
|
215
|
+
}) & (Timestamp['updatedAt'] extends UpdatedAt ? Timestamp['updatedAt'] extends true ? {
|
|
216
|
+
updatedAt: typeof updatedAt;
|
|
217
|
+
} : Timestamp['updatedAt'] extends string ? {
|
|
167
218
|
[K in Timestamp['updatedAt']]: typeof updatedAt;
|
|
168
|
-
} : {
|
|
219
|
+
} : NonNullable<unknown> : {
|
|
169
220
|
updatedAt: typeof updatedAt;
|
|
170
221
|
}) : NonNullable<unknown>) & (Paranoid extends true ? {
|
|
171
222
|
deletedAt: typeof deletedAt;
|
|
172
223
|
} : Paranoid extends string ? {
|
|
173
224
|
[K in Paranoid]: typeof deletedAt;
|
|
174
225
|
} : NonNullable<unknown>);
|
|
175
|
-
type TableOutput<TableName extends string, Columns extends Record<string, Column>, DbDialect extends Dialect, CreatedAt extends string, UpdatedAt extends string, Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> | boolean, Paranoid extends string | boolean, TableRef extends Table<TableName, Columns, DbDialect, CreatedAt, UpdatedAt, Timestamp, Paranoid> = Table<TableName, Columns, DbDialect, CreatedAt, UpdatedAt, Timestamp, Paranoid>> = {
|
|
226
|
+
type TableOutput<TableName extends string, Columns extends Record<string, Column>, DbDialect extends Dialect, CreatedAt extends string | boolean, UpdatedAt extends string | boolean, Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> | boolean, Paranoid extends string | boolean, TableRef extends Table<TableName, Columns, DbDialect, CreatedAt, UpdatedAt, Timestamp, Paranoid> = Table<TableName, Columns, DbDialect, CreatedAt, UpdatedAt, Timestamp, Paranoid>> = {
|
|
176
227
|
[K in keyof TableRef['columns'] & string]: TableRef['columns'][K]['_output'];
|
|
177
228
|
};
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
}
|
|
182
|
-
interface PostgresConfig {
|
|
183
|
-
host: string;
|
|
184
|
-
port: number;
|
|
185
|
-
user: string;
|
|
186
|
-
password: string;
|
|
187
|
-
database: string;
|
|
188
|
-
}
|
|
189
|
-
interface DatabaseOptions<DbDialect extends Dialect, Tables extends Record<string, Table<string, Record<string, Column>>>> {
|
|
190
|
-
dialect: DbDialect;
|
|
191
|
-
config: DbDialect extends typeof Dialect.POSTGRES ? PostgresConfig : SqliteConfig;
|
|
192
|
-
tables?: Tables;
|
|
193
|
-
}
|
|
194
|
-
interface DatabaseDefinition<DbDialect extends Dialect> extends Omit<DatabaseOptions<DbDialect, any>, 'tables'> {
|
|
195
|
-
}
|
|
196
|
-
interface DatabaseDialect {
|
|
197
|
-
status: 'connecting' | 'connected' | 'disconnected';
|
|
198
|
-
connect(): Promise<this>;
|
|
199
|
-
disconnect(): Promise<this>;
|
|
200
|
-
exec<T>(sql: string): Promise<T>;
|
|
201
|
-
exec<T>(sql: string, params: any): Promise<T>;
|
|
202
|
-
transaction<T, U extends () => Promise<T>>(fn: U): Promise<T>;
|
|
229
|
+
interface ExecOptions {
|
|
230
|
+
tx?: TransactionSQL | null;
|
|
231
|
+
db?: DatabaseDialect | null;
|
|
203
232
|
}
|
|
204
233
|
|
|
205
|
-
declare class Table<TableName extends string, Columns extends Record<string, Column>, DbDialect extends Dialect = Dialect, CreatedAt extends string = string, UpdatedAt extends string = string, Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> | boolean = TimestampOptions<CreatedAt, UpdatedAt> | boolean, Paranoid extends string | boolean = string | boolean> {
|
|
234
|
+
declare class Table<TableName extends string, Columns extends Record<string, Column>, DbDialect extends Dialect = Dialect, CreatedAt extends string | boolean = string | boolean, UpdatedAt extends string | boolean = string | boolean, Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> | boolean = TimestampOptions<CreatedAt, UpdatedAt> | boolean, Paranoid extends string | boolean = string | boolean> {
|
|
206
235
|
client: DatabaseDialect | null;
|
|
207
|
-
|
|
236
|
+
private _dialect;
|
|
208
237
|
readonly name: TableName;
|
|
209
238
|
readonly columns: Columns;
|
|
210
239
|
readonly timestamp: Timestamp | null;
|
|
@@ -212,16 +241,19 @@ declare class Table<TableName extends string, Columns extends Record<string, Col
|
|
|
212
241
|
readonly _output: TableOutput<TableName, Columns, DbDialect, CreatedAt, UpdatedAt, Timestamp, Paranoid>;
|
|
213
242
|
protected constructor(options: TableOptions<TableName, Columns, DbDialect, CreatedAt, UpdatedAt, Timestamp, Paranoid>);
|
|
214
243
|
infer(): this['_output'];
|
|
215
|
-
static define<TableName extends string, Columns extends Record<string, Column>, DbDialect extends Dialect, CreatedAt extends string, UpdatedAt extends string, Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> | boolean, Paranoid extends string | boolean>(options: TableOptions<TableName, Columns, DbDialect, CreatedAt, UpdatedAt, Timestamp, Paranoid>): Table<TableName, MergeTimestampParanoid<Columns, CreatedAt, UpdatedAt, Timestamp, Paranoid>, DbDialect, string, string, Timestamp, Paranoid>;
|
|
216
|
-
|
|
217
|
-
|
|
244
|
+
static define<TableName extends string, Columns extends Record<string, Column>, DbDialect extends Dialect, CreatedAt extends string | boolean, UpdatedAt extends string | boolean, Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> | boolean, Paranoid extends string | boolean>(options: TableOptions<TableName, Columns, DbDialect, CreatedAt, UpdatedAt, Timestamp, Paranoid>): Table<TableName, MergeTimestampParanoid<Columns, CreatedAt, UpdatedAt, Timestamp, Paranoid>, DbDialect, string | boolean, string | boolean, Timestamp, Paranoid>;
|
|
245
|
+
setColumnDialect<DbDialect extends Dialect>(dialect: DbDialect): void;
|
|
246
|
+
get dialect(): DbDialect | null;
|
|
247
|
+
setDialect<DbDialect extends Dialect>(dialect: DbDialect): Table<TableName, Columns, DbDialect, CreatedAt, UpdatedAt, Timestamp, Paranoid>;
|
|
248
|
+
create(options?: ExecOptions): Promise<this>;
|
|
249
|
+
drop(options?: ExecOptions): Promise<this>;
|
|
218
250
|
query(): QueryBuilder<this["name"], this, {}, {}, ColumnSelector<this["name"], this, {}>, `${this["name"]}."${keyof this["columns"] & string}"`>;
|
|
219
251
|
}
|
|
220
252
|
|
|
221
253
|
declare function alias<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>, NewAlias extends string>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, alias: NewAlias): QueryBuilder<NewAlias, TableRef, JoinedTables, Omit<Definition, "baseAlias"> & {
|
|
222
254
|
baseAlias: NewAlias;
|
|
223
255
|
}>;
|
|
224
|
-
declare function clone<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>): QueryBuilder<Alias, TableRef, JoinedTables,
|
|
256
|
+
declare function clone<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>): QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>;
|
|
225
257
|
declare function rawCol<StrictAllowedColumn extends string, ColName extends StrictAllowedColumn = StrictAllowedColumn>(column: ColName): ColName;
|
|
226
258
|
declare function col<StrictAllowedColumn extends string, ColName extends StrictAllowedColumn = StrictAllowedColumn, ColAlias extends string = string>(column: ColName, alias: ColAlias): {
|
|
227
259
|
readonly column: ColName;
|
|
@@ -243,10 +275,10 @@ declare function rawWhere<Alias extends string, TableRef extends Table<string, R
|
|
|
243
275
|
declare function rawOr<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: (c: typeof rawCol) => string, params?: any): QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>;
|
|
244
276
|
declare function rawHaving<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: (c: typeof rawCol) => string, params?: any): QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>;
|
|
245
277
|
declare function addCondition<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>, Clause extends ConditionClause, ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator], Logical extends LogicalOperator, ValidClause extends Lowercase<Clause>>(query: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, clause: Clause, column: ColName, operator: Operator, value: Value, logical: Logical): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, ValidClause> & { [Key in ValidClause]: string[]; }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>;
|
|
246
|
-
declare function where<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>, ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value
|
|
278
|
+
declare function where<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>, ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value?: Value): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
|
|
247
279
|
where: string[];
|
|
248
280
|
}, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>;
|
|
249
|
-
declare function or<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>, ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value
|
|
281
|
+
declare function or<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>, ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value?: Value): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
|
|
250
282
|
where: string[];
|
|
251
283
|
}, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>;
|
|
252
284
|
declare function having<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>, ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value: Value): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, "having"> & {
|
|
@@ -254,12 +286,12 @@ declare function having<Alias extends string, TableRef extends Table<string, Rec
|
|
|
254
286
|
}, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>;
|
|
255
287
|
|
|
256
288
|
interface QueryTransformerContract<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>> {
|
|
257
|
-
toQuery(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn
|
|
289
|
+
toQuery(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, dialect?: Dialect | null): {
|
|
258
290
|
query: string;
|
|
259
291
|
params: unknown[] | null | undefined;
|
|
260
292
|
};
|
|
261
293
|
toString(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>): string;
|
|
262
|
-
exec<This extends QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn> = QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, Output extends This['_output'] = This['_output']>(this: This): Promise<Output>;
|
|
294
|
+
exec<This extends QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn> = QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, Output extends This['_output'] = This['_output']>(this: This, tx?: TransactionSQL | null): Promise<Output>;
|
|
263
295
|
clone(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>): typeof this;
|
|
264
296
|
alias<NewAlias extends string>(alias: NewAlias): QueryBuilder<NewAlias, TableRef, JoinedTables, Omit<Definition, 'baseAlias'> & {
|
|
265
297
|
baseAlias: NewAlias;
|
|
@@ -269,7 +301,9 @@ interface QueryConditionContract<Alias extends string, TableRef extends Table<st
|
|
|
269
301
|
rawWhere(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: (c: typeof rawCol) => string, params?: any): ReturnType<typeof addRawCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.WHERE, typeof LogicalOperator.AND, Lowercase<typeof ConditionClause.WHERE>>>;
|
|
270
302
|
rawOr(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: (c: typeof rawCol) => string, params?: any): ReturnType<typeof addRawCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.WHERE, typeof LogicalOperator.OR, Lowercase<typeof ConditionClause.WHERE>>>;
|
|
271
303
|
rawHaving(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: (c: typeof rawCol) => string, params?: any): ReturnType<typeof addRawCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.HAVING, typeof LogicalOperator.AND, Lowercase<typeof ConditionClause.HAVING>>>;
|
|
304
|
+
where<ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends typeof AcceptedOperator.IS_NULL | typeof AcceptedOperator.IS_NOT_NULL, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator): ReturnType<typeof addCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.WHERE, ColName, ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator, Value, typeof LogicalOperator.AND, Lowercase<typeof ConditionClause.WHERE>>>;
|
|
272
305
|
where<ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value: Value): ReturnType<typeof addCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.WHERE, ColName, ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator, Value, typeof LogicalOperator.AND, Lowercase<typeof ConditionClause.WHERE>>>;
|
|
306
|
+
or<ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends typeof AcceptedOperator.IS_NULL | typeof AcceptedOperator.IS_NOT_NULL, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator): ReturnType<typeof addCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.WHERE, ColName, ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator, Value, typeof LogicalOperator.OR, Lowercase<typeof ConditionClause.WHERE>>>;
|
|
273
307
|
or<ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value: Value): ReturnType<typeof addCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.WHERE, ColName, ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator, Value, typeof LogicalOperator.OR, Lowercase<typeof ConditionClause.WHERE>>>;
|
|
274
308
|
having<ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value: Value): ReturnType<typeof addCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.HAVING, ColName, ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator, Value, typeof LogicalOperator.AND, Lowercase<typeof ConditionClause.HAVING>>>;
|
|
275
309
|
}
|
|
@@ -355,4 +389,4 @@ declare class QueryBuilder<Alias extends TableRef['name'], TableRef extends Tabl
|
|
|
355
389
|
infer(): this['_output'];
|
|
356
390
|
}
|
|
357
391
|
|
|
358
|
-
export { type AliasedColumn as A,
|
|
392
|
+
export { type AliasedColumn as A, clone as B, type ColumnSelector as C, type DatabaseDefinition as D, type ExecOptions as E, rawCol as F, col as G, aggregateCol as H, addRawCondition as I, rawWhere as J, rawOr as K, rawHaving as L, type MergeTimestampParanoid as M, addCondition as N, where as O, type PostgresConfig as P, type QueryDefinition as Q, type RawColumn as R, type SqlConfigMapping as S, Table as T, or as U, having as V, type WhereValue as W, type QueryTransformerContract as X, type QueryConditionContract as Y, type TimestampOptions as a, type DatabaseDialect as b, type DatabaseExecOptions as c, type SqliteConfig as d, type StrictColumnSelector as e, QueryBuilder as f, type SelectableColumn as g, type QuerHooks as h, type DatabaseOptions as i, type QueryRunHooks as j, type AcceptedOrderBy as k, type AcceptedInsertValues as l, type AcceptedUpdateValues as m, type AggregateColumn as n, type SelectQueryOutput as o, type QueryOutput as p, type QueryRunHooksOptions as q, type SqlConfig as r, type MysqlConfig as s, createdAt as t, updatedAt as u, deletedAt as v, defineColumns as w, type TableOptions as x, type TableOutput as y, alias as z };
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
export { Column } from './column/index.js';
|
|
2
|
-
export { D as Database } from './index-
|
|
2
|
+
export { D as Database } from './index-BXOAxB_h.js';
|
|
3
3
|
export { Migration } from './migration/index.js';
|
|
4
|
-
export {
|
|
4
|
+
export { f as QueryBuilder, T as Table } from './index-BdpoD4zk.js';
|
|
5
5
|
import './table/constants.js';
|
|
6
6
|
import './column/constants.js';
|
|
7
7
|
import './column/types.js';
|
|
8
|
+
import 'bun';
|
|
8
9
|
import './query/constants.js';
|
|
9
10
|
import './migration/type.js';
|
|
10
11
|
import './types.js';
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Column } from '../column/index.js';
|
|
2
|
-
import { D as Database } from '../index-
|
|
3
|
-
import { T as Table } from '../index-
|
|
2
|
+
import { D as Database } from '../index-BXOAxB_h.js';
|
|
3
|
+
import { T as Table } from '../index-BdpoD4zk.js';
|
|
4
4
|
import { Dialect } from '../table/constants.js';
|
|
5
5
|
import { MigrationOptions, MigrationFn } from './type.js';
|
|
6
6
|
import '../column/constants.js';
|
|
7
7
|
import '../column/types.js';
|
|
8
|
+
import 'bun';
|
|
8
9
|
import '../query/constants.js';
|
|
9
10
|
import '../types.js';
|
|
10
11
|
|