@simonbackx/simple-database 1.32.0 → 1.34.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.
|
@@ -6,12 +6,25 @@ type SelectOptions = {
|
|
|
6
6
|
connection?: mysql.PoolConnection;
|
|
7
7
|
nestTables?: boolean;
|
|
8
8
|
};
|
|
9
|
-
|
|
9
|
+
export type PoolOptions = {
|
|
10
|
+
debug?: boolean;
|
|
11
|
+
host?: string;
|
|
12
|
+
user?: string;
|
|
13
|
+
password?: string;
|
|
14
|
+
port?: number;
|
|
15
|
+
database?: string | null;
|
|
16
|
+
connectionLimit?: number;
|
|
17
|
+
multipleStatements?: boolean;
|
|
18
|
+
charset?: string;
|
|
19
|
+
useSSL?: boolean;
|
|
20
|
+
ca?: string;
|
|
21
|
+
};
|
|
22
|
+
export declare class DatabaseInstance {
|
|
10
23
|
pool: mysql.Pool;
|
|
11
24
|
debug: boolean;
|
|
12
|
-
constructor(options?:
|
|
13
|
-
|
|
14
|
-
|
|
25
|
+
constructor(options?: PoolOptions);
|
|
26
|
+
createPool(options?: PoolOptions): void;
|
|
27
|
+
reload(options?: PoolOptions): Promise<void>;
|
|
15
28
|
setDebug(enabled?: boolean): void;
|
|
16
29
|
getConnection(): Promise<mysql.PoolConnection>;
|
|
17
30
|
escapeId(value: string): string;
|
|
@@ -41,5 +54,5 @@ declare class DatabaseStatic {
|
|
|
41
54
|
}, mysql.FieldPacket[] | undefined]>;
|
|
42
55
|
statement(query: string, values?: any, useConnection?: mysql.PoolConnection): Promise<[any, any]>;
|
|
43
56
|
}
|
|
44
|
-
export declare const Database:
|
|
57
|
+
export declare const Database: DatabaseInstance;
|
|
45
58
|
export {};
|
|
@@ -1,38 +1,53 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Database = void 0;
|
|
3
|
+
exports.Database = exports.DatabaseInstance = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
6
6
|
const promise_1 = tslib_1.__importDefault(require("mysql2/promise"));
|
|
7
7
|
/// Database is a wrapper arround mysql, because we want to use promises + types
|
|
8
|
-
class
|
|
8
|
+
class DatabaseInstance {
|
|
9
9
|
constructor(options = {}) {
|
|
10
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
11
10
|
this.debug = false;
|
|
12
|
-
|
|
11
|
+
this.createPool(options);
|
|
12
|
+
}
|
|
13
|
+
createPool(options = {}) {
|
|
14
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
15
|
+
const settings = {
|
|
16
|
+
host: (_b = (_a = options.host) !== null && _a !== void 0 ? _a : process.env.DB_HOST) !== null && _b !== void 0 ? _b : 'localhost',
|
|
17
|
+
user: (_d = (_c = options.user) !== null && _c !== void 0 ? _c : process.env.DB_USER) !== null && _d !== void 0 ? _d : 'root',
|
|
18
|
+
password: (_f = (_e = options.password) !== null && _e !== void 0 ? _e : process.env.DB_PASS) !== null && _f !== void 0 ? _f : 'root',
|
|
19
|
+
port: options.port ? options.port : parseInt((_g = process.env.DB_PORT) !== null && _g !== void 0 ? _g : '3306'),
|
|
20
|
+
database: options.database === undefined ? process.env.DB_DATABASE : options.database,
|
|
21
|
+
connectionLimit: options.connectionLimit ? options.connectionLimit : parseInt((_h = process.env.DB_CONNECTION_LIMIT) !== null && _h !== void 0 ? _h : '10'),
|
|
22
|
+
multipleStatements: (_j = options.multipleStatements) !== null && _j !== void 0 ? _j : (((_k = process.env.DB_MULTIPLE_STATEMENTS) !== null && _k !== void 0 ? _k : 'false') === 'true'),
|
|
23
|
+
charset: (_m = (_l = options.charset) !== null && _l !== void 0 ? _l : process.env.DB_CHARSET) !== null && _m !== void 0 ? _m : 'utf8mb4_0900_ai_ci',
|
|
24
|
+
useSSL: (_o = options.useSSL) !== null && _o !== void 0 ? _o : !!process.env.DB_USE_SSL,
|
|
25
|
+
ca: (_p = options.ca) !== null && _p !== void 0 ? _p : process.env.DB_CA,
|
|
26
|
+
};
|
|
27
|
+
if (settings.database === undefined) {
|
|
13
28
|
throw new Error('Environment variable DB_DATABASE is missing');
|
|
14
29
|
}
|
|
15
30
|
this.pool = promise_1.default.createPool({
|
|
16
|
-
host:
|
|
17
|
-
user:
|
|
18
|
-
password:
|
|
19
|
-
port:
|
|
20
|
-
database:
|
|
31
|
+
host: settings.host,
|
|
32
|
+
user: settings.user,
|
|
33
|
+
password: settings.password,
|
|
34
|
+
port: settings.port,
|
|
35
|
+
database: (_q = settings.database) !== null && _q !== void 0 ? _q : undefined,
|
|
21
36
|
waitForConnections: true,
|
|
22
|
-
connectionLimit:
|
|
37
|
+
connectionLimit: settings.connectionLimit,
|
|
23
38
|
queueLimit: 0,
|
|
24
|
-
multipleStatements:
|
|
25
|
-
charset:
|
|
39
|
+
multipleStatements: settings.multipleStatements,
|
|
40
|
+
charset: settings.charset,
|
|
26
41
|
decimalNumbers: true,
|
|
27
42
|
jsonStrings: true,
|
|
28
|
-
ssl:
|
|
43
|
+
ssl: settings.useSSL
|
|
29
44
|
? {
|
|
30
|
-
ca:
|
|
31
|
-
rejectUnauthorized:
|
|
45
|
+
ca: settings.ca ? fs_1.default.readFileSync(settings.ca) : undefined,
|
|
46
|
+
rejectUnauthorized: settings.ca ? true : false,
|
|
32
47
|
}
|
|
33
48
|
: undefined,
|
|
34
49
|
});
|
|
35
|
-
this.debug = (
|
|
50
|
+
this.debug = (_r = options === null || options === void 0 ? void 0 : options.debug) !== null && _r !== void 0 ? _r : false;
|
|
36
51
|
if (this.debug) {
|
|
37
52
|
this.pool.on('acquire', function (connection) {
|
|
38
53
|
console.log('Connection %d acquired', connection.threadId);
|
|
@@ -48,6 +63,10 @@ class DatabaseStatic {
|
|
|
48
63
|
});
|
|
49
64
|
}
|
|
50
65
|
}
|
|
66
|
+
async reload(options = {}) {
|
|
67
|
+
await this.pool.end();
|
|
68
|
+
this.createPool(options);
|
|
69
|
+
}
|
|
51
70
|
setDebug(enabled = true) {
|
|
52
71
|
this.debug = enabled;
|
|
53
72
|
}
|
|
@@ -153,5 +172,6 @@ class DatabaseStatic {
|
|
|
153
172
|
}
|
|
154
173
|
}
|
|
155
174
|
}
|
|
156
|
-
exports.
|
|
175
|
+
exports.DatabaseInstance = DatabaseInstance;
|
|
176
|
+
exports.Database = new DatabaseInstance();
|
|
157
177
|
//# sourceMappingURL=Database.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Database.js","sourceRoot":"","sources":["../../../src/classes/Database.ts"],"names":[],"mappings":";;;;AAAA,oDAAoB;AACpB,qEAAmC;
|
|
1
|
+
{"version":3,"file":"Database.js","sourceRoot":"","sources":["../../../src/classes/Database.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@simonbackx/simple-database",
|
|
3
3
|
"main": "./dist/index.js",
|
|
4
4
|
"types": "./dist/index.d.ts",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.34.0",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"test": "yarn build && jest",
|
|
8
8
|
"build": "rm -rf ./dist && tsc -p . --declaration && mkdir -p ./dist/src/migrations && cp -a ./src/migrations/*.sql ./dist/src/migrations",
|