@devbro/neko-sql 0.1.3 → 0.1.4
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/Blueprint.mjs +12 -1
- package/dist/Blueprint.mjs.map +1 -1
- package/dist/Connection.mjs +5 -0
- package/dist/Connection.mjs.map +1 -1
- package/dist/Expression.mjs +5 -0
- package/dist/Expression.mjs.map +1 -1
- package/dist/Migration.mjs +5 -0
- package/dist/Migration.mjs.map +1 -1
- package/dist/Query.mjs +5 -0
- package/dist/Query.mjs.map +1 -1
- package/dist/QueryGrammar.mjs +6 -0
- package/dist/QueryGrammar.mjs.map +1 -1
- package/dist/Schema.mjs +7 -2
- package/dist/Schema.mjs.map +1 -1
- package/dist/SchemaGrammar.mjs +6 -1
- package/dist/SchemaGrammar.mjs.map +1 -1
- package/dist/databases/index.mjs +1 -1
- package/dist/databases/index.mjs.map +1 -1
- package/dist/databases/postgresql/PostgresqlConnection.mjs +10 -5
- package/dist/databases/postgresql/PostgresqlConnection.mjs.map +1 -1
- package/dist/databases/postgresql/PostgresqlQueryGrammar.mjs +6 -1
- package/dist/databases/postgresql/PostgresqlQueryGrammar.mjs.map +1 -1
- package/dist/databases/postgresql/PostgresqlSchemaGrammar.mjs +6 -1
- package/dist/databases/postgresql/PostgresqlSchemaGrammar.mjs.map +1 -1
- package/dist/databases/postgresql/index.mjs +3 -3
- package/dist/databases/postgresql/index.mjs.map +1 -1
- package/dist/index.js +929 -19
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +9 -9
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -6
- package/dist/Blueprint.d.ts +0 -57
- package/dist/Blueprint.js +0 -169
- package/dist/Blueprint.js.map +0 -1
- package/dist/Connection-DklX9Kzq.d.ts +0 -106
- package/dist/Connection.d.ts +0 -4
- package/dist/Connection.js +0 -30
- package/dist/Connection.js.map +0 -1
- package/dist/Expression.d.ts +0 -1
- package/dist/Expression.js +0 -37
- package/dist/Expression.js.map +0 -1
- package/dist/Migration.d.ts +0 -11
- package/dist/Migration.js +0 -30
- package/dist/Migration.js.map +0 -1
- package/dist/Query.d.ts +0 -4
- package/dist/Query.js +0 -171
- package/dist/Query.js.map +0 -1
- package/dist/QueryGrammar.d.ts +0 -4
- package/dist/QueryGrammar.js +0 -260
- package/dist/QueryGrammar.js.map +0 -1
- package/dist/Schema.d.ts +0 -4
- package/dist/Schema.js +0 -70
- package/dist/Schema.js.map +0 -1
- package/dist/SchemaGrammar.d.ts +0 -20
- package/dist/SchemaGrammar.js +0 -174
- package/dist/SchemaGrammar.js.map +0 -1
- package/dist/databases/index.d.ts +0 -8
- package/dist/databases/index.js +0 -23
- package/dist/databases/index.js.map +0 -1
- package/dist/databases/postgresql/PostgresqlConnection.d.ts +0 -28
- package/dist/databases/postgresql/PostgresqlConnection.js +0 -114
- package/dist/databases/postgresql/PostgresqlConnection.js.map +0 -1
- package/dist/databases/postgresql/PostgresqlQueryGrammar.d.ts +0 -21
- package/dist/databases/postgresql/PostgresqlQueryGrammar.js +0 -69
- package/dist/databases/postgresql/PostgresqlQueryGrammar.js.map +0 -1
- package/dist/databases/postgresql/PostgresqlSchemaGrammar.d.ts +0 -8
- package/dist/databases/postgresql/PostgresqlSchemaGrammar.js +0 -31
- package/dist/databases/postgresql/PostgresqlSchemaGrammar.js.map +0 -1
- package/dist/databases/postgresql/index.d.ts +0 -8
- package/dist/databases/postgresql/index.js +0 -27
- package/dist/databases/postgresql/index.js.map +0 -1
- package/dist/index.d.ts +0 -9
- package/dist/types-C_aDrXJN.d.ts +0 -48
- package/dist/types.d.ts +0 -1
- package/dist/types.js +0 -17
- package/dist/types.js.map +0 -1
package/dist/Migration.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var Migration_exports = {};
|
|
20
|
-
__export(Migration_exports, {
|
|
21
|
-
Migration: () => Migration
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(Migration_exports);
|
|
24
|
-
class Migration {
|
|
25
|
-
}
|
|
26
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
27
|
-
0 && (module.exports = {
|
|
28
|
-
Migration
|
|
29
|
-
});
|
|
30
|
-
//# sourceMappingURL=Migration.js.map
|
package/dist/Migration.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Migration.ts"],"sourcesContent":["import { Schema } from './Schema';\n\nexport abstract class Migration {\n abstract up(schema: Schema): Promise<void>;\n abstract down(schema: Schema): Promise<void>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAe,UAAU;AAGhC;","names":[]}
|
package/dist/Query.d.ts
DELETED
package/dist/Query.js
DELETED
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var Query_exports = {};
|
|
20
|
-
__export(Query_exports, {
|
|
21
|
-
Query: () => Query
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(Query_exports);
|
|
24
|
-
class Query {
|
|
25
|
-
constructor(connection, grammar) {
|
|
26
|
-
this.connection = connection;
|
|
27
|
-
this.grammar = grammar;
|
|
28
|
-
}
|
|
29
|
-
allowedOperations = ["=", ">", "<", "!=", "like", "ilike"];
|
|
30
|
-
parts = {
|
|
31
|
-
select: ["*"],
|
|
32
|
-
table: "",
|
|
33
|
-
join: [],
|
|
34
|
-
where: [],
|
|
35
|
-
groupBy: [],
|
|
36
|
-
having: [],
|
|
37
|
-
orderBy: [],
|
|
38
|
-
limit: null,
|
|
39
|
-
offset: null
|
|
40
|
-
};
|
|
41
|
-
table(tableName) {
|
|
42
|
-
this.parts.table = tableName;
|
|
43
|
-
return this;
|
|
44
|
-
}
|
|
45
|
-
whereOp(column, operation, value, joinCondition = "and", negateCondition = false) {
|
|
46
|
-
this.parts.where.push({
|
|
47
|
-
type: "operation",
|
|
48
|
-
column,
|
|
49
|
-
operation,
|
|
50
|
-
value,
|
|
51
|
-
joinCondition,
|
|
52
|
-
negateCondition
|
|
53
|
-
});
|
|
54
|
-
return this;
|
|
55
|
-
}
|
|
56
|
-
whereColumn(column1, operation, column2, joinCondition = "and", negateCondition = false) {
|
|
57
|
-
this.parts.where.push({
|
|
58
|
-
type: "operationColumn",
|
|
59
|
-
column1,
|
|
60
|
-
operation,
|
|
61
|
-
column2,
|
|
62
|
-
joinCondition,
|
|
63
|
-
negateCondition
|
|
64
|
-
});
|
|
65
|
-
return this;
|
|
66
|
-
}
|
|
67
|
-
whereNull(column, joinCondition = "and", negateCondition = false) {
|
|
68
|
-
this.parts.where.push({ type: "null", column, joinCondition, negateCondition });
|
|
69
|
-
return this;
|
|
70
|
-
}
|
|
71
|
-
clearWhere() {
|
|
72
|
-
this.parts.where = [];
|
|
73
|
-
return this;
|
|
74
|
-
}
|
|
75
|
-
select(selects) {
|
|
76
|
-
this.parts.select = [...selects];
|
|
77
|
-
return this;
|
|
78
|
-
}
|
|
79
|
-
groupBy(columns) {
|
|
80
|
-
this.parts.groupBy = [...columns];
|
|
81
|
-
return this;
|
|
82
|
-
}
|
|
83
|
-
havingOp(column, operation, value, joinCondition = "and", negateCondition = false) {
|
|
84
|
-
this.parts.having.push({
|
|
85
|
-
type: "operation",
|
|
86
|
-
column,
|
|
87
|
-
operation,
|
|
88
|
-
value,
|
|
89
|
-
joinCondition,
|
|
90
|
-
negateCondition
|
|
91
|
-
});
|
|
92
|
-
return this;
|
|
93
|
-
}
|
|
94
|
-
havingRaw(sql, bindings, joinCondition = "and", negateCondition = false) {
|
|
95
|
-
this.parts.having.push({ type: "raw", sql, bindings, joinCondition, negateCondition });
|
|
96
|
-
return this;
|
|
97
|
-
}
|
|
98
|
-
orderBy(column, direction = "asc") {
|
|
99
|
-
this.parts.orderBy.push(`${column} ${direction}`);
|
|
100
|
-
return this;
|
|
101
|
-
}
|
|
102
|
-
limit(limit) {
|
|
103
|
-
this.parts.limit = limit;
|
|
104
|
-
return this;
|
|
105
|
-
}
|
|
106
|
-
offset(offset) {
|
|
107
|
-
this.parts.offset = offset;
|
|
108
|
-
return this;
|
|
109
|
-
}
|
|
110
|
-
toSql() {
|
|
111
|
-
return this.grammar.toSql(this);
|
|
112
|
-
}
|
|
113
|
-
async get() {
|
|
114
|
-
return await this.connection?.runQuery(this.toSql());
|
|
115
|
-
}
|
|
116
|
-
async count() {
|
|
117
|
-
const csql = this.grammar.compileCount(this);
|
|
118
|
-
const result = await this.connection?.runQuery(csql);
|
|
119
|
-
if (result && Array.isArray(result) && result.length > 0) {
|
|
120
|
-
return parseInt(result[0]["count"], 10);
|
|
121
|
-
}
|
|
122
|
-
return 0;
|
|
123
|
-
}
|
|
124
|
-
async getCursor() {
|
|
125
|
-
return await this.connection?.runCursor(this.toSql());
|
|
126
|
-
}
|
|
127
|
-
getConnection() {
|
|
128
|
-
return this.connection;
|
|
129
|
-
}
|
|
130
|
-
async insert(data) {
|
|
131
|
-
const csql = this.grammar.compileInsert(this, data);
|
|
132
|
-
return await this.connection?.runQuery(csql);
|
|
133
|
-
}
|
|
134
|
-
async insertGetId(data, options = { primaryKey: ["id"] }) {
|
|
135
|
-
const csql = this.grammar.compileInsertGetId(this, data, options);
|
|
136
|
-
return await this.connection?.runQuery(csql);
|
|
137
|
-
}
|
|
138
|
-
async update(data) {
|
|
139
|
-
const csql = this.grammar.compileUpdate(this, data);
|
|
140
|
-
return await this.connection?.runQuery(csql);
|
|
141
|
-
}
|
|
142
|
-
async upsert(data, uniqueColumns, updateColumns) {
|
|
143
|
-
const csql = this.grammar.compileUpsert(this, data, uniqueColumns, updateColumns);
|
|
144
|
-
return await this.connection?.runQuery(csql);
|
|
145
|
-
}
|
|
146
|
-
async delete() {
|
|
147
|
-
const csql = this.grammar.compileDelete(this);
|
|
148
|
-
return await this.connection?.runQuery(csql);
|
|
149
|
-
}
|
|
150
|
-
innerJoin(table, condtions) {
|
|
151
|
-
this.parts.join.push({ type: "inner", table, conditions: condtions });
|
|
152
|
-
return this;
|
|
153
|
-
}
|
|
154
|
-
leftJoin(table, condtions) {
|
|
155
|
-
this.parts.join.push({ type: "left", table, conditions: condtions });
|
|
156
|
-
return this;
|
|
157
|
-
}
|
|
158
|
-
rightJoin(table, condtions) {
|
|
159
|
-
this.parts.join.push({ type: "right", table, conditions: condtions });
|
|
160
|
-
return this;
|
|
161
|
-
}
|
|
162
|
-
fullJoin(table, condtions) {
|
|
163
|
-
this.parts.join.push({ type: "full", table, conditions: condtions });
|
|
164
|
-
return this;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
168
|
-
0 && (module.exports = {
|
|
169
|
-
Query
|
|
170
|
-
});
|
|
171
|
-
//# sourceMappingURL=Query.js.map
|
package/dist/Query.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Query.ts"],"sourcesContent":["import { Connection } from './Connection';\nimport { QueryGrammar } from './QueryGrammar';\nimport {\n CompiledSql,\n JoinCondition,\n Parameter,\n selectType,\n whereType,\n havingType,\n joinType,\n} from './types';\n\nexport type QueryParts = {\n select: selectType[];\n table: string;\n join: joinType[];\n where: whereType[];\n groupBy: string[];\n having: havingType[];\n orderBy: string[];\n limit: number | null;\n offset: number | null;\n};\n\nexport class Query {\n allowedOperations: string[] = ['=', '>', '<', '!=', 'like', 'ilike'];\n parts: QueryParts = {\n select: ['*'],\n table: '',\n join: [],\n where: [],\n groupBy: [],\n having: [],\n orderBy: [],\n limit: null,\n offset: null,\n };\n\n constructor(\n private readonly connection: Connection | null,\n private readonly grammar: QueryGrammar\n ) {}\n\n table(tableName: string): this {\n this.parts.table = tableName;\n return this;\n }\n\n whereOp(\n column: string,\n operation: (typeof this.allowedOperations)[number],\n value: Parameter,\n joinCondition: JoinCondition = 'and',\n negateCondition: boolean = false\n ): this {\n this.parts.where.push({\n type: 'operation',\n column,\n operation,\n value,\n joinCondition,\n negateCondition,\n });\n return this;\n }\n\n whereColumn(\n column1: string,\n operation: (typeof this.allowedOperations)[number],\n column2: string,\n joinCondition: JoinCondition = 'and',\n negateCondition: boolean = false\n ): this {\n this.parts.where.push({\n type: 'operationColumn',\n column1,\n operation,\n column2,\n joinCondition,\n negateCondition,\n });\n return this;\n }\n\n whereNull(\n column: string,\n joinCondition: JoinCondition = 'and',\n negateCondition: boolean = false\n ): this {\n this.parts.where.push({ type: 'null', column, joinCondition, negateCondition });\n return this;\n }\n\n clearWhere(): this {\n this.parts.where = [];\n return this;\n }\n\n select(selects: selectType[]): this {\n this.parts.select = [...selects];\n return this;\n }\n\n groupBy(columns: string[]): this {\n this.parts.groupBy = [...columns];\n return this;\n }\n\n havingOp(\n column: string,\n operation: (typeof this.allowedOperations)[number],\n value: Parameter,\n joinCondition: JoinCondition = 'and',\n negateCondition: boolean = false\n ): this {\n this.parts.having.push({\n type: 'operation',\n column,\n operation,\n value,\n joinCondition,\n negateCondition,\n });\n return this;\n }\n\n havingRaw(\n sql: string,\n bindings: Parameter[],\n joinCondition: JoinCondition = 'and',\n negateCondition: boolean = false\n ): this {\n this.parts.having.push({ type: 'raw', sql, bindings, joinCondition, negateCondition });\n return this;\n }\n\n orderBy(column: string, direction: 'asc' | 'desc' = 'asc'): this {\n this.parts.orderBy.push(`${column} ${direction}`);\n return this;\n }\n\n limit(limit: number): this {\n this.parts.limit = limit;\n return this;\n }\n\n offset(offset: number): this {\n this.parts.offset = offset;\n return this;\n }\n\n toSql(): CompiledSql {\n return this.grammar.toSql(this);\n }\n\n async get() {\n return await this.connection?.runQuery(this.toSql());\n }\n\n async count(): Promise<number> {\n const csql: CompiledSql = this.grammar.compileCount(this);\n const result = await this.connection?.runQuery(csql);\n if (result && Array.isArray(result) && result.length > 0) {\n return parseInt(result[0]['count'], 10);\n }\n return 0;\n }\n\n async getCursor() {\n return await this.connection?.runCursor(this.toSql());\n }\n\n getConnection(): Connection | null {\n return this.connection;\n }\n\n async insert(data: Record<string, Parameter>) {\n const csql: CompiledSql = this.grammar.compileInsert(this, data);\n return await this.connection?.runQuery(csql);\n }\n\n async insertGetId(\n data: Record<string, Parameter>,\n options: { primaryKey: string[] } = { primaryKey: ['id'] }\n ) {\n const csql: CompiledSql = this.grammar.compileInsertGetId(this, data, options);\n return await this.connection?.runQuery(csql);\n }\n\n async update(data: Record<string, Parameter>) {\n const csql: CompiledSql = this.grammar.compileUpdate(this, data);\n return await this.connection?.runQuery(csql);\n }\n\n async upsert(data: Record<string, Parameter>, uniqueColumns: string[], updateColumns: string[]) {\n const csql: CompiledSql = this.grammar.compileUpsert(this, data, uniqueColumns, updateColumns);\n return await this.connection?.runQuery(csql);\n }\n\n async delete() {\n const csql: CompiledSql = this.grammar.compileDelete(this);\n return await this.connection?.runQuery(csql);\n }\n\n innerJoin(table: string, condtions: whereType[]): this {\n this.parts.join.push({ type: 'inner', table, conditions: condtions });\n return this;\n }\n\n leftJoin(table: string, condtions: whereType[]): this {\n this.parts.join.push({ type: 'left', table, conditions: condtions });\n return this;\n }\n\n rightJoin(table: string, condtions: whereType[]): this {\n this.parts.join.push({ type: 'right', table, conditions: condtions });\n return this;\n }\n\n fullJoin(table: string, condtions: whereType[]): this {\n this.parts.join.push({ type: 'full', table, conditions: condtions });\n return this;\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/QueryGrammar.d.ts
DELETED
package/dist/QueryGrammar.js
DELETED
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var QueryGrammar_exports = {};
|
|
20
|
-
__export(QueryGrammar_exports, {
|
|
21
|
-
QueryGrammar: () => QueryGrammar
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(QueryGrammar_exports);
|
|
24
|
-
function toUpperFirst(str) {
|
|
25
|
-
return str.substring(0, 1).toUpperCase() + str.substring(1);
|
|
26
|
-
}
|
|
27
|
-
class QueryGrammar {
|
|
28
|
-
sqlParts = [
|
|
29
|
-
"select",
|
|
30
|
-
"table",
|
|
31
|
-
"join",
|
|
32
|
-
"where",
|
|
33
|
-
"groupBy",
|
|
34
|
-
"having",
|
|
35
|
-
"orderBy",
|
|
36
|
-
"limit",
|
|
37
|
-
"offset"
|
|
38
|
-
];
|
|
39
|
-
toSql(query) {
|
|
40
|
-
let sql = "";
|
|
41
|
-
let bindings = [];
|
|
42
|
-
for (const part of this.sqlParts) {
|
|
43
|
-
const funcName = "compile" + toUpperFirst(part);
|
|
44
|
-
const r = this[funcName](query.parts[part]);
|
|
45
|
-
if (!sql) {
|
|
46
|
-
sql = r.sql;
|
|
47
|
-
} else if (r.sql) {
|
|
48
|
-
sql += " " + r.sql;
|
|
49
|
-
}
|
|
50
|
-
bindings = [...bindings, ...r.bindings];
|
|
51
|
-
}
|
|
52
|
-
return { sql, bindings };
|
|
53
|
-
}
|
|
54
|
-
compileCount(query) {
|
|
55
|
-
let sql = "";
|
|
56
|
-
let bindings = [];
|
|
57
|
-
for (const part of this.sqlParts) {
|
|
58
|
-
let parts = query.parts[part];
|
|
59
|
-
if (part === "select") {
|
|
60
|
-
parts = ["count(*) as count"];
|
|
61
|
-
}
|
|
62
|
-
const funcName = "compile" + toUpperFirst(part);
|
|
63
|
-
const r = this[funcName](parts);
|
|
64
|
-
if (!sql) {
|
|
65
|
-
sql = r.sql;
|
|
66
|
-
} else if (r.sql) {
|
|
67
|
-
sql += " " + r.sql;
|
|
68
|
-
}
|
|
69
|
-
bindings = [...bindings, ...r.bindings];
|
|
70
|
-
}
|
|
71
|
-
return { sql, bindings };
|
|
72
|
-
}
|
|
73
|
-
compileSelect(selects) {
|
|
74
|
-
const rc = selects.map((v) => {
|
|
75
|
-
return v;
|
|
76
|
-
}).join(", ");
|
|
77
|
-
return { sql: "select " + rc, bindings: [] };
|
|
78
|
-
}
|
|
79
|
-
compileTable(tableName) {
|
|
80
|
-
let rc = "";
|
|
81
|
-
if (tableName.length) {
|
|
82
|
-
rc = "from " + tableName;
|
|
83
|
-
}
|
|
84
|
-
return { sql: rc, bindings: [] };
|
|
85
|
-
}
|
|
86
|
-
compileJoin(joins) {
|
|
87
|
-
let sql = "";
|
|
88
|
-
let bindings = [];
|
|
89
|
-
for (const j of joins) {
|
|
90
|
-
sql += " " + j.type + " join " + j.table + " on ";
|
|
91
|
-
const where = this.compileWhere(j.conditions);
|
|
92
|
-
if (where.sql.startsWith("where ")) {
|
|
93
|
-
where.sql = where.sql.substring("where ".length);
|
|
94
|
-
}
|
|
95
|
-
sql += "(";
|
|
96
|
-
sql += where.sql;
|
|
97
|
-
sql += ")";
|
|
98
|
-
bindings = [...bindings, ...where.bindings];
|
|
99
|
-
}
|
|
100
|
-
return { sql, bindings };
|
|
101
|
-
}
|
|
102
|
-
compileWhere(wheres) {
|
|
103
|
-
let sql = "";
|
|
104
|
-
let bindings = [];
|
|
105
|
-
for (const w of wheres) {
|
|
106
|
-
sql += " " + w.joinCondition + " ";
|
|
107
|
-
if (w.negateCondition) {
|
|
108
|
-
sql += "not ";
|
|
109
|
-
}
|
|
110
|
-
const funcName = "compileWhere" + toUpperFirst(w.type);
|
|
111
|
-
const wh = this[funcName](w);
|
|
112
|
-
sql += wh.sql;
|
|
113
|
-
bindings = [...bindings, ...wh.bindings];
|
|
114
|
-
}
|
|
115
|
-
if (sql.startsWith(" and ")) {
|
|
116
|
-
sql = "where " + sql.substring(" and ".length);
|
|
117
|
-
} else if (sql.startsWith(" or ")) {
|
|
118
|
-
sql = "where " + sql.substring(" or ".length);
|
|
119
|
-
}
|
|
120
|
-
return { sql, bindings };
|
|
121
|
-
}
|
|
122
|
-
compileWhereOperation(w) {
|
|
123
|
-
return {
|
|
124
|
-
sql: `${w.column} ${w.operation} ${this.getVariablePlaceholder()}`,
|
|
125
|
-
bindings: [w.value]
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
compileWhereOperationColumn(w) {
|
|
129
|
-
return {
|
|
130
|
-
sql: `${w.column1} ${w.operation} ${w.column2}`,
|
|
131
|
-
bindings: []
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
compileOrderBy(orderBy) {
|
|
135
|
-
let rc = "";
|
|
136
|
-
if (orderBy.length) {
|
|
137
|
-
rc = "order by " + orderBy.join(", ");
|
|
138
|
-
}
|
|
139
|
-
return { sql: rc, bindings: [] };
|
|
140
|
-
}
|
|
141
|
-
compileLimit(limit) {
|
|
142
|
-
let rc = "";
|
|
143
|
-
if (limit !== null) {
|
|
144
|
-
rc = "limit " + limit;
|
|
145
|
-
}
|
|
146
|
-
return { sql: rc, bindings: [] };
|
|
147
|
-
}
|
|
148
|
-
compileOffset(offset) {
|
|
149
|
-
let rc = "";
|
|
150
|
-
if (offset !== null) {
|
|
151
|
-
rc = "offset " + offset;
|
|
152
|
-
}
|
|
153
|
-
return { sql: rc, bindings: [] };
|
|
154
|
-
}
|
|
155
|
-
compileWhereNull(w) {
|
|
156
|
-
return {
|
|
157
|
-
sql: `${w.column} is null`,
|
|
158
|
-
bindings: []
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
compileInsert(query, data) {
|
|
162
|
-
let sql = "insert into " + query.parts.table + " (";
|
|
163
|
-
const columns = [];
|
|
164
|
-
const bindings = [];
|
|
165
|
-
const values = [];
|
|
166
|
-
for (const [k, v] of Object.entries(data)) {
|
|
167
|
-
columns.push(k);
|
|
168
|
-
bindings.push(v);
|
|
169
|
-
values.push(this.getVariablePlaceholder());
|
|
170
|
-
}
|
|
171
|
-
sql += columns.join(", ") + ") values (" + values + ")";
|
|
172
|
-
return { sql, bindings };
|
|
173
|
-
}
|
|
174
|
-
compileUpdate(query, data) {
|
|
175
|
-
let sql = "update " + query.parts.table + " set ";
|
|
176
|
-
const bindings = [];
|
|
177
|
-
const setParts = [];
|
|
178
|
-
for (const [k, v] of Object.entries(data)) {
|
|
179
|
-
setParts.push(`${k} = ${this.getVariablePlaceholder()}`);
|
|
180
|
-
bindings.push(v);
|
|
181
|
-
}
|
|
182
|
-
sql += setParts.join(", ");
|
|
183
|
-
const where_csql = this.compileWhere(query.parts.where);
|
|
184
|
-
sql += " " + where_csql.sql;
|
|
185
|
-
bindings.push(...where_csql.bindings);
|
|
186
|
-
return { sql, bindings };
|
|
187
|
-
}
|
|
188
|
-
compileDelete(query) {
|
|
189
|
-
let sql = "delete from " + query.parts.table;
|
|
190
|
-
const where_csql = this.compileWhere(query.parts.where);
|
|
191
|
-
sql += " " + where_csql.sql;
|
|
192
|
-
return { sql, bindings: where_csql.bindings };
|
|
193
|
-
}
|
|
194
|
-
compileUpsert(query, data, conflictFields, updateFields) {
|
|
195
|
-
let sql = "insert into " + query.parts.table + " (";
|
|
196
|
-
const columns = [];
|
|
197
|
-
const bindings = [];
|
|
198
|
-
const values = [];
|
|
199
|
-
for (const [k, v] of Object.entries(data)) {
|
|
200
|
-
columns.push(k);
|
|
201
|
-
bindings.push(v);
|
|
202
|
-
values.push(this.getVariablePlaceholder());
|
|
203
|
-
}
|
|
204
|
-
sql += columns.join(", ") + ") values (" + values + ")";
|
|
205
|
-
sql += " on conflict (" + conflictFields.join(", ") + ") do update set ";
|
|
206
|
-
const setParts = [];
|
|
207
|
-
for (const f of updateFields) {
|
|
208
|
-
setParts.push(`${f} = excluded.${f}`);
|
|
209
|
-
}
|
|
210
|
-
sql += setParts.join(", ");
|
|
211
|
-
const where_csql = this.compileWhere(query.parts.where);
|
|
212
|
-
sql += " " + where_csql.sql;
|
|
213
|
-
bindings.push(...where_csql.bindings);
|
|
214
|
-
return { sql, bindings };
|
|
215
|
-
}
|
|
216
|
-
compileGroupBy(groupBy) {
|
|
217
|
-
let rc = "";
|
|
218
|
-
if (groupBy.length) {
|
|
219
|
-
rc = "group by " + groupBy.join(", ");
|
|
220
|
-
}
|
|
221
|
-
return { sql: rc, bindings: [] };
|
|
222
|
-
}
|
|
223
|
-
compileHaving(having) {
|
|
224
|
-
let sql = "";
|
|
225
|
-
let bindings = [];
|
|
226
|
-
for (const w of having) {
|
|
227
|
-
sql += " " + w.joinCondition + " ";
|
|
228
|
-
if (w.negateCondition) {
|
|
229
|
-
sql += "not ";
|
|
230
|
-
}
|
|
231
|
-
const funcName = "compileHaving" + toUpperFirst(w.type);
|
|
232
|
-
const wh = this[funcName](w);
|
|
233
|
-
sql += wh.sql;
|
|
234
|
-
bindings = [...bindings, ...wh.bindings];
|
|
235
|
-
}
|
|
236
|
-
if (sql.startsWith(" and ")) {
|
|
237
|
-
sql = "having " + sql.substring(" and ".length);
|
|
238
|
-
} else if (sql.startsWith(" or ")) {
|
|
239
|
-
sql = "having " + sql.substring(" or ".length);
|
|
240
|
-
}
|
|
241
|
-
return { sql, bindings };
|
|
242
|
-
}
|
|
243
|
-
compileHavingOperation(w) {
|
|
244
|
-
return {
|
|
245
|
-
sql: `${w.column} ${w.operation} ${this.getVariablePlaceholder()}`,
|
|
246
|
-
bindings: [w.value]
|
|
247
|
-
};
|
|
248
|
-
}
|
|
249
|
-
compileHavingRaw(w) {
|
|
250
|
-
return {
|
|
251
|
-
sql: w.sql,
|
|
252
|
-
bindings: w.bindings
|
|
253
|
-
};
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
257
|
-
0 && (module.exports = {
|
|
258
|
-
QueryGrammar
|
|
259
|
-
});
|
|
260
|
-
//# sourceMappingURL=QueryGrammar.js.map
|
package/dist/QueryGrammar.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/QueryGrammar.ts"],"sourcesContent":["import { Query } from './Query';\nimport {\n Parameter,\n CompiledSql,\n selectType,\n whereNull,\n whereOp,\n whereType,\n whereRaw,\n havingType,\n whereOpColumn,\n joinType,\n} from './types';\n\nfunction toUpperFirst(str: string) {\n return str.substring(0, 1).toUpperCase() + str.substring(1);\n}\nexport abstract class QueryGrammar {\n sqlParts: string[] = [\n 'select',\n 'table',\n 'join',\n 'where',\n 'groupBy',\n 'having',\n 'orderBy',\n 'limit',\n 'offset',\n ];\n\n toSql(query: Query): CompiledSql {\n let sql = '';\n let bindings: Parameter[] = [];\n\n for (const part of this.sqlParts) {\n // @ts-ignore\n const funcName: keyof this = 'compile' + toUpperFirst(part);\n // @ts-ignore\n const r = this[funcName](query.parts[part]);\n if (!sql) {\n sql = r.sql;\n } else if (r.sql) {\n sql += ' ' + r.sql;\n }\n bindings = [...bindings, ...r.bindings];\n }\n return { sql, bindings };\n }\n\n compileCount(query: Query): CompiledSql {\n let sql = '';\n let bindings: Parameter[] = [];\n\n for (const part of this.sqlParts) {\n // @ts-ignore\n let parts = query.parts[part];\n if (part === 'select') {\n parts = ['count(*) as count'];\n }\n // @ts-ignore\n const funcName: keyof this = 'compile' + toUpperFirst(part);\n // @ts-ignore\n const r = this[funcName](parts);\n if (!sql) {\n sql = r.sql;\n } else if (r.sql) {\n sql += ' ' + r.sql;\n }\n bindings = [...bindings, ...r.bindings];\n }\n return { sql, bindings };\n }\n\n compileSelect(selects: selectType[]): CompiledSql {\n const rc = selects\n .map((v) => {\n return v;\n })\n .join(', ');\n\n return { sql: 'select ' + rc, bindings: [] };\n }\n\n compileTable(tableName: string): CompiledSql {\n let rc = '';\n if (tableName.length) {\n rc = 'from ' + tableName;\n }\n\n return { sql: rc, bindings: [] };\n }\n\n compileJoin(joins: joinType[]): CompiledSql {\n let sql = '';\n let bindings: Parameter[] = [];\n\n for (const j of joins) {\n sql += ' ' + j.type + ' join ' + j.table + ' on ';\n\n const where = this.compileWhere(j.conditions);\n if (where.sql.startsWith('where ')) {\n where.sql = where.sql.substring('where '.length);\n }\n\n sql += '(';\n sql += where.sql;\n sql += ')';\n\n bindings = [...bindings, ...where.bindings];\n }\n\n return { sql, bindings };\n }\n\n compileWhere(wheres: whereType[]): CompiledSql {\n let sql = '';\n let bindings: Parameter[] = [];\n\n for (const w of wheres) {\n sql += ' ' + w.joinCondition + ' ';\n if (w.negateCondition) {\n sql += 'not ';\n }\n const funcName = 'compileWhere' + toUpperFirst(w.type);\n // @ts-ignore\n const wh = this[funcName](w);\n sql += wh.sql;\n bindings = [...bindings, ...wh.bindings];\n }\n if (sql.startsWith(' and ')) {\n sql = 'where ' + sql.substring(' and '.length);\n } else if (sql.startsWith(' or ')) {\n sql = 'where ' + sql.substring(' or '.length);\n }\n return { sql, bindings };\n }\n\n compileWhereOperation(w: whereOp): CompiledSql {\n return {\n sql: `${w.column} ${w.operation} ${this.getVariablePlaceholder()}`,\n bindings: [w.value],\n };\n }\n\n compileWhereOperationColumn(w: whereOpColumn): CompiledSql {\n return {\n sql: `${w.column1} ${w.operation} ${w.column2}`,\n bindings: [],\n };\n }\n\n compileOrderBy(orderBy: string[]): CompiledSql {\n let rc = '';\n if (orderBy.length) {\n rc = 'order by ' + orderBy.join(', ');\n }\n\n return { sql: rc, bindings: [] };\n }\n\n compileLimit(limit: number | null): CompiledSql {\n let rc = '';\n if (limit !== null) {\n rc = 'limit ' + limit;\n }\n\n return { sql: rc, bindings: [] };\n }\n\n compileOffset(offset: number | null): CompiledSql {\n let rc = '';\n if (offset !== null) {\n rc = 'offset ' + offset;\n }\n\n return { sql: rc, bindings: [] };\n }\n\n abstract getVariablePlaceholder(): string;\n\n compileWhereNull(w: whereNull): CompiledSql {\n return {\n sql: `${w.column} is null`,\n bindings: [],\n };\n }\n\n compileInsert(query: Query, data: Record<string, Parameter>): CompiledSql {\n let sql = 'insert into ' + query.parts.table + ' (';\n const columns: string[] = [];\n const bindings: Parameter[] = [];\n const values: string[] = [];\n\n for (const [k, v] of Object.entries(data)) {\n columns.push(k);\n bindings.push(v);\n values.push(this.getVariablePlaceholder());\n }\n\n sql += columns.join(', ') + ') values (' + values + ')';\n\n return { sql, bindings };\n }\n\n abstract compileInsertGetId(\n query: Query,\n data: Record<string, Parameter>,\n options: { primaryKey: string[] }\n ): CompiledSql;\n\n compileUpdate(query: Query, data: Record<string, Parameter>): CompiledSql {\n let sql = 'update ' + query.parts.table + ' set ';\n const bindings: Parameter[] = [];\n\n const setParts = [];\n for (const [k, v] of Object.entries(data)) {\n setParts.push(`${k} = ${this.getVariablePlaceholder()}`);\n bindings.push(v);\n }\n\n sql += setParts.join(', ');\n\n const where_csql = this.compileWhere(query.parts.where);\n sql += ' ' + where_csql.sql;\n bindings.push(...where_csql.bindings);\n\n return { sql, bindings };\n }\n\n compileDelete(query: Query): CompiledSql {\n let sql = 'delete from ' + query.parts.table;\n const where_csql = this.compileWhere(query.parts.where);\n sql += ' ' + where_csql.sql;\n return { sql, bindings: where_csql.bindings };\n }\n\n compileUpsert(\n query: Query,\n data: Record<string, Parameter>,\n conflictFields: string[],\n updateFields: string[]\n ): CompiledSql {\n let sql = 'insert into ' + query.parts.table + ' (';\n const columns: string[] = [];\n const bindings: Parameter[] = [];\n const values: string[] = [];\n\n for (const [k, v] of Object.entries(data)) {\n columns.push(k);\n bindings.push(v);\n values.push(this.getVariablePlaceholder());\n }\n\n sql += columns.join(', ') + ') values (' + values + ')';\n\n sql += ' on conflict (' + conflictFields.join(', ') + ') do update set ';\n const setParts = [];\n for (const f of updateFields) {\n setParts.push(`${f} = excluded.${f}`);\n }\n sql += setParts.join(', ');\n\n const where_csql = this.compileWhere(query.parts.where);\n sql += ' ' + where_csql.sql;\n bindings.push(...where_csql.bindings);\n\n return { sql, bindings };\n }\n\n compileGroupBy(groupBy: string[]): CompiledSql {\n let rc = '';\n if (groupBy.length) {\n rc = 'group by ' + groupBy.join(', ');\n }\n\n return { sql: rc, bindings: [] };\n }\n\n compileHaving(having: havingType[]): CompiledSql {\n let sql = '';\n let bindings: Parameter[] = [];\n\n for (const w of having) {\n sql += ' ' + w.joinCondition + ' ';\n if (w.negateCondition) {\n sql += 'not ';\n }\n const funcName = 'compileHaving' + toUpperFirst(w.type);\n // @ts-ignore\n const wh = this[funcName](w);\n sql += wh.sql;\n bindings = [...bindings, ...wh.bindings];\n }\n if (sql.startsWith(' and ')) {\n sql = 'having ' + sql.substring(' and '.length);\n } else if (sql.startsWith(' or ')) {\n sql = 'having ' + sql.substring(' or '.length);\n }\n return { sql, bindings };\n }\n\n compileHavingOperation(w: whereOp): CompiledSql {\n return {\n sql: `${w.column} ${w.operation} ${this.getVariablePlaceholder()}`,\n bindings: [w.value],\n };\n }\n\n compileHavingRaw(w: whereRaw): CompiledSql {\n return {\n sql: w.sql,\n bindings: w.bindings,\n };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAcA,SAAS,aAAa,KAAa;AACjC,SAAO,IAAI,UAAU,GAAG,CAAC,EAAE,YAAY,IAAI,IAAI,UAAU,CAAC;AAC5D;AACO,MAAe,aAAa;AAAA,EACjC,WAAqB;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,MAAM,OAA2B;AAC/B,QAAI,MAAM;AACV,QAAI,WAAwB,CAAC;AAE7B,eAAW,QAAQ,KAAK,UAAU;AAEhC,YAAM,WAAuB,YAAY,aAAa,IAAI;AAE1D,YAAM,IAAI,KAAK,QAAQ,EAAE,MAAM,MAAM,IAAI,CAAC;AAC1C,UAAI,CAAC,KAAK;AACR,cAAM,EAAE;AAAA,MACV,WAAW,EAAE,KAAK;AAChB,eAAO,MAAM,EAAE;AAAA,MACjB;AACA,iBAAW,CAAC,GAAG,UAAU,GAAG,EAAE,QAAQ;AAAA,IACxC;AACA,WAAO,EAAE,KAAK,SAAS;AAAA,EACzB;AAAA,EAEA,aAAa,OAA2B;AACtC,QAAI,MAAM;AACV,QAAI,WAAwB,CAAC;AAE7B,eAAW,QAAQ,KAAK,UAAU;AAEhC,UAAI,QAAQ,MAAM,MAAM,IAAI;AAC5B,UAAI,SAAS,UAAU;AACrB,gBAAQ,CAAC,mBAAmB;AAAA,MAC9B;AAEA,YAAM,WAAuB,YAAY,aAAa,IAAI;AAE1D,YAAM,IAAI,KAAK,QAAQ,EAAE,KAAK;AAC9B,UAAI,CAAC,KAAK;AACR,cAAM,EAAE;AAAA,MACV,WAAW,EAAE,KAAK;AAChB,eAAO,MAAM,EAAE;AAAA,MACjB;AACA,iBAAW,CAAC,GAAG,UAAU,GAAG,EAAE,QAAQ;AAAA,IACxC;AACA,WAAO,EAAE,KAAK,SAAS;AAAA,EACzB;AAAA,EAEA,cAAc,SAAoC;AAChD,UAAM,KAAK,QACR,IAAI,CAAC,MAAM;AACV,aAAO;AAAA,IACT,CAAC,EACA,KAAK,IAAI;AAEZ,WAAO,EAAE,KAAK,YAAY,IAAI,UAAU,CAAC,EAAE;AAAA,EAC7C;AAAA,EAEA,aAAa,WAAgC;AAC3C,QAAI,KAAK;AACT,QAAI,UAAU,QAAQ;AACpB,WAAK,UAAU;AAAA,IACjB;AAEA,WAAO,EAAE,KAAK,IAAI,UAAU,CAAC,EAAE;AAAA,EACjC;AAAA,EAEA,YAAY,OAAgC;AAC1C,QAAI,MAAM;AACV,QAAI,WAAwB,CAAC;AAE7B,eAAW,KAAK,OAAO;AACrB,aAAO,MAAM,EAAE,OAAO,WAAW,EAAE,QAAQ;AAE3C,YAAM,QAAQ,KAAK,aAAa,EAAE,UAAU;AAC5C,UAAI,MAAM,IAAI,WAAW,QAAQ,GAAG;AAClC,cAAM,MAAM,MAAM,IAAI,UAAU,SAAS,MAAM;AAAA,MACjD;AAEA,aAAO;AACP,aAAO,MAAM;AACb,aAAO;AAEP,iBAAW,CAAC,GAAG,UAAU,GAAG,MAAM,QAAQ;AAAA,IAC5C;AAEA,WAAO,EAAE,KAAK,SAAS;AAAA,EACzB;AAAA,EAEA,aAAa,QAAkC;AAC7C,QAAI,MAAM;AACV,QAAI,WAAwB,CAAC;AAE7B,eAAW,KAAK,QAAQ;AACtB,aAAO,MAAM,EAAE,gBAAgB;AAC/B,UAAI,EAAE,iBAAiB;AACrB,eAAO;AAAA,MACT;AACA,YAAM,WAAW,iBAAiB,aAAa,EAAE,IAAI;AAErD,YAAM,KAAK,KAAK,QAAQ,EAAE,CAAC;AAC3B,aAAO,GAAG;AACV,iBAAW,CAAC,GAAG,UAAU,GAAG,GAAG,QAAQ;AAAA,IACzC;AACA,QAAI,IAAI,WAAW,OAAO,GAAG;AAC3B,YAAM,WAAW,IAAI,UAAU,QAAQ,MAAM;AAAA,IAC/C,WAAW,IAAI,WAAW,MAAM,GAAG;AACjC,YAAM,WAAW,IAAI,UAAU,OAAO,MAAM;AAAA,IAC9C;AACA,WAAO,EAAE,KAAK,SAAS;AAAA,EACzB;AAAA,EAEA,sBAAsB,GAAyB;AAC7C,WAAO;AAAA,MACL,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,SAAS,IAAI,KAAK,uBAAuB,CAAC;AAAA,MAChE,UAAU,CAAC,EAAE,KAAK;AAAA,IACpB;AAAA,EACF;AAAA,EAEA,4BAA4B,GAA+B;AACzD,WAAO;AAAA,MACL,KAAK,GAAG,EAAE,OAAO,IAAI,EAAE,SAAS,IAAI,EAAE,OAAO;AAAA,MAC7C,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AAAA,EAEA,eAAe,SAAgC;AAC7C,QAAI,KAAK;AACT,QAAI,QAAQ,QAAQ;AAClB,WAAK,cAAc,QAAQ,KAAK,IAAI;AAAA,IACtC;AAEA,WAAO,EAAE,KAAK,IAAI,UAAU,CAAC,EAAE;AAAA,EACjC;AAAA,EAEA,aAAa,OAAmC;AAC9C,QAAI,KAAK;AACT,QAAI,UAAU,MAAM;AAClB,WAAK,WAAW;AAAA,IAClB;AAEA,WAAO,EAAE,KAAK,IAAI,UAAU,CAAC,EAAE;AAAA,EACjC;AAAA,EAEA,cAAc,QAAoC;AAChD,QAAI,KAAK;AACT,QAAI,WAAW,MAAM;AACnB,WAAK,YAAY;AAAA,IACnB;AAEA,WAAO,EAAE,KAAK,IAAI,UAAU,CAAC,EAAE;AAAA,EACjC;AAAA,EAIA,iBAAiB,GAA2B;AAC1C,WAAO;AAAA,MACL,KAAK,GAAG,EAAE,MAAM;AAAA,MAChB,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AAAA,EAEA,cAAc,OAAc,MAA8C;AACxE,QAAI,MAAM,iBAAiB,MAAM,MAAM,QAAQ;AAC/C,UAAM,UAAoB,CAAC;AAC3B,UAAM,WAAwB,CAAC;AAC/B,UAAM,SAAmB,CAAC;AAE1B,eAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,IAAI,GAAG;AACzC,cAAQ,KAAK,CAAC;AACd,eAAS,KAAK,CAAC;AACf,aAAO,KAAK,KAAK,uBAAuB,CAAC;AAAA,IAC3C;AAEA,WAAO,QAAQ,KAAK,IAAI,IAAI,eAAe,SAAS;AAEpD,WAAO,EAAE,KAAK,SAAS;AAAA,EACzB;AAAA,EAQA,cAAc,OAAc,MAA8C;AACxE,QAAI,MAAM,YAAY,MAAM,MAAM,QAAQ;AAC1C,UAAM,WAAwB,CAAC;AAE/B,UAAM,WAAW,CAAC;AAClB,eAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,IAAI,GAAG;AACzC,eAAS,KAAK,GAAG,CAAC,MAAM,KAAK,uBAAuB,CAAC,EAAE;AACvD,eAAS,KAAK,CAAC;AAAA,IACjB;AAEA,WAAO,SAAS,KAAK,IAAI;AAEzB,UAAM,aAAa,KAAK,aAAa,MAAM,MAAM,KAAK;AACtD,WAAO,MAAM,WAAW;AACxB,aAAS,KAAK,GAAG,WAAW,QAAQ;AAEpC,WAAO,EAAE,KAAK,SAAS;AAAA,EACzB;AAAA,EAEA,cAAc,OAA2B;AACvC,QAAI,MAAM,iBAAiB,MAAM,MAAM;AACvC,UAAM,aAAa,KAAK,aAAa,MAAM,MAAM,KAAK;AACtD,WAAO,MAAM,WAAW;AACxB,WAAO,EAAE,KAAK,UAAU,WAAW,SAAS;AAAA,EAC9C;AAAA,EAEA,cACE,OACA,MACA,gBACA,cACa;AACb,QAAI,MAAM,iBAAiB,MAAM,MAAM,QAAQ;AAC/C,UAAM,UAAoB,CAAC;AAC3B,UAAM,WAAwB,CAAC;AAC/B,UAAM,SAAmB,CAAC;AAE1B,eAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,IAAI,GAAG;AACzC,cAAQ,KAAK,CAAC;AACd,eAAS,KAAK,CAAC;AACf,aAAO,KAAK,KAAK,uBAAuB,CAAC;AAAA,IAC3C;AAEA,WAAO,QAAQ,KAAK,IAAI,IAAI,eAAe,SAAS;AAEpD,WAAO,mBAAmB,eAAe,KAAK,IAAI,IAAI;AACtD,UAAM,WAAW,CAAC;AAClB,eAAW,KAAK,cAAc;AAC5B,eAAS,KAAK,GAAG,CAAC,eAAe,CAAC,EAAE;AAAA,IACtC;AACA,WAAO,SAAS,KAAK,IAAI;AAEzB,UAAM,aAAa,KAAK,aAAa,MAAM,MAAM,KAAK;AACtD,WAAO,MAAM,WAAW;AACxB,aAAS,KAAK,GAAG,WAAW,QAAQ;AAEpC,WAAO,EAAE,KAAK,SAAS;AAAA,EACzB;AAAA,EAEA,eAAe,SAAgC;AAC7C,QAAI,KAAK;AACT,QAAI,QAAQ,QAAQ;AAClB,WAAK,cAAc,QAAQ,KAAK,IAAI;AAAA,IACtC;AAEA,WAAO,EAAE,KAAK,IAAI,UAAU,CAAC,EAAE;AAAA,EACjC;AAAA,EAEA,cAAc,QAAmC;AAC/C,QAAI,MAAM;AACV,QAAI,WAAwB,CAAC;AAE7B,eAAW,KAAK,QAAQ;AACtB,aAAO,MAAM,EAAE,gBAAgB;AAC/B,UAAI,EAAE,iBAAiB;AACrB,eAAO;AAAA,MACT;AACA,YAAM,WAAW,kBAAkB,aAAa,EAAE,IAAI;AAEtD,YAAM,KAAK,KAAK,QAAQ,EAAE,CAAC;AAC3B,aAAO,GAAG;AACV,iBAAW,CAAC,GAAG,UAAU,GAAG,GAAG,QAAQ;AAAA,IACzC;AACA,QAAI,IAAI,WAAW,OAAO,GAAG;AAC3B,YAAM,YAAY,IAAI,UAAU,QAAQ,MAAM;AAAA,IAChD,WAAW,IAAI,WAAW,MAAM,GAAG;AACjC,YAAM,YAAY,IAAI,UAAU,OAAO,MAAM;AAAA,IAC/C;AACA,WAAO,EAAE,KAAK,SAAS;AAAA,EACzB;AAAA,EAEA,uBAAuB,GAAyB;AAC9C,WAAO;AAAA,MACL,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,SAAS,IAAI,KAAK,uBAAuB,CAAC;AAAA,MAChE,UAAU,CAAC,EAAE,KAAK;AAAA,IACpB;AAAA,EACF;AAAA,EAEA,iBAAiB,GAA0B;AACzC,WAAO;AAAA,MACL,KAAK,EAAE;AAAA,MACP,UAAU,EAAE;AAAA,IACd;AAAA,EACF;AACF;","names":[]}
|
package/dist/Schema.d.ts
DELETED
package/dist/Schema.js
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var Schema_exports = {};
|
|
20
|
-
__export(Schema_exports, {
|
|
21
|
-
Schema: () => Schema
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(Schema_exports);
|
|
24
|
-
var import_Blueprint = require("./Blueprint");
|
|
25
|
-
var import_SchemaGrammar = require("./SchemaGrammar");
|
|
26
|
-
class Schema {
|
|
27
|
-
constructor(connection, grammar) {
|
|
28
|
-
this.connection = connection;
|
|
29
|
-
this.grammar = grammar;
|
|
30
|
-
}
|
|
31
|
-
async createTable(tableName, structMethod) {
|
|
32
|
-
const blueprint = new import_Blueprint.Blueprint();
|
|
33
|
-
blueprint.setTableName(tableName, false);
|
|
34
|
-
structMethod(blueprint);
|
|
35
|
-
const grammar = new import_SchemaGrammar.SchemaGrammar();
|
|
36
|
-
const sql = grammar.toSql(blueprint);
|
|
37
|
-
await this.connection?.runQuery({ sql, bindings: [] });
|
|
38
|
-
}
|
|
39
|
-
async alterTable(tableName, structMethod) {
|
|
40
|
-
const blueprint = new import_Blueprint.Blueprint();
|
|
41
|
-
blueprint.setTableName(tableName, true);
|
|
42
|
-
structMethod(blueprint);
|
|
43
|
-
const grammar = new import_SchemaGrammar.SchemaGrammar();
|
|
44
|
-
const sql = grammar.toSql(blueprint);
|
|
45
|
-
await this.connection?.runQuery({ sql, bindings: [] });
|
|
46
|
-
}
|
|
47
|
-
async dropTable(tableName) {
|
|
48
|
-
const grammar = new import_SchemaGrammar.SchemaGrammar();
|
|
49
|
-
await this.connection?.runQuery(grammar.compileDropTable(tableName));
|
|
50
|
-
}
|
|
51
|
-
async tables() {
|
|
52
|
-
const grammar = new import_SchemaGrammar.SchemaGrammar();
|
|
53
|
-
return await this.connection?.runQuery(grammar.compileTables());
|
|
54
|
-
}
|
|
55
|
-
async tableExists(table_name) {
|
|
56
|
-
const grammar = new import_SchemaGrammar.SchemaGrammar();
|
|
57
|
-
return (await this.connection?.runQuery(grammar.compileTableExists(table_name)))[0]["exists"];
|
|
58
|
-
}
|
|
59
|
-
async dropTableIfExists(tableName) {
|
|
60
|
-
if (await this.tableExists(tableName)) {
|
|
61
|
-
await this.dropTable(tableName);
|
|
62
|
-
}
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
67
|
-
0 && (module.exports = {
|
|
68
|
-
Schema
|
|
69
|
-
});
|
|
70
|
-
//# sourceMappingURL=Schema.js.map
|
package/dist/Schema.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Schema.ts"],"sourcesContent":["import { Blueprint } from './Blueprint';\nimport { Connection } from './Connection';\nimport { SchemaGrammar } from './SchemaGrammar';\n\nexport class Schema {\n constructor(\n private readonly connection: Connection | null,\n private readonly grammar: SchemaGrammar\n ) {}\n\n async createTable(tableName: string, structMethod: (blueprint: Blueprint) => void) {\n const blueprint = new Blueprint();\n blueprint.setTableName(tableName, false);\n structMethod(blueprint);\n\n const grammar = new SchemaGrammar();\n const sql = grammar.toSql(blueprint);\n await this.connection?.runQuery({ sql, bindings: [] });\n }\n\n async alterTable(tableName: string, structMethod: (blueprint: Blueprint) => void) {\n const blueprint = new Blueprint();\n blueprint.setTableName(tableName, true);\n structMethod(blueprint);\n\n const grammar = new SchemaGrammar();\n const sql = grammar.toSql(blueprint);\n await this.connection?.runQuery({ sql, bindings: [] });\n }\n\n async dropTable(tableName: string) {\n const grammar = new SchemaGrammar();\n await this.connection?.runQuery(grammar.compileDropTable(tableName));\n }\n\n async tables() {\n const grammar = new SchemaGrammar();\n return await this.connection?.runQuery(grammar.compileTables());\n }\n\n async tableExists(table_name: string): Promise<boolean> {\n const grammar = new SchemaGrammar();\n return (await this.connection?.runQuery(grammar.compileTableExists(table_name)))[0]['exists'];\n }\n\n async dropTableIfExists(tableName: string): Promise<void> {\n if (await this.tableExists(tableName)) {\n await this.dropTable(tableName);\n }\n\n return;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA0B;AAE1B,2BAA8B;AAEvB,MAAM,OAAO;AAAA,EAClB,YACmB,YACA,SACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAEH,MAAM,YAAY,WAAmB,cAA8C;AACjF,UAAM,YAAY,IAAI,2BAAU;AAChC,cAAU,aAAa,WAAW,KAAK;AACvC,iBAAa,SAAS;AAEtB,UAAM,UAAU,IAAI,mCAAc;AAClC,UAAM,MAAM,QAAQ,MAAM,SAAS;AACnC,UAAM,KAAK,YAAY,SAAS,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC;AAAA,EACvD;AAAA,EAEA,MAAM,WAAW,WAAmB,cAA8C;AAChF,UAAM,YAAY,IAAI,2BAAU;AAChC,cAAU,aAAa,WAAW,IAAI;AACtC,iBAAa,SAAS;AAEtB,UAAM,UAAU,IAAI,mCAAc;AAClC,UAAM,MAAM,QAAQ,MAAM,SAAS;AACnC,UAAM,KAAK,YAAY,SAAS,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC;AAAA,EACvD;AAAA,EAEA,MAAM,UAAU,WAAmB;AACjC,UAAM,UAAU,IAAI,mCAAc;AAClC,UAAM,KAAK,YAAY,SAAS,QAAQ,iBAAiB,SAAS,CAAC;AAAA,EACrE;AAAA,EAEA,MAAM,SAAS;AACb,UAAM,UAAU,IAAI,mCAAc;AAClC,WAAO,MAAM,KAAK,YAAY,SAAS,QAAQ,cAAc,CAAC;AAAA,EAChE;AAAA,EAEA,MAAM,YAAY,YAAsC;AACtD,UAAM,UAAU,IAAI,mCAAc;AAClC,YAAQ,MAAM,KAAK,YAAY,SAAS,QAAQ,mBAAmB,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ;AAAA,EAC9F;AAAA,EAEA,MAAM,kBAAkB,WAAkC;AACxD,QAAI,MAAM,KAAK,YAAY,SAAS,GAAG;AACrC,YAAM,KAAK,UAAU,SAAS;AAAA,IAChC;AAEA;AAAA,EACF;AACF;","names":[]}
|
package/dist/SchemaGrammar.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Blueprint, Column, ForeignKeyConstraint } from './Blueprint.js';
|
|
2
|
-
import { C as CompiledSql, P as Parameter } from './types-C_aDrXJN.js';
|
|
3
|
-
|
|
4
|
-
declare class SchemaGrammar {
|
|
5
|
-
toSql(blueprint: Blueprint): string;
|
|
6
|
-
compileCreateTable(blueprint: Blueprint): CompiledSql;
|
|
7
|
-
compileAlterTable(blueprint: Blueprint): CompiledSql;
|
|
8
|
-
compileColumn(column: Column): string;
|
|
9
|
-
escape(value: Parameter): string;
|
|
10
|
-
compilePrimaryKeys(primaryKeys: string[]): string;
|
|
11
|
-
compileTables(schema?: string | string[] | undefined): CompiledSql;
|
|
12
|
-
compileTableExists(tableName: string, schema?: string): CompiledSql;
|
|
13
|
-
compileDropTable(tableName: string): CompiledSql;
|
|
14
|
-
protected compileSchemaWhereClause(schema: string | string[] | undefined, column: string): string;
|
|
15
|
-
protected quoteString(value: string | string[]): string;
|
|
16
|
-
protected doubleQuoteString(value: string | string[]): string;
|
|
17
|
-
protected compileForeignKey(foreignKey: ForeignKeyConstraint): string;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export { SchemaGrammar };
|