rado 0.1.53 → 0.1.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/define/Column.d.ts +58 -58
- package/dist/define/Cursor.d.ts +86 -85
- package/dist/define/Cursor.js +3 -0
- 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/bun-sqlite.d.ts +18 -18
- package/dist/driver/sql.js.d.ts +15 -15
- package/dist/driver/sqlite3.d.ts +18 -18
- package/dist/index.d.ts +21 -21
- package/dist/lib/Driver.d.ts +110 -110
- package/dist/lib/Driver.js +2 -2
- package/dist/lib/Formatter.d.ts +78 -78
- package/dist/lib/Formatter.js +5 -7
- package/dist/lib/Sanitizer.d.ts +5 -5
- package/dist/lib/SqlError.d.ts +3 -3
- package/dist/lib/Statement.d.ts +33 -33
- 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 -60
- package/dist/CPU.20230126.092143.12244.0.001.cpuprofile +0 -1
- package/dist/Column.d.ts +0 -54
- package/dist/Column.js +0 -63
- package/dist/Cursor.d.ts +0 -77
- package/dist/Cursor.js +0 -221
- package/dist/Driver.d.ts +0 -89
- package/dist/Driver.js +0 -262
- package/dist/Expr.d.ts +0 -149
- package/dist/Expr.js +0 -284
- package/dist/Fields.d.ts +0 -11
- package/dist/Fields.js +0 -0
- package/dist/Formatter.d.ts +0 -55
- package/dist/Formatter.js +0 -496
- package/dist/Functions.d.ts +0 -7
- package/dist/Functions.js +0 -11
- package/dist/Id.d.ts +0 -3
- package/dist/Id.js +0 -0
- package/dist/Ops.d.ts +0 -8
- package/dist/Ops.js +0 -45
- 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 -107
- package/dist/Query.js +0 -74
- package/dist/Sanitizer.d.ts +0 -4
- package/dist/Sanitizer.js +0 -0
- package/dist/Schema.d.ts +0 -23
- package/dist/Schema.js +0 -60
- package/dist/Selection.d.ts +0 -20
- package/dist/Selection.js +0 -7
- package/dist/Statement.d.ts +0 -57
- package/dist/Statement.js +0 -184
- package/dist/Table.d.ts +0 -56
- package/dist/Table.js +0 -104
- 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/lib/Column.d.ts +0 -57
- package/dist/lib/Column.js +0 -63
- package/dist/lib/Cursor.d.ts +0 -79
- package/dist/lib/Cursor.js +0 -231
- 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 -8
- package/dist/lib/Ops.js +0 -45
- 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 -30
- package/dist/lib/Target.js +0 -37
- package/dist/lib/Update.d.ts +0 -4
- package/dist/lib/Update.js +0 -0
- package/dist/sqlite/index.d.ts +0 -2
- package/dist/sqlite/index.js +0 -3
- package/dist/src/driver/better-sqlite3.js +0 -49
- package/dist/src/driver/sql.js.js +0 -66
- package/dist/src/driver/sqlite3.js +0 -87
- package/dist/src/index.js +0 -24
- package/dist/src/lib/Column.js +0 -63
- package/dist/src/lib/Cursor.js +0 -231
- package/dist/src/lib/Driver.js +0 -316
- package/dist/src/lib/Expr.js +0 -284
- package/dist/src/lib/Fields.js +0 -0
- package/dist/src/lib/Formatter.js +0 -625
- package/dist/src/lib/Functions.js +0 -11
- package/dist/src/lib/Id.js +0 -0
- package/dist/src/lib/Index.js +0 -20
- package/dist/src/lib/Ops.js +0 -45
- package/dist/src/lib/OrderBy.js +0 -9
- package/dist/src/lib/Param.js +0 -27
- package/dist/src/lib/Query.js +0 -74
- package/dist/src/lib/Sanitizer.js +0 -0
- package/dist/src/lib/Schema.js +0 -67
- package/dist/src/lib/Selection.js +0 -7
- package/dist/src/lib/Statement.js +0 -103
- package/dist/src/lib/Table.js +0 -130
- package/dist/src/lib/Target.js +0 -37
- package/dist/src/lib/Update.js +0 -0
- package/dist/src/sqlite/SqliteFormatter.js +0 -67
- package/dist/src/sqlite/SqliteFunctions.js +0 -146
- package/dist/src/sqlite/SqliteSchema.js +0 -47
- package/dist/src/sqlite.js +0 -3
- package/dist/test/DbSuite.js +0 -28
- package/dist/test/TSTestTypes.js +0 -6
- package/dist/test/TestBasic.js +0 -172
- package/dist/test/TestExtend.js +0 -68
- package/dist/test/TestFts5.js +0 -34
- package/dist/test/TestFunctions.js +0 -28
- package/dist/test/TestJoins.js +0 -34
- package/dist/test/TestJson.js +0 -33
- package/dist/test/TestPrepare.js +0 -27
- package/dist/test/TestRawSql.js +0 -31
- package/dist/test/TestSchema.js +0 -69
- package/dist/test/TestSubQueries.js +0 -79
- package/dist/test/TestTransaction.js +0 -54
- package/dist/test/TestUpdate.js +0 -95
- package/dist/test/index.js +0 -14
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
// src/driver/sql.js.ts
|
|
2
|
-
import { Driver } from "../lib/Driver.js";
|
|
3
|
-
import { SqliteFormatter } from "../sqlite/SqliteFormatter.js";
|
|
4
|
-
import { SqliteSchema } from "../sqlite/SqliteSchema.js";
|
|
5
|
-
var PreparedStatement = class {
|
|
6
|
-
constructor(db, stmt, discardAfter) {
|
|
7
|
-
this.db = db;
|
|
8
|
-
this.stmt = stmt;
|
|
9
|
-
this.discardAfter = discardAfter;
|
|
10
|
-
}
|
|
11
|
-
all(params) {
|
|
12
|
-
this.stmt.bind(params);
|
|
13
|
-
const res = [];
|
|
14
|
-
while (this.stmt.step())
|
|
15
|
-
res.push(this.stmt.getAsObject());
|
|
16
|
-
if (this.discardAfter)
|
|
17
|
-
this.stmt.free();
|
|
18
|
-
return res;
|
|
19
|
-
}
|
|
20
|
-
run(params) {
|
|
21
|
-
this.stmt.run(params);
|
|
22
|
-
if (this.discardAfter)
|
|
23
|
-
this.stmt.free();
|
|
24
|
-
return { rowsAffected: this.db.getRowsModified() };
|
|
25
|
-
}
|
|
26
|
-
get(params) {
|
|
27
|
-
return this.all(params)[0];
|
|
28
|
-
}
|
|
29
|
-
execute(params) {
|
|
30
|
-
this.stmt.run(params);
|
|
31
|
-
if (this.discardAfter)
|
|
32
|
-
this.stmt.free();
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
var SqlJsDriver = class extends Driver.Sync {
|
|
36
|
-
constructor(db) {
|
|
37
|
-
super(new SqliteFormatter());
|
|
38
|
-
this.db = db;
|
|
39
|
-
this.tableData = this.prepare(SqliteSchema.tableData);
|
|
40
|
-
this.indexData = this.prepare(SqliteSchema.indexData);
|
|
41
|
-
}
|
|
42
|
-
tableData;
|
|
43
|
-
indexData;
|
|
44
|
-
prepareStatement(stmt, discardAfter) {
|
|
45
|
-
return new PreparedStatement(
|
|
46
|
-
this.db,
|
|
47
|
-
this.db.prepare(stmt.sql),
|
|
48
|
-
discardAfter
|
|
49
|
-
);
|
|
50
|
-
}
|
|
51
|
-
schemaInstructions(tableName) {
|
|
52
|
-
const columnData = this.tableData(tableName);
|
|
53
|
-
const indexData = this.indexData(tableName);
|
|
54
|
-
return SqliteSchema.createInstructions(columnData, indexData);
|
|
55
|
-
}
|
|
56
|
-
export() {
|
|
57
|
-
return this.db.export();
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
function connect(db) {
|
|
61
|
-
return new SqlJsDriver(db);
|
|
62
|
-
}
|
|
63
|
-
export {
|
|
64
|
-
SqlJsDriver,
|
|
65
|
-
connect
|
|
66
|
-
};
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
// src/driver/sqlite3.ts
|
|
2
|
-
import { Driver } from "../lib/Driver.js";
|
|
3
|
-
import { SqliteFormatter } from "../sqlite/SqliteFormatter.js";
|
|
4
|
-
import { SqliteSchema } from "../sqlite/SqliteSchema.js";
|
|
5
|
-
var PreparedStatement = class {
|
|
6
|
-
constructor(stmt) {
|
|
7
|
-
this.stmt = stmt;
|
|
8
|
-
}
|
|
9
|
-
all(params) {
|
|
10
|
-
return new Promise((resolve, reject) => {
|
|
11
|
-
this.stmt.all(params, (err, rows) => {
|
|
12
|
-
if (err)
|
|
13
|
-
reject(err);
|
|
14
|
-
else
|
|
15
|
-
resolve(rows);
|
|
16
|
-
});
|
|
17
|
-
});
|
|
18
|
-
}
|
|
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
|
-
});
|
|
28
|
-
}
|
|
29
|
-
get(params) {
|
|
30
|
-
return new Promise((resolve, reject) => {
|
|
31
|
-
this.stmt.get(params, (err, row) => {
|
|
32
|
-
if (err)
|
|
33
|
-
reject(err);
|
|
34
|
-
else
|
|
35
|
-
resolve(row);
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
execute(params) {
|
|
40
|
-
return new Promise((resolve, reject) => {
|
|
41
|
-
this.stmt.run(params, (err) => {
|
|
42
|
-
if (err)
|
|
43
|
-
reject(err);
|
|
44
|
-
else
|
|
45
|
-
resolve();
|
|
46
|
-
});
|
|
47
|
-
});
|
|
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
|
-
}
|
|
67
|
-
async schemaInstructions(tableName) {
|
|
68
|
-
const columnData = await this.tableData(tableName);
|
|
69
|
-
const indexData = await this.indexData(tableName);
|
|
70
|
-
return SqliteSchema.createInstructions(columnData, indexData);
|
|
71
|
-
}
|
|
72
|
-
isolate() {
|
|
73
|
-
const connection = new Sqlite3Driver(this.db);
|
|
74
|
-
let release, trigger = new Promise((resolve) => {
|
|
75
|
-
release = async () => resolve();
|
|
76
|
-
});
|
|
77
|
-
this.lock = Promise.resolve(this.lock).then(() => trigger);
|
|
78
|
-
return [connection, release];
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
function connect(db) {
|
|
82
|
-
return new Sqlite3Driver(db);
|
|
83
|
-
}
|
|
84
|
-
export {
|
|
85
|
-
Sqlite3Driver,
|
|
86
|
-
connect
|
|
87
|
-
};
|
package/dist/src/index.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
// src/index.ts
|
|
2
|
-
export * from "./lib/Column.js";
|
|
3
|
-
export * from "./lib/Cursor.js";
|
|
4
|
-
export * from "./lib/Driver.js";
|
|
5
|
-
export * from "./lib/Expr.js";
|
|
6
|
-
export * from "./lib/Fields.js";
|
|
7
|
-
export * from "./lib/Formatter.js";
|
|
8
|
-
import { Functions } from "./lib/Functions.js";
|
|
9
|
-
export * from "./lib/Id.js";
|
|
10
|
-
export * from "./lib/Index.js";
|
|
11
|
-
export * from "./lib/Ops.js";
|
|
12
|
-
export * from "./lib/OrderBy.js";
|
|
13
|
-
export * from "./lib/Param.js";
|
|
14
|
-
export * from "./lib/Query.js";
|
|
15
|
-
export * from "./lib/Sanitizer.js";
|
|
16
|
-
export * from "./lib/Schema.js";
|
|
17
|
-
export * from "./lib/Selection.js";
|
|
18
|
-
export * from "./lib/Statement.js";
|
|
19
|
-
export * from "./lib/Table.js";
|
|
20
|
-
export * from "./lib/Target.js";
|
|
21
|
-
export * from "./lib/Update.js";
|
|
22
|
-
export {
|
|
23
|
-
Functions
|
|
24
|
-
};
|
package/dist/src/lib/Column.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
// src/lib/Column.ts
|
|
2
|
-
import { ExprData } from "./Expr.js";
|
|
3
|
-
var ColumnType = /* @__PURE__ */ ((ColumnType2) => {
|
|
4
|
-
ColumnType2["String"] = "String";
|
|
5
|
-
ColumnType2["Integer"] = "Integer";
|
|
6
|
-
ColumnType2["Number"] = "Number";
|
|
7
|
-
ColumnType2["Boolean"] = "Boolean";
|
|
8
|
-
ColumnType2["Json"] = "Json";
|
|
9
|
-
return ColumnType2;
|
|
10
|
-
})(ColumnType || {});
|
|
11
|
-
var Column = class {
|
|
12
|
-
constructor(data) {
|
|
13
|
-
this.data = data;
|
|
14
|
-
}
|
|
15
|
-
name(name) {
|
|
16
|
-
return new Column({ ...this.data, name });
|
|
17
|
-
}
|
|
18
|
-
nullable() {
|
|
19
|
-
return new Column({ ...this.data, nullable: true });
|
|
20
|
-
}
|
|
21
|
-
autoIncrement() {
|
|
22
|
-
return new Column({ ...this.data, autoIncrement: true });
|
|
23
|
-
}
|
|
24
|
-
primaryKey() {
|
|
25
|
-
return new Column({ ...this.data, primaryKey: true });
|
|
26
|
-
}
|
|
27
|
-
references(column2) {
|
|
28
|
-
return new Column({ ...this.data, references: ExprData.create(column2) });
|
|
29
|
-
}
|
|
30
|
-
unique() {
|
|
31
|
-
return new Column({ ...this.data, unique: true });
|
|
32
|
-
}
|
|
33
|
-
defaultValue(value) {
|
|
34
|
-
return new Column({ ...this.data, defaultValue: ExprData.create(value) });
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
((Column2) => {
|
|
38
|
-
})(Column || (Column = {}));
|
|
39
|
-
var column = {
|
|
40
|
-
string() {
|
|
41
|
-
return new Column({ type: "String" /* String */ });
|
|
42
|
-
},
|
|
43
|
-
integer() {
|
|
44
|
-
return new Column({ type: "Integer" /* Integer */ });
|
|
45
|
-
},
|
|
46
|
-
number() {
|
|
47
|
-
return new Column({ type: "Number" /* Number */ });
|
|
48
|
-
},
|
|
49
|
-
boolean() {
|
|
50
|
-
return new Column({ type: "Boolean" /* Boolean */ });
|
|
51
|
-
},
|
|
52
|
-
object() {
|
|
53
|
-
return new Column({ type: "Json" /* Json */ });
|
|
54
|
-
},
|
|
55
|
-
array() {
|
|
56
|
-
return new Column({ type: "Json" /* Json */ });
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
export {
|
|
60
|
-
Column,
|
|
61
|
-
ColumnType,
|
|
62
|
-
column
|
|
63
|
-
};
|
package/dist/src/lib/Cursor.js
DELETED
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
// src/lib/Cursor.ts
|
|
2
|
-
import { Expr, ExprData } from "./Expr.js";
|
|
3
|
-
import { Functions } from "./Functions.js";
|
|
4
|
-
import { Query } from "./Query.js";
|
|
5
|
-
import { Schema } from "./Schema.js";
|
|
6
|
-
import { Selection } from "./Selection.js";
|
|
7
|
-
import { Target } from "./Target.js";
|
|
8
|
-
var Cursor = class {
|
|
9
|
-
[Selection.__cursorType]() {
|
|
10
|
-
throw "assert";
|
|
11
|
-
}
|
|
12
|
-
constructor(query) {
|
|
13
|
-
Object.defineProperty(this, "query", {
|
|
14
|
-
enumerable: false,
|
|
15
|
-
value: () => query
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
static all(strings, ...params) {
|
|
19
|
-
return new Cursor(Query.Raw({ expectedReturn: "rows", strings, params }));
|
|
20
|
-
}
|
|
21
|
-
query() {
|
|
22
|
-
throw new Error("Not implemented");
|
|
23
|
-
}
|
|
24
|
-
toJSON() {
|
|
25
|
-
return this.query();
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
((Cursor2) => {
|
|
29
|
-
class Limitable extends Cursor2 {
|
|
30
|
-
take(limit) {
|
|
31
|
-
return new Limitable({ ...this.query(), limit });
|
|
32
|
-
}
|
|
33
|
-
skip(offset) {
|
|
34
|
-
return new Limitable({ ...this.query(), offset });
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
Cursor2.Limitable = Limitable;
|
|
38
|
-
class Filterable extends Limitable {
|
|
39
|
-
where(...where) {
|
|
40
|
-
const condition = Expr.and(...where);
|
|
41
|
-
const query = this.query();
|
|
42
|
-
return new Filterable({
|
|
43
|
-
...query,
|
|
44
|
-
where: (query.where ? condition.and(new Expr(query.where)) : condition).expr
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
Cursor2.Filterable = Filterable;
|
|
49
|
-
class Delete extends Filterable {
|
|
50
|
-
query() {
|
|
51
|
-
return super.query();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
Cursor2.Delete = Delete;
|
|
55
|
-
class Update extends Filterable {
|
|
56
|
-
set(set) {
|
|
57
|
-
return new Update({ ...this.query(), set });
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
Cursor2.Update = Update;
|
|
61
|
-
class InsertValuesReturning extends Cursor2 {
|
|
62
|
-
}
|
|
63
|
-
Cursor2.InsertValuesReturning = InsertValuesReturning;
|
|
64
|
-
class InsertValues extends Cursor2 {
|
|
65
|
-
query() {
|
|
66
|
-
return super.query();
|
|
67
|
-
}
|
|
68
|
-
returning(selection) {
|
|
69
|
-
return new InsertValuesReturning(
|
|
70
|
-
Query.Insert({ ...this.query(), selection: ExprData.create(selection) })
|
|
71
|
-
);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
Cursor2.InsertValues = InsertValues;
|
|
75
|
-
class Insert {
|
|
76
|
-
constructor(into) {
|
|
77
|
-
this.into = into;
|
|
78
|
-
}
|
|
79
|
-
values(...data) {
|
|
80
|
-
return new InsertValues(Query.Insert({ into: this.into, data }));
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
Cursor2.Insert = Insert;
|
|
84
|
-
class Create extends Cursor2 {
|
|
85
|
-
constructor(table) {
|
|
86
|
-
super(Schema.create(table));
|
|
87
|
-
this.table = table;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
Cursor2.Create = Create;
|
|
91
|
-
class Batch extends Cursor2 {
|
|
92
|
-
constructor(queries) {
|
|
93
|
-
super(Query.Batch({ queries }));
|
|
94
|
-
this.queries = queries;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
Cursor2.Batch = Batch;
|
|
98
|
-
class SelectMultiple extends Filterable {
|
|
99
|
-
query() {
|
|
100
|
-
return super.query();
|
|
101
|
-
}
|
|
102
|
-
leftJoin(that, ...on) {
|
|
103
|
-
const query = this.query();
|
|
104
|
-
return new SelectMultiple({
|
|
105
|
-
...query,
|
|
106
|
-
from: Target.Join(
|
|
107
|
-
query.from,
|
|
108
|
-
Target.Table(that.schema()),
|
|
109
|
-
"left",
|
|
110
|
-
Expr.and(...on).expr
|
|
111
|
-
)
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
innerJoin(that, ...on) {
|
|
115
|
-
const query = this.query();
|
|
116
|
-
return new SelectMultiple({
|
|
117
|
-
...query,
|
|
118
|
-
from: Target.Join(
|
|
119
|
-
query.from,
|
|
120
|
-
Target.Table(that.schema()),
|
|
121
|
-
"inner",
|
|
122
|
-
Expr.and(...on).expr
|
|
123
|
-
)
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
select(selection) {
|
|
127
|
-
return new SelectMultiple({
|
|
128
|
-
...this.query(),
|
|
129
|
-
selection: ExprData.create(selection)
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
count() {
|
|
133
|
-
return new SelectSingle({
|
|
134
|
-
...this.query(),
|
|
135
|
-
selection: Functions.count().expr,
|
|
136
|
-
singleResult: true
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
orderBy(...orderBy) {
|
|
140
|
-
return new SelectMultiple({
|
|
141
|
-
...this.query(),
|
|
142
|
-
orderBy: orderBy.map((e) => {
|
|
143
|
-
return e instanceof Expr ? e.asc() : e;
|
|
144
|
-
})
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
groupBy(...groupBy) {
|
|
148
|
-
return new SelectMultiple({
|
|
149
|
-
...this.query(),
|
|
150
|
-
groupBy: groupBy.map(ExprData.create)
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
first() {
|
|
154
|
-
return new SelectSingle({ ...this.query(), singleResult: true });
|
|
155
|
-
}
|
|
156
|
-
sure() {
|
|
157
|
-
return new SelectSingle({
|
|
158
|
-
...this.query(),
|
|
159
|
-
singleResult: true,
|
|
160
|
-
validate: true
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
where(...where) {
|
|
164
|
-
return new SelectMultiple(super.where(...where).query());
|
|
165
|
-
}
|
|
166
|
-
toExpr() {
|
|
167
|
-
return new Expr(ExprData.Query(this.query()));
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
Cursor2.SelectMultiple = SelectMultiple;
|
|
171
|
-
class SelectSingle extends Filterable {
|
|
172
|
-
query() {
|
|
173
|
-
return super.query();
|
|
174
|
-
}
|
|
175
|
-
leftJoin(that, ...on) {
|
|
176
|
-
const query = this.query();
|
|
177
|
-
return new SelectSingle({
|
|
178
|
-
...query,
|
|
179
|
-
from: Target.Join(
|
|
180
|
-
query.from,
|
|
181
|
-
Target.Table(that.schema()),
|
|
182
|
-
"left",
|
|
183
|
-
Expr.and(...on).expr
|
|
184
|
-
)
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
innerJoin(that, ...on) {
|
|
188
|
-
const query = this.query();
|
|
189
|
-
return new SelectSingle({
|
|
190
|
-
...query,
|
|
191
|
-
from: Target.Join(
|
|
192
|
-
query.from,
|
|
193
|
-
Target.Table(that.schema()),
|
|
194
|
-
"inner",
|
|
195
|
-
Expr.and(...on).expr
|
|
196
|
-
)
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
select(selection) {
|
|
200
|
-
return new SelectSingle({
|
|
201
|
-
...this.query(),
|
|
202
|
-
selection: ExprData.create(selection)
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
orderBy(...orderBy) {
|
|
206
|
-
return new SelectSingle({
|
|
207
|
-
...this.query(),
|
|
208
|
-
orderBy
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
groupBy(...groupBy) {
|
|
212
|
-
return new SelectSingle({
|
|
213
|
-
...this.query(),
|
|
214
|
-
groupBy: groupBy.map(ExprData.create)
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
where(...where) {
|
|
218
|
-
return new SelectSingle(super.where(...where).query());
|
|
219
|
-
}
|
|
220
|
-
all() {
|
|
221
|
-
return new SelectMultiple({ ...this.query(), singleResult: false });
|
|
222
|
-
}
|
|
223
|
-
toExpr() {
|
|
224
|
-
return new Expr(ExprData.Query(this.query()));
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
Cursor2.SelectSingle = SelectSingle;
|
|
228
|
-
})(Cursor || (Cursor = {}));
|
|
229
|
-
export {
|
|
230
|
-
Cursor
|
|
231
|
-
};
|