@simonbackx/simple-database 1.36.0 → 1.36.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/_virtual/_@oxc-project_runtime@0.115.0/helpers/decorate.cjs +9 -0
- package/dist/_virtual/_@oxc-project_runtime@0.115.0/helpers/decorate.mjs +9 -0
- package/dist/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/index.cjs +22 -0
- package/dist/index.d.cts +10 -0
- package/dist/index.d.mts +10 -0
- package/dist/index.mjs +10 -0
- package/dist/src/classes/Column.cjs +134 -0
- package/dist/src/classes/Column.d.cts +34 -0
- package/dist/src/classes/Column.d.cts.map +1 -0
- package/dist/src/classes/Column.d.mts +34 -0
- package/dist/src/classes/Column.d.mts.map +1 -0
- package/dist/src/classes/Column.mjs +135 -0
- package/dist/src/classes/Column.mjs.map +1 -0
- package/dist/src/classes/ColumnType.d.cts +5 -0
- package/dist/src/classes/ColumnType.d.cts.map +1 -0
- package/dist/src/classes/ColumnType.d.mts +5 -0
- package/dist/src/classes/ColumnType.d.mts.map +1 -0
- package/dist/src/classes/Database.cjs +157 -0
- package/dist/src/classes/Database.d.cts +59 -0
- package/dist/src/classes/Database.d.cts.map +1 -0
- package/dist/src/classes/Database.d.mts +59 -0
- package/dist/src/classes/Database.d.mts.map +1 -0
- package/dist/src/classes/Database.mjs +155 -0
- package/dist/src/classes/Database.mjs.map +1 -0
- package/dist/src/classes/DatabaseStoredValue.d.cts +5 -0
- package/dist/src/classes/DatabaseStoredValue.d.cts.map +1 -0
- package/dist/src/classes/DatabaseStoredValue.d.mts +5 -0
- package/dist/src/classes/DatabaseStoredValue.d.mts.map +1 -0
- package/dist/src/classes/Factory.cjs +48 -0
- package/dist/src/classes/Factory.d.cts +17 -0
- package/dist/src/classes/Factory.d.cts.map +1 -0
- package/dist/src/classes/Factory.d.mts +17 -0
- package/dist/src/classes/Factory.d.mts.map +1 -0
- package/dist/src/classes/Factory.mjs +50 -0
- package/dist/src/classes/Factory.mjs.map +1 -0
- package/dist/src/classes/ManyToManyRelation.cjs +193 -0
- package/dist/src/classes/ManyToManyRelation.d.cts +83 -0
- package/dist/src/classes/ManyToManyRelation.d.cts.map +1 -0
- package/dist/src/classes/ManyToManyRelation.d.mts +83 -0
- package/dist/src/classes/ManyToManyRelation.d.mts.map +1 -0
- package/dist/src/classes/ManyToManyRelation.mjs +195 -0
- package/dist/src/classes/ManyToManyRelation.mjs.map +1 -0
- package/dist/src/classes/ManyToOneRelation.cjs +41 -0
- package/dist/src/classes/ManyToOneRelation.d.cts +26 -0
- package/dist/src/classes/ManyToOneRelation.d.cts.map +1 -0
- package/dist/src/classes/ManyToOneRelation.d.mts +26 -0
- package/dist/src/classes/ManyToOneRelation.d.mts.map +1 -0
- package/dist/src/classes/ManyToOneRelation.mjs +43 -0
- package/dist/src/classes/ManyToOneRelation.mjs.map +1 -0
- package/dist/src/classes/Migration.cjs +116 -0
- package/dist/src/classes/Migration.d.cts +16 -0
- package/dist/src/classes/Migration.d.cts.map +1 -0
- package/dist/src/classes/Migration.d.mts +16 -0
- package/dist/src/classes/Migration.d.mts.map +1 -0
- package/dist/src/classes/Migration.mjs +116 -0
- package/dist/src/classes/Migration.mjs.map +1 -0
- package/dist/src/classes/Model.cjs +459 -0
- package/dist/src/classes/Model.d.cts +162 -0
- package/dist/src/classes/Model.d.cts.map +1 -0
- package/dist/src/classes/Model.d.mts +162 -0
- package/dist/src/classes/Model.d.mts.map +1 -0
- package/dist/src/classes/Model.mjs +460 -0
- package/dist/src/classes/Model.mjs.map +1 -0
- package/dist/src/classes/OneToManyRelation.cjs +66 -0
- package/dist/src/classes/OneToManyRelation.d.cts +42 -0
- package/dist/src/classes/OneToManyRelation.d.cts.map +1 -0
- package/dist/src/classes/OneToManyRelation.d.mts +42 -0
- package/dist/src/classes/OneToManyRelation.d.mts.map +1 -0
- package/dist/src/classes/OneToManyRelation.mjs +68 -0
- package/dist/src/classes/OneToManyRelation.mjs.map +1 -0
- package/dist/src/classes/data/boys.cjs +1005 -0
- package/dist/src/classes/data/boys.mjs +1007 -0
- package/dist/src/classes/data/boys.mjs.map +1 -0
- package/dist/src/classes/data/family-names.cjs +1005 -0
- package/dist/src/classes/data/family-names.mjs +1007 -0
- package/dist/src/classes/data/family-names.mjs.map +1 -0
- package/dist/src/classes/data/girls.cjs +1004 -0
- package/dist/src/classes/data/girls.mjs +1006 -0
- package/dist/src/classes/data/girls.mjs.map +1 -0
- package/dist/src/decorators/Column.cjs +26 -0
- package/dist/src/decorators/Column.d.cts +22 -0
- package/dist/src/decorators/Column.d.cts.map +1 -0
- package/dist/src/decorators/Column.d.mts +22 -0
- package/dist/src/decorators/Column.d.mts.map +1 -0
- package/dist/src/decorators/Column.mjs +28 -0
- package/dist/src/decorators/Column.mjs.map +1 -0
- package/dist/src/models/Migration.cjs +37 -0
- package/dist/src/models/Migration.mjs +39 -0
- package/dist/src/models/Migration.mjs.map +1 -0
- package/package.json +27 -14
- package/dist/cjs/index.d.ts +0 -10
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -13
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/src/classes/Column.d.ts +0 -30
- package/dist/cjs/src/classes/Column.d.ts.map +0 -1
- package/dist/cjs/src/classes/Column.js +0 -183
- package/dist/cjs/src/classes/Column.js.map +0 -1
- package/dist/cjs/src/classes/ColumnType.d.ts +0 -2
- package/dist/cjs/src/classes/ColumnType.d.ts.map +0 -1
- package/dist/cjs/src/classes/ColumnType.js +0 -3
- package/dist/cjs/src/classes/ColumnType.js.map +0 -1
- package/dist/cjs/src/classes/Database.d.ts +0 -59
- package/dist/cjs/src/classes/Database.d.ts.map +0 -1
- package/dist/cjs/src/classes/Database.js +0 -176
- package/dist/cjs/src/classes/Database.js.map +0 -1
- package/dist/cjs/src/classes/DatabaseStoredValue.d.ts +0 -2
- package/dist/cjs/src/classes/DatabaseStoredValue.d.ts.map +0 -1
- package/dist/cjs/src/classes/DatabaseStoredValue.js +0 -3
- package/dist/cjs/src/classes/DatabaseStoredValue.js.map +0 -1
- package/dist/cjs/src/classes/Factory.d.ts +0 -14
- package/dist/cjs/src/classes/Factory.d.ts.map +0 -1
- package/dist/cjs/src/classes/Factory.js +0 -56
- package/dist/cjs/src/classes/Factory.js.map +0 -1
- package/dist/cjs/src/classes/ManyToManyRelation.d.ts +0 -79
- package/dist/cjs/src/classes/ManyToManyRelation.d.ts.map +0 -1
- package/dist/cjs/src/classes/ManyToManyRelation.js +0 -258
- package/dist/cjs/src/classes/ManyToManyRelation.js.map +0 -1
- package/dist/cjs/src/classes/ManyToOneRelation.d.ts +0 -22
- package/dist/cjs/src/classes/ManyToOneRelation.d.ts.map +0 -1
- package/dist/cjs/src/classes/ManyToOneRelation.js +0 -51
- package/dist/cjs/src/classes/ManyToOneRelation.js.map +0 -1
- package/dist/cjs/src/classes/Migration.d.ts +0 -14
- package/dist/cjs/src/classes/Migration.d.ts.map +0 -1
- package/dist/cjs/src/classes/Migration.js +0 -206
- package/dist/cjs/src/classes/Migration.js.map +0 -1
- package/dist/cjs/src/classes/Model.d.ts +0 -159
- package/dist/cjs/src/classes/Model.d.ts.map +0 -1
- package/dist/cjs/src/classes/Model.js +0 -640
- package/dist/cjs/src/classes/Model.js.map +0 -1
- package/dist/cjs/src/classes/OneToManyRelation.d.ts +0 -38
- package/dist/cjs/src/classes/OneToManyRelation.d.ts.map +0 -1
- package/dist/cjs/src/classes/OneToManyRelation.js +0 -79
- package/dist/cjs/src/classes/OneToManyRelation.js.map +0 -1
- package/dist/cjs/src/classes/data/boys.d.ts +0 -3
- package/dist/cjs/src/classes/data/boys.d.ts.map +0 -1
- package/dist/cjs/src/classes/data/boys.js +0 -1005
- package/dist/cjs/src/classes/data/boys.js.map +0 -1
- package/dist/cjs/src/classes/data/family-names.d.ts +0 -3
- package/dist/cjs/src/classes/data/family-names.d.ts.map +0 -1
- package/dist/cjs/src/classes/data/family-names.js +0 -1005
- package/dist/cjs/src/classes/data/family-names.js.map +0 -1
- package/dist/cjs/src/classes/data/girls.d.ts +0 -3
- package/dist/cjs/src/classes/data/girls.d.ts.map +0 -1
- package/dist/cjs/src/classes/data/girls.js +0 -1004
- package/dist/cjs/src/classes/data/girls.js.map +0 -1
- package/dist/cjs/src/classes/data/streets.d.ts +0 -3
- package/dist/cjs/src/classes/data/streets.d.ts.map +0 -1
- package/dist/cjs/src/classes/data/streets.js +0 -296
- package/dist/cjs/src/classes/data/streets.js.map +0 -1
- package/dist/cjs/src/decorators/Column.d.ts +0 -18
- package/dist/cjs/src/decorators/Column.d.ts.map +0 -1
- package/dist/cjs/src/decorators/Column.js +0 -39
- package/dist/cjs/src/decorators/Column.js.map +0 -1
- package/dist/cjs/src/models/Migration.d.ts +0 -11
- package/dist/cjs/src/models/Migration.d.ts.map +0 -1
- package/dist/cjs/src/models/Migration.js +0 -52
- package/dist/cjs/src/models/Migration.js.map +0 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +0 -1
- package/dist/esm/index.d.ts +0 -10
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js +0 -10
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/src/classes/Column.d.ts +0 -30
- package/dist/esm/src/classes/Column.d.ts.map +0 -1
- package/dist/esm/src/classes/Column.js +0 -179
- package/dist/esm/src/classes/Column.js.map +0 -1
- package/dist/esm/src/classes/ColumnType.d.ts +0 -2
- package/dist/esm/src/classes/ColumnType.d.ts.map +0 -1
- package/dist/esm/src/classes/ColumnType.js +0 -2
- package/dist/esm/src/classes/ColumnType.js.map +0 -1
- package/dist/esm/src/classes/Database.d.ts +0 -59
- package/dist/esm/src/classes/Database.d.ts.map +0 -1
- package/dist/esm/src/classes/Database.js +0 -171
- package/dist/esm/src/classes/Database.js.map +0 -1
- package/dist/esm/src/classes/DatabaseStoredValue.d.ts +0 -2
- package/dist/esm/src/classes/DatabaseStoredValue.d.ts.map +0 -1
- package/dist/esm/src/classes/DatabaseStoredValue.js +0 -2
- package/dist/esm/src/classes/DatabaseStoredValue.js.map +0 -1
- package/dist/esm/src/classes/Factory.d.ts +0 -14
- package/dist/esm/src/classes/Factory.d.ts.map +0 -1
- package/dist/esm/src/classes/Factory.js +0 -51
- package/dist/esm/src/classes/Factory.js.map +0 -1
- package/dist/esm/src/classes/ManyToManyRelation.d.ts +0 -79
- package/dist/esm/src/classes/ManyToManyRelation.d.ts.map +0 -1
- package/dist/esm/src/classes/ManyToManyRelation.js +0 -254
- package/dist/esm/src/classes/ManyToManyRelation.js.map +0 -1
- package/dist/esm/src/classes/ManyToOneRelation.d.ts +0 -22
- package/dist/esm/src/classes/ManyToOneRelation.d.ts.map +0 -1
- package/dist/esm/src/classes/ManyToOneRelation.js +0 -47
- package/dist/esm/src/classes/ManyToOneRelation.js.map +0 -1
- package/dist/esm/src/classes/Migration.d.ts +0 -14
- package/dist/esm/src/classes/Migration.d.ts.map +0 -1
- package/dist/esm/src/classes/Migration.js +0 -168
- package/dist/esm/src/classes/Migration.js.map +0 -1
- package/dist/esm/src/classes/Model.d.ts +0 -159
- package/dist/esm/src/classes/Model.d.ts.map +0 -1
- package/dist/esm/src/classes/Model.js +0 -635
- package/dist/esm/src/classes/Model.js.map +0 -1
- package/dist/esm/src/classes/OneToManyRelation.d.ts +0 -38
- package/dist/esm/src/classes/OneToManyRelation.d.ts.map +0 -1
- package/dist/esm/src/classes/OneToManyRelation.js +0 -75
- package/dist/esm/src/classes/OneToManyRelation.js.map +0 -1
- package/dist/esm/src/classes/data/boys.d.ts +0 -3
- package/dist/esm/src/classes/data/boys.d.ts.map +0 -1
- package/dist/esm/src/classes/data/boys.js +0 -1003
- package/dist/esm/src/classes/data/boys.js.map +0 -1
- package/dist/esm/src/classes/data/family-names.d.ts +0 -3
- package/dist/esm/src/classes/data/family-names.d.ts.map +0 -1
- package/dist/esm/src/classes/data/family-names.js +0 -1003
- package/dist/esm/src/classes/data/family-names.js.map +0 -1
- package/dist/esm/src/classes/data/girls.d.ts +0 -3
- package/dist/esm/src/classes/data/girls.d.ts.map +0 -1
- package/dist/esm/src/classes/data/girls.js +0 -1002
- package/dist/esm/src/classes/data/girls.js.map +0 -1
- package/dist/esm/src/classes/data/streets.d.ts +0 -3
- package/dist/esm/src/classes/data/streets.d.ts.map +0 -1
- package/dist/esm/src/classes/data/streets.js +0 -294
- package/dist/esm/src/classes/data/streets.js.map +0 -1
- package/dist/esm/src/decorators/Column.d.ts +0 -18
- package/dist/esm/src/decorators/Column.d.ts.map +0 -1
- package/dist/esm/src/decorators/Column.js +0 -36
- package/dist/esm/src/decorators/Column.js.map +0 -1
- package/dist/esm/src/models/Migration.d.ts +0 -11
- package/dist/esm/src/models/Migration.d.ts.map +0 -1
- package/dist/esm/src/models/Migration.js +0 -48
- package/dist/esm/src/models/Migration.js.map +0 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +0 -1
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { DatabaseStoredValue } from "./DatabaseStoredValue.cjs";
|
|
2
|
+
import mysql from "mysql2/promise";
|
|
3
|
+
|
|
4
|
+
//#region src/classes/Database.d.ts
|
|
5
|
+
type SQLResultRow = Record<string, DatabaseStoredValue>;
|
|
6
|
+
type SQLResultNamespacedRow = Record<string, SQLResultRow>;
|
|
7
|
+
type SelectOptions = {
|
|
8
|
+
connection?: mysql.PoolConnection;
|
|
9
|
+
nestTables?: boolean;
|
|
10
|
+
};
|
|
11
|
+
type PoolOptions = {
|
|
12
|
+
debug?: boolean;
|
|
13
|
+
host?: string;
|
|
14
|
+
user?: string;
|
|
15
|
+
password?: string;
|
|
16
|
+
port?: number;
|
|
17
|
+
database?: string | null;
|
|
18
|
+
connectionLimit?: number;
|
|
19
|
+
multipleStatements?: boolean;
|
|
20
|
+
charset?: string;
|
|
21
|
+
useSSL?: boolean;
|
|
22
|
+
ca?: string;
|
|
23
|
+
};
|
|
24
|
+
declare class DatabaseInstance {
|
|
25
|
+
pool: mysql.Pool;
|
|
26
|
+
debug: boolean;
|
|
27
|
+
constructor(options?: PoolOptions);
|
|
28
|
+
createPool(options?: PoolOptions): void;
|
|
29
|
+
reload(options?: PoolOptions): Promise<void>;
|
|
30
|
+
setDebug(enabled?: boolean): void;
|
|
31
|
+
getConnection(): Promise<mysql.PoolConnection>;
|
|
32
|
+
escapeId(value: string): string;
|
|
33
|
+
end(): Promise<void>;
|
|
34
|
+
startQuery(): [number, number];
|
|
35
|
+
logQuery(q: any, hrstart: [number, number]): void;
|
|
36
|
+
finishQuery(q: any, hrstart: [number, number]): void;
|
|
37
|
+
select(query: string, values?: any, options?: SelectOptions & {
|
|
38
|
+
nestTables: true;
|
|
39
|
+
}): Promise<[SQLResultNamespacedRow[], mysql.FieldPacket[] | undefined]>;
|
|
40
|
+
select(query: string, values?: any, options?: SelectOptions & {
|
|
41
|
+
nestTables: false;
|
|
42
|
+
}): Promise<[SQLResultRow[], mysql.FieldPacket[] | undefined]>;
|
|
43
|
+
insert(query: string, values?: any, useConnection?: mysql.PoolConnection): Promise<[{
|
|
44
|
+
insertId: any;
|
|
45
|
+
affectedRows: number;
|
|
46
|
+
}, mysql.FieldPacket[] | undefined]>;
|
|
47
|
+
update(query: string, values?: any, useConnection?: mysql.PoolConnection): Promise<[{
|
|
48
|
+
changedRows: number;
|
|
49
|
+
affectedRows: number;
|
|
50
|
+
}, mysql.FieldPacket[] | undefined]>;
|
|
51
|
+
delete(query: string, values?: any, useConnection?: mysql.PoolConnection): Promise<[{
|
|
52
|
+
affectedRows: number;
|
|
53
|
+
}, mysql.FieldPacket[] | undefined]>;
|
|
54
|
+
statement(query: string, values?: any, useConnection?: mysql.PoolConnection): Promise<[any, any]>;
|
|
55
|
+
}
|
|
56
|
+
declare const Database: DatabaseInstance;
|
|
57
|
+
//#endregion
|
|
58
|
+
export { Database, DatabaseInstance, PoolOptions, SQLResultNamespacedRow, SQLResultRow };
|
|
59
|
+
//# sourceMappingURL=Database.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Database.d.cts","names":[],"sources":["../../../src/classes/Database.ts"],"mappings":";;;;KAGY,YAAA,GAAe,MAAA,SAAe,mBAAA;AAAA,KAC9B,sBAAA,GAAyB,MAAA,SAAe,YAAA;AAAA,KAE/C,aAAA;EAAkB,UAAA,GAAa,KAAA,CAAM,cAAA;EAAgB,UAAA;AAAA;AAAA,KAC9C,WAAA;EACR,KAAA;EACA,IAAA;EACA,IAAA;EACA,QAAA;EACA,IAAA;EACA,QAAA;EACA,eAAA;EACA,kBAAA;EACA,OAAA;EACA,MAAA;EACA,EAAA;AAAA;AAAA,cAIS,gBAAA;EACT,IAAA,EAAM,KAAA,CAAM,IAAA;EACZ,KAAA;cAEY,OAAA,GAAS,WAAA;EAIrB,UAAA,CAAW,OAAA,GAAS,WAAA;EA2Dd,MAAA,CAAO,OAAA,GAAS,WAAA,GAAmB,OAAA;EAKzC,QAAA,CAAS,OAAA;EAIH,aAAA,CAAA,GAAiB,OAAA,CAAQ,KAAA,CAAM,cAAA;EAKrC,QAAA,CAAS,KAAA;EAIH,GAAA,CAAA,GAAO,OAAA;EAIb,UAAA,CAAA;EAIA,QAAA,CAAS,CAAA,OAAG,OAAA;EAOZ,WAAA,CAAY,CAAA,OAAG,OAAA;EAOf,MAAA,CAAO,KAAA,UAAe,MAAA,QAAc,OAAA,GAAU,aAAA;IAAkB,UAAA;EAAA,IAAqB,OAAA,EAAS,sBAAA,IAA0B,KAAA,CAAM,WAAA;EAC9H,MAAA,CAAO,KAAA,UAAe,MAAA,QAAc,OAAA,GAAU,aAAA;IAAkB,UAAA;EAAA,IAAsB,OAAA,EAAS,YAAA,IAAgB,KAAA,CAAM,WAAA;EAiB/G,MAAA,CACF,KAAA,UACA,MAAA,QACA,aAAA,GAAgB,KAAA,CAAM,cAAA,GACvB,OAAA;IAAW,QAAA;IAAe,YAAA;EAAA,GAAwB,KAAA,CAAM,WAAA;EAgBrD,MAAA,CAAO,KAAA,UAAe,MAAA,QAAc,aAAA,GAAgB,KAAA,CAAM,cAAA,GAAiB,OAAA;IACxD,WAAA;IAAqB,YAAA;EAAA,GACxC,KAAA,CAAM,WAAA;EAgBN,MAAA,CAAO,KAAA,UAAe,MAAA,QAAc,aAAA,GAAgB,KAAA,CAAM,cAAA,GAAiB,OAAA;IAAW,YAAA;EAAA,GAAwB,KAAA,CAAM,WAAA;EAgBpH,SAAA,CAAU,KAAA,UAAe,MAAA,QAAc,aAAA,GAAgB,KAAA,CAAM,cAAA,GAAiB,OAAA;AAAA;AAAA,cAiB3E,QAAA,EAAQ,gBAAA"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { DatabaseStoredValue } from "./DatabaseStoredValue.mjs";
|
|
2
|
+
import mysql from "mysql2/promise";
|
|
3
|
+
|
|
4
|
+
//#region src/classes/Database.d.ts
|
|
5
|
+
type SQLResultRow = Record<string, DatabaseStoredValue>;
|
|
6
|
+
type SQLResultNamespacedRow = Record<string, SQLResultRow>;
|
|
7
|
+
type SelectOptions = {
|
|
8
|
+
connection?: mysql.PoolConnection;
|
|
9
|
+
nestTables?: boolean;
|
|
10
|
+
};
|
|
11
|
+
type PoolOptions = {
|
|
12
|
+
debug?: boolean;
|
|
13
|
+
host?: string;
|
|
14
|
+
user?: string;
|
|
15
|
+
password?: string;
|
|
16
|
+
port?: number;
|
|
17
|
+
database?: string | null;
|
|
18
|
+
connectionLimit?: number;
|
|
19
|
+
multipleStatements?: boolean;
|
|
20
|
+
charset?: string;
|
|
21
|
+
useSSL?: boolean;
|
|
22
|
+
ca?: string;
|
|
23
|
+
};
|
|
24
|
+
declare class DatabaseInstance {
|
|
25
|
+
pool: mysql.Pool;
|
|
26
|
+
debug: boolean;
|
|
27
|
+
constructor(options?: PoolOptions);
|
|
28
|
+
createPool(options?: PoolOptions): void;
|
|
29
|
+
reload(options?: PoolOptions): Promise<void>;
|
|
30
|
+
setDebug(enabled?: boolean): void;
|
|
31
|
+
getConnection(): Promise<mysql.PoolConnection>;
|
|
32
|
+
escapeId(value: string): string;
|
|
33
|
+
end(): Promise<void>;
|
|
34
|
+
startQuery(): [number, number];
|
|
35
|
+
logQuery(q: any, hrstart: [number, number]): void;
|
|
36
|
+
finishQuery(q: any, hrstart: [number, number]): void;
|
|
37
|
+
select(query: string, values?: any, options?: SelectOptions & {
|
|
38
|
+
nestTables: true;
|
|
39
|
+
}): Promise<[SQLResultNamespacedRow[], mysql.FieldPacket[] | undefined]>;
|
|
40
|
+
select(query: string, values?: any, options?: SelectOptions & {
|
|
41
|
+
nestTables: false;
|
|
42
|
+
}): Promise<[SQLResultRow[], mysql.FieldPacket[] | undefined]>;
|
|
43
|
+
insert(query: string, values?: any, useConnection?: mysql.PoolConnection): Promise<[{
|
|
44
|
+
insertId: any;
|
|
45
|
+
affectedRows: number;
|
|
46
|
+
}, mysql.FieldPacket[] | undefined]>;
|
|
47
|
+
update(query: string, values?: any, useConnection?: mysql.PoolConnection): Promise<[{
|
|
48
|
+
changedRows: number;
|
|
49
|
+
affectedRows: number;
|
|
50
|
+
}, mysql.FieldPacket[] | undefined]>;
|
|
51
|
+
delete(query: string, values?: any, useConnection?: mysql.PoolConnection): Promise<[{
|
|
52
|
+
affectedRows: number;
|
|
53
|
+
}, mysql.FieldPacket[] | undefined]>;
|
|
54
|
+
statement(query: string, values?: any, useConnection?: mysql.PoolConnection): Promise<[any, any]>;
|
|
55
|
+
}
|
|
56
|
+
declare const Database: DatabaseInstance;
|
|
57
|
+
//#endregion
|
|
58
|
+
export { Database, DatabaseInstance, PoolOptions, SQLResultNamespacedRow, SQLResultRow };
|
|
59
|
+
//# sourceMappingURL=Database.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Database.d.mts","names":[],"sources":["../../../src/classes/Database.ts"],"mappings":";;;;KAGY,YAAA,GAAe,MAAA,SAAe,mBAAA;AAAA,KAC9B,sBAAA,GAAyB,MAAA,SAAe,YAAA;AAAA,KAE/C,aAAA;EAAkB,UAAA,GAAa,KAAA,CAAM,cAAA;EAAgB,UAAA;AAAA;AAAA,KAC9C,WAAA;EACR,KAAA;EACA,IAAA;EACA,IAAA;EACA,QAAA;EACA,IAAA;EACA,QAAA;EACA,eAAA;EACA,kBAAA;EACA,OAAA;EACA,MAAA;EACA,EAAA;AAAA;AAAA,cAIS,gBAAA;EACT,IAAA,EAAM,KAAA,CAAM,IAAA;EACZ,KAAA;cAEY,OAAA,GAAS,WAAA;EAIrB,UAAA,CAAW,OAAA,GAAS,WAAA;EA2Dd,MAAA,CAAO,OAAA,GAAS,WAAA,GAAmB,OAAA;EAKzC,QAAA,CAAS,OAAA;EAIH,aAAA,CAAA,GAAiB,OAAA,CAAQ,KAAA,CAAM,cAAA;EAKrC,QAAA,CAAS,KAAA;EAIH,GAAA,CAAA,GAAO,OAAA;EAIb,UAAA,CAAA;EAIA,QAAA,CAAS,CAAA,OAAG,OAAA;EAOZ,WAAA,CAAY,CAAA,OAAG,OAAA;EAOf,MAAA,CAAO,KAAA,UAAe,MAAA,QAAc,OAAA,GAAU,aAAA;IAAkB,UAAA;EAAA,IAAqB,OAAA,EAAS,sBAAA,IAA0B,KAAA,CAAM,WAAA;EAC9H,MAAA,CAAO,KAAA,UAAe,MAAA,QAAc,OAAA,GAAU,aAAA;IAAkB,UAAA;EAAA,IAAsB,OAAA,EAAS,YAAA,IAAgB,KAAA,CAAM,WAAA;EAiB/G,MAAA,CACF,KAAA,UACA,MAAA,QACA,aAAA,GAAgB,KAAA,CAAM,cAAA,GACvB,OAAA;IAAW,QAAA;IAAe,YAAA;EAAA,GAAwB,KAAA,CAAM,WAAA;EAgBrD,MAAA,CAAO,KAAA,UAAe,MAAA,QAAc,aAAA,GAAgB,KAAA,CAAM,cAAA,GAAiB,OAAA;IACxD,WAAA;IAAqB,YAAA;EAAA,GACxC,KAAA,CAAM,WAAA;EAgBN,MAAA,CAAO,KAAA,UAAe,MAAA,QAAc,aAAA,GAAgB,KAAA,CAAM,cAAA,GAAiB,OAAA;IAAW,YAAA;EAAA,GAAwB,KAAA,CAAM,WAAA;EAgBpH,SAAA,CAAU,KAAA,UAAe,MAAA,QAAc,aAAA,GAAgB,KAAA,CAAM,cAAA,GAAiB,OAAA;AAAA;AAAA,cAiB3E,QAAA,EAAQ,gBAAA"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import mysql from "mysql2/promise";
|
|
3
|
+
//#region src/classes/Database.ts
|
|
4
|
+
var DatabaseInstance = class {
|
|
5
|
+
pool;
|
|
6
|
+
debug = false;
|
|
7
|
+
constructor(options = {}) {
|
|
8
|
+
this.createPool(options);
|
|
9
|
+
}
|
|
10
|
+
createPool(options = {}) {
|
|
11
|
+
const settings = {
|
|
12
|
+
host: options.host ?? process.env.DB_HOST ?? "localhost",
|
|
13
|
+
user: options.user ?? process.env.DB_USER ?? "root",
|
|
14
|
+
password: options.password ?? process.env.DB_PASS ?? "root",
|
|
15
|
+
port: options.port ? options.port : parseInt(process.env.DB_PORT ?? "3306"),
|
|
16
|
+
database: options.database === void 0 ? process.env.DB_DATABASE : options.database,
|
|
17
|
+
connectionLimit: options.connectionLimit ? options.connectionLimit : parseInt(process.env.DB_CONNECTION_LIMIT ?? "10"),
|
|
18
|
+
multipleStatements: options.multipleStatements ?? (process.env.DB_MULTIPLE_STATEMENTS ?? "true") === "true",
|
|
19
|
+
charset: options.charset ?? process.env.DB_CHARSET ?? "utf8mb4_0900_ai_ci",
|
|
20
|
+
useSSL: options.useSSL ?? !!process.env.DB_USE_SSL,
|
|
21
|
+
ca: options.ca ?? process.env.DB_CA
|
|
22
|
+
};
|
|
23
|
+
if (settings.database === void 0) throw new Error("Environment variable DB_DATABASE is missing");
|
|
24
|
+
this.pool = mysql.createPool({
|
|
25
|
+
host: settings.host,
|
|
26
|
+
user: settings.user,
|
|
27
|
+
password: settings.password,
|
|
28
|
+
port: settings.port,
|
|
29
|
+
database: settings.database ?? void 0,
|
|
30
|
+
waitForConnections: true,
|
|
31
|
+
connectionLimit: settings.connectionLimit,
|
|
32
|
+
queueLimit: 0,
|
|
33
|
+
multipleStatements: settings.multipleStatements,
|
|
34
|
+
charset: settings.charset,
|
|
35
|
+
decimalNumbers: true,
|
|
36
|
+
jsonStrings: true,
|
|
37
|
+
ssl: settings.useSSL ? {
|
|
38
|
+
ca: settings.ca ? fs.readFileSync(settings.ca) : void 0,
|
|
39
|
+
rejectUnauthorized: settings.ca ? true : false
|
|
40
|
+
} : void 0
|
|
41
|
+
});
|
|
42
|
+
this.debug = options?.debug ?? false;
|
|
43
|
+
if (this.debug) {
|
|
44
|
+
this.pool.on("acquire", function(connection) {
|
|
45
|
+
console.log("Connection %d acquired", connection.threadId);
|
|
46
|
+
});
|
|
47
|
+
this.pool.on("connection", function(connection) {
|
|
48
|
+
console.log("Connection %d created", connection.threadId);
|
|
49
|
+
});
|
|
50
|
+
this.pool.on("enqueue", function() {
|
|
51
|
+
console.log("Waiting for available connection slot");
|
|
52
|
+
});
|
|
53
|
+
this.pool.on("release", function(connection) {
|
|
54
|
+
console.log("Connection %d released", connection.threadId);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async reload(options = {}) {
|
|
59
|
+
await this.pool.end();
|
|
60
|
+
this.createPool(options);
|
|
61
|
+
}
|
|
62
|
+
setDebug(enabled = true) {
|
|
63
|
+
this.debug = enabled;
|
|
64
|
+
}
|
|
65
|
+
async getConnection() {
|
|
66
|
+
return await this.pool.getConnection();
|
|
67
|
+
}
|
|
68
|
+
escapeId(value) {
|
|
69
|
+
return this.pool.escapeId(value);
|
|
70
|
+
}
|
|
71
|
+
async end() {
|
|
72
|
+
return await this.pool.end();
|
|
73
|
+
}
|
|
74
|
+
startQuery() {
|
|
75
|
+
return process.hrtime();
|
|
76
|
+
}
|
|
77
|
+
logQuery(q, hrstart) {
|
|
78
|
+
if (this.debug) {
|
|
79
|
+
const hrend = process.hrtime(hrstart);
|
|
80
|
+
console.warn(q.sql.replace(/\n+ +/g, "\n"), "started at " + (hrend[0] * 1e3 + hrend[1] / 1e6) + "ms");
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
finishQuery(q, hrstart) {
|
|
84
|
+
if (this.debug) {
|
|
85
|
+
const hrend = process.hrtime(hrstart);
|
|
86
|
+
console.log(q.sql.replace(/\s+/g, " "), "in " + (hrend[0] * 1e3 + hrend[1] / 1e6) + "ms");
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
async select(query, values, options = {}) {
|
|
90
|
+
const connection = options.connection ?? await this.getConnection();
|
|
91
|
+
try {
|
|
92
|
+
const q = await connection.query({
|
|
93
|
+
sql: query,
|
|
94
|
+
nestTables: options.nestTables ?? true,
|
|
95
|
+
values
|
|
96
|
+
});
|
|
97
|
+
return [q[0], q[1]];
|
|
98
|
+
} finally {
|
|
99
|
+
if (!options.connection) connection.release();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
async insert(query, values, useConnection) {
|
|
103
|
+
const connection = useConnection ?? await this.getConnection();
|
|
104
|
+
try {
|
|
105
|
+
const q = await connection.query({
|
|
106
|
+
sql: query,
|
|
107
|
+
values
|
|
108
|
+
});
|
|
109
|
+
return [q[0], q[1]];
|
|
110
|
+
} finally {
|
|
111
|
+
if (!useConnection) connection.release();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
async update(query, values, useConnection) {
|
|
115
|
+
const connection = useConnection ?? await this.getConnection();
|
|
116
|
+
try {
|
|
117
|
+
const q = await connection.query({
|
|
118
|
+
sql: query,
|
|
119
|
+
values
|
|
120
|
+
});
|
|
121
|
+
return [q[0], q[1]];
|
|
122
|
+
} finally {
|
|
123
|
+
if (!useConnection) connection.release();
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
async delete(query, values, useConnection) {
|
|
127
|
+
const connection = useConnection ?? await this.getConnection();
|
|
128
|
+
try {
|
|
129
|
+
const q = await connection.query({
|
|
130
|
+
sql: query,
|
|
131
|
+
values
|
|
132
|
+
});
|
|
133
|
+
return [q[0], q[1]];
|
|
134
|
+
} finally {
|
|
135
|
+
if (!useConnection) connection.release();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
async statement(query, values, useConnection) {
|
|
139
|
+
const connection = useConnection ?? await this.getConnection();
|
|
140
|
+
try {
|
|
141
|
+
const q = await connection.query({
|
|
142
|
+
sql: query,
|
|
143
|
+
values
|
|
144
|
+
});
|
|
145
|
+
return [q[0], q[1]];
|
|
146
|
+
} finally {
|
|
147
|
+
if (!useConnection) connection.release();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
const Database = new DatabaseInstance();
|
|
152
|
+
//#endregion
|
|
153
|
+
export { Database, DatabaseInstance };
|
|
154
|
+
|
|
155
|
+
//# sourceMappingURL=Database.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Database.mjs","names":[],"sources":["../../../src/classes/Database.ts"],"sourcesContent":["import fs from 'fs';\nimport mysql from 'mysql2/promise';\nimport { type DatabaseStoredValue } from './DatabaseStoredValue.js';\nexport type SQLResultRow = Record<string, DatabaseStoredValue>;\nexport type SQLResultNamespacedRow = Record<string, SQLResultRow>;\n\ntype SelectOptions = { connection?: mysql.PoolConnection; nestTables?: boolean };\nexport type PoolOptions = {\n debug?: boolean;\n host?: string;\n user?: string;\n password?: string;\n port?: number;\n database?: string | null; // set to null to not use a default database\n connectionLimit?: number;\n multipleStatements?: boolean;\n charset?: string;\n useSSL?: boolean;\n ca?: string;\n};\n\n/// Database is a wrapper arround mysql, because we want to use promises + types\nexport class DatabaseInstance {\n pool: mysql.Pool;\n debug = false;\n\n constructor(options: PoolOptions = {}) {\n this.createPool(options);\n }\n\n createPool(options: PoolOptions = {}) {\n const settings = {\n host: options.host ?? process.env.DB_HOST ?? 'localhost',\n user: options.user ?? process.env.DB_USER ?? 'root',\n password: options.password ?? process.env.DB_PASS ?? 'root',\n port: options.port ? options.port : parseInt(process.env.DB_PORT ?? '3306'),\n database: options.database === undefined ? process.env.DB_DATABASE : options.database,\n connectionLimit: options.connectionLimit ? options.connectionLimit : parseInt(process.env.DB_CONNECTION_LIMIT ?? '10'),\n multipleStatements: options.multipleStatements ?? ((process.env.DB_MULTIPLE_STATEMENTS ?? 'true') === 'true'),\n charset: options.charset ?? process.env.DB_CHARSET ?? 'utf8mb4_0900_ai_ci',\n useSSL: options.useSSL ?? !!process.env.DB_USE_SSL,\n ca: options.ca ?? process.env.DB_CA,\n };\n\n if (settings.database === undefined) {\n throw new Error('Environment variable DB_DATABASE is missing');\n }\n\n this.pool = mysql.createPool({\n host: settings.host,\n user: settings.user,\n password: settings.password,\n port: settings.port,\n database: settings.database ?? undefined,\n waitForConnections: true,\n connectionLimit: settings.connectionLimit,\n queueLimit: 0,\n multipleStatements: settings.multipleStatements,\n charset: settings.charset,\n decimalNumbers: true,\n jsonStrings: true,\n ssl: settings.useSSL\n ? {\n ca: settings.ca ? fs.readFileSync(settings.ca) : undefined,\n rejectUnauthorized: settings.ca ? true : false,\n }\n : undefined,\n });\n this.debug = options?.debug ?? false;\n\n if (this.debug) {\n this.pool.on('acquire', function (connection) {\n console.log('Connection %d acquired', connection.threadId);\n });\n\n this.pool.on('connection', function (connection) {\n console.log('Connection %d created', connection.threadId);\n });\n\n this.pool.on('enqueue', function () {\n console.log('Waiting for available connection slot');\n });\n\n this.pool.on('release', function (connection) {\n console.log('Connection %d released', connection.threadId);\n });\n }\n }\n\n async reload(options: PoolOptions = {}): Promise<void> {\n await this.pool.end();\n this.createPool(options);\n }\n\n setDebug(enabled = true) {\n this.debug = enabled;\n }\n\n async getConnection(): Promise<mysql.PoolConnection> {\n // Todo: use the settings here to provide a good connection pool\n return await this.pool.getConnection();\n }\n\n escapeId(value: string): string {\n return this.pool.escapeId(value);\n }\n\n async end(): Promise<void> {\n return await this.pool.end();\n }\n\n startQuery(): [number, number] {\n return process.hrtime();\n }\n\n logQuery(q, hrstart: [number, number]) {\n if (this.debug) {\n const hrend = process.hrtime(hrstart);\n console.warn(q.sql.replace(/\\n+ +/g, '\\n'), 'started at ' + (hrend[0] * 1000 + hrend[1] / 1000000) + 'ms');\n }\n }\n\n finishQuery(q, hrstart: [number, number]) {\n if (this.debug) {\n const hrend = process.hrtime(hrstart);\n console.log(q.sql.replace(/\\s+/g, ' '), 'in ' + (hrend[0] * 1000 + hrend[1] / 1000000) + 'ms');\n }\n }\n\n select(query: string, values?: any, options?: SelectOptions & { nestTables: true }): Promise<[SQLResultNamespacedRow[], mysql.FieldPacket[] | undefined]>;\n select(query: string, values?: any, options?: SelectOptions & { nestTables: false }): Promise<[SQLResultRow[], mysql.FieldPacket[] | undefined]>;\n async select(query: string, values?: any, options: SelectOptions = {}): Promise<[(SQLResultNamespacedRow | SQLResultRow)[], mysql.FieldPacket[] | undefined]> {\n const connection: mysql.PoolConnection = options.connection ?? (await this.getConnection());\n try {\n const q = await connection.query({ sql: query, nestTables: options.nestTables ?? true, values: values });\n return [\n q[0] as (SQLResultNamespacedRow | SQLResultRow)[],\n q[1] as mysql.FieldPacket[] | undefined,\n ];\n }\n finally {\n if (!options.connection) {\n connection.release();\n }\n }\n }\n\n async insert(\n query: string,\n values?: any,\n useConnection?: mysql.PoolConnection,\n ): Promise<[{ insertId: any; affectedRows: number }, mysql.FieldPacket[] | undefined]> {\n const connection: mysql.PoolConnection = useConnection ?? (await this.getConnection());\n try {\n const q = await connection.query({ sql: query, values: values });\n return [\n q[0] as { insertId: any; affectedRows: number },\n q[1] as mysql.FieldPacket[] | undefined,\n ];\n }\n finally {\n if (!useConnection) {\n connection.release();\n }\n }\n }\n\n async update(query: string, values?: any, useConnection?: mysql.PoolConnection): Promise<[\n { /** @deprecated */ changedRows: number; affectedRows: number }\n , mysql.FieldPacket[] | undefined]> {\n const connection: mysql.PoolConnection = useConnection ?? (await this.getConnection());\n try {\n const q = await connection.query({ sql: query, values: values });\n return [\n q[0] as { changedRows: number; affectedRows: number },\n q[1] as mysql.FieldPacket[] | undefined,\n ];\n }\n finally {\n if (!useConnection) {\n connection.release();\n }\n }\n }\n\n async delete(query: string, values?: any, useConnection?: mysql.PoolConnection): Promise<[{ affectedRows: number }, mysql.FieldPacket[] | undefined]> {\n const connection: mysql.PoolConnection = useConnection ?? (await this.getConnection());\n try {\n const q = await connection.query({ sql: query, values: values });\n return [\n q[0] as { affectedRows: number },\n q[1] as mysql.FieldPacket[] | undefined,\n ];\n }\n finally {\n if (!useConnection) {\n connection.release();\n }\n }\n }\n\n async statement(query: string, values?: any, useConnection?: mysql.PoolConnection): Promise<[any, any]> {\n const connection: mysql.PoolConnection = useConnection ?? (await this.getConnection());\n try {\n const q = await connection.query({ sql: query, values: values });\n return [\n q[0] as any,\n q[1] as any,\n ];\n }\n finally {\n if (!useConnection) {\n connection.release();\n }\n }\n }\n}\n\nexport const Database = new DatabaseInstance();\n"],"mappings":";;;AAsBA,IAAa,mBAAb,MAA8B;CAC1B;CACA,QAAQ;CAER,YAAY,UAAuB,EAAE,EAAE;AACnC,OAAK,WAAW,QAAQ;;CAG5B,WAAW,UAAuB,EAAE,EAAE;EAClC,MAAM,WAAW;GACb,MAAM,QAAQ,QAAQ,QAAQ,IAAI,WAAW;GAC7C,MAAM,QAAQ,QAAQ,QAAQ,IAAI,WAAW;GAC7C,UAAU,QAAQ,YAAY,QAAQ,IAAI,WAAW;GACrD,MAAM,QAAQ,OAAO,QAAQ,OAAO,SAAS,QAAQ,IAAI,WAAW,OAAO;GAC3E,UAAU,QAAQ,aAAa,KAAA,IAAY,QAAQ,IAAI,cAAc,QAAQ;GAC7E,iBAAiB,QAAQ,kBAAkB,QAAQ,kBAAkB,SAAS,QAAQ,IAAI,uBAAuB,KAAK;GACtH,oBAAoB,QAAQ,uBAAwB,QAAQ,IAAI,0BAA0B,YAAY;GACtG,SAAS,QAAQ,WAAW,QAAQ,IAAI,cAAc;GACtD,QAAQ,QAAQ,UAAU,CAAC,CAAC,QAAQ,IAAI;GACxC,IAAI,QAAQ,MAAM,QAAQ,IAAI;GACjC;AAED,MAAI,SAAS,aAAa,KAAA,EACtB,OAAM,IAAI,MAAM,8CAA8C;AAGlE,OAAK,OAAO,MAAM,WAAW;GACzB,MAAM,SAAS;GACf,MAAM,SAAS;GACf,UAAU,SAAS;GACnB,MAAM,SAAS;GACf,UAAU,SAAS,YAAY,KAAA;GAC/B,oBAAoB;GACpB,iBAAiB,SAAS;GAC1B,YAAY;GACZ,oBAAoB,SAAS;GAC7B,SAAS,SAAS;GAClB,gBAAgB;GAChB,aAAa;GACb,KAAK,SAAS,SACR;IACM,IAAI,SAAS,KAAK,GAAG,aAAa,SAAS,GAAG,GAAG,KAAA;IACjD,oBAAoB,SAAS,KAAK,OAAO;IAC5C,GACH,KAAA;GACT,CAAC;AACF,OAAK,QAAQ,SAAS,SAAS;AAE/B,MAAI,KAAK,OAAO;AACZ,QAAK,KAAK,GAAG,WAAW,SAAU,YAAY;AAC1C,YAAQ,IAAI,0BAA0B,WAAW,SAAS;KAC5D;AAEF,QAAK,KAAK,GAAG,cAAc,SAAU,YAAY;AAC7C,YAAQ,IAAI,yBAAyB,WAAW,SAAS;KAC3D;AAEF,QAAK,KAAK,GAAG,WAAW,WAAY;AAChC,YAAQ,IAAI,wCAAwC;KACtD;AAEF,QAAK,KAAK,GAAG,WAAW,SAAU,YAAY;AAC1C,YAAQ,IAAI,0BAA0B,WAAW,SAAS;KAC5D;;;CAIV,MAAM,OAAO,UAAuB,EAAE,EAAiB;AACnD,QAAM,KAAK,KAAK,KAAK;AACrB,OAAK,WAAW,QAAQ;;CAG5B,SAAS,UAAU,MAAM;AACrB,OAAK,QAAQ;;CAGjB,MAAM,gBAA+C;AAEjD,SAAO,MAAM,KAAK,KAAK,eAAe;;CAG1C,SAAS,OAAuB;AAC5B,SAAO,KAAK,KAAK,SAAS,MAAM;;CAGpC,MAAM,MAAqB;AACvB,SAAO,MAAM,KAAK,KAAK,KAAK;;CAGhC,aAA+B;AAC3B,SAAO,QAAQ,QAAQ;;CAG3B,SAAS,GAAG,SAA2B;AACnC,MAAI,KAAK,OAAO;GACZ,MAAM,QAAQ,QAAQ,OAAO,QAAQ;AACrC,WAAQ,KAAK,EAAE,IAAI,QAAQ,UAAU,KAAK,EAAE,iBAAiB,MAAM,KAAK,MAAO,MAAM,KAAK,OAAW,KAAK;;;CAIlH,YAAY,GAAG,SAA2B;AACtC,MAAI,KAAK,OAAO;GACZ,MAAM,QAAQ,QAAQ,OAAO,QAAQ;AACrC,WAAQ,IAAI,EAAE,IAAI,QAAQ,QAAQ,IAAI,EAAE,SAAS,MAAM,KAAK,MAAO,MAAM,KAAK,OAAW,KAAK;;;CAMtG,MAAM,OAAO,OAAe,QAAc,UAAyB,EAAE,EAAyF;EAC1J,MAAM,aAAmC,QAAQ,cAAe,MAAM,KAAK,eAAe;AAC1F,MAAI;GACA,MAAM,IAAI,MAAM,WAAW,MAAM;IAAE,KAAK;IAAO,YAAY,QAAQ,cAAc;IAAc;IAAQ,CAAC;AACxG,UAAO,CACH,EAAE,IACF,EAAE,GACL;YAEG;AACJ,OAAI,CAAC,QAAQ,WACT,YAAW,SAAS;;;CAKhC,MAAM,OACF,OACA,QACA,eACmF;EACnF,MAAM,aAAmC,iBAAkB,MAAM,KAAK,eAAe;AACrF,MAAI;GACA,MAAM,IAAI,MAAM,WAAW,MAAM;IAAE,KAAK;IAAe;IAAQ,CAAC;AAChE,UAAO,CACH,EAAE,IACF,EAAE,GACL;YAEG;AACJ,OAAI,CAAC,cACD,YAAW,SAAS;;;CAKhC,MAAM,OAAO,OAAe,QAAc,eAEF;EACpC,MAAM,aAAmC,iBAAkB,MAAM,KAAK,eAAe;AACrF,MAAI;GACA,MAAM,IAAI,MAAM,WAAW,MAAM;IAAE,KAAK;IAAe;IAAQ,CAAC;AAChE,UAAO,CACH,EAAE,IACF,EAAE,GACL;YAEG;AACJ,OAAI,CAAC,cACD,YAAW,SAAS;;;CAKhC,MAAM,OAAO,OAAe,QAAc,eAA4G;EAClJ,MAAM,aAAmC,iBAAkB,MAAM,KAAK,eAAe;AACrF,MAAI;GACA,MAAM,IAAI,MAAM,WAAW,MAAM;IAAE,KAAK;IAAe;IAAQ,CAAC;AAChE,UAAO,CACH,EAAE,IACF,EAAE,GACL;YAEG;AACJ,OAAI,CAAC,cACD,YAAW,SAAS;;;CAKhC,MAAM,UAAU,OAAe,QAAc,eAA2D;EACpG,MAAM,aAAmC,iBAAkB,MAAM,KAAK,eAAe;AACrF,MAAI;GACA,MAAM,IAAI,MAAM,WAAW,MAAM;IAAE,KAAK;IAAe;IAAQ,CAAC;AAChE,UAAO,CACH,EAAE,IACF,EAAE,GACL;YAEG;AACJ,OAAI,CAAC,cACD,YAAW,SAAS;;;;AAMpC,MAAa,WAAW,IAAI,kBAAkB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatabaseStoredValue.d.cts","names":[],"sources":["../../../src/classes/DatabaseStoredValue.ts"],"mappings":";KAAY,mBAAA,qBAAwC,IAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatabaseStoredValue.d.mts","names":[],"sources":["../../../src/classes/DatabaseStoredValue.ts"],"mappings":";KAAY,mBAAA,qBAAwC,IAAA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
const require_boys = require("./data/boys.cjs");
|
|
2
|
+
const require_family_names = require("./data/family-names.cjs");
|
|
3
|
+
const require_girls = require("./data/girls.cjs");
|
|
4
|
+
//#region src/classes/Factory.ts
|
|
5
|
+
var Factory = class {
|
|
6
|
+
options;
|
|
7
|
+
constructor(options) {
|
|
8
|
+
this.options = options;
|
|
9
|
+
}
|
|
10
|
+
randomArray(arr) {
|
|
11
|
+
return arr[Math.floor(Math.random() * arr.length)];
|
|
12
|
+
}
|
|
13
|
+
randomEnum(e) {
|
|
14
|
+
return this.randomArray(Object.values(e));
|
|
15
|
+
}
|
|
16
|
+
randomString(length) {
|
|
17
|
+
let result = "";
|
|
18
|
+
const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
19
|
+
const charactersLength = 62;
|
|
20
|
+
for (let i = 0; i < length; i++) result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
23
|
+
randomFirstName(gender) {
|
|
24
|
+
let names;
|
|
25
|
+
switch (gender) {
|
|
26
|
+
case "Male":
|
|
27
|
+
names = require_boys.default;
|
|
28
|
+
break;
|
|
29
|
+
case "Female":
|
|
30
|
+
names = require_girls.default;
|
|
31
|
+
break;
|
|
32
|
+
case "Other":
|
|
33
|
+
names = [...require_boys.default, ...require_girls.default];
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
return this.randomArray(names);
|
|
37
|
+
}
|
|
38
|
+
randomLastName() {
|
|
39
|
+
return this.randomArray(require_family_names.default);
|
|
40
|
+
}
|
|
41
|
+
async createMultiple(amount = 40) {
|
|
42
|
+
const arr = [];
|
|
43
|
+
for (let index = 0; index < amount; index++) arr.push(await this.create());
|
|
44
|
+
return arr;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
//#endregion
|
|
48
|
+
exports.Factory = Factory;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/classes/Factory.d.ts
|
|
2
|
+
declare abstract class Factory<Options, Model> {
|
|
3
|
+
options: Options;
|
|
4
|
+
constructor(options: Options);
|
|
5
|
+
abstract create(): Promise<Model>;
|
|
6
|
+
randomArray(arr: Array<any>): any;
|
|
7
|
+
randomEnum<E extends {
|
|
8
|
+
[key: number]: string | number;
|
|
9
|
+
}>(e: E): E[keyof E];
|
|
10
|
+
randomString(length: number): string;
|
|
11
|
+
randomFirstName(gender: 'Male' | 'Female' | 'Other'): string;
|
|
12
|
+
randomLastName(): string;
|
|
13
|
+
createMultiple(amount?: number): Promise<Model[]>;
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { Factory };
|
|
17
|
+
//# sourceMappingURL=Factory.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Factory.d.cts","names":[],"sources":["../../../src/classes/Factory.ts"],"mappings":";uBAIsB,OAAA;EAClB,OAAA,EAAS,OAAA;cACG,OAAA,EAAS,OAAA;EAAA,SAGZ,MAAA,CAAA,GAAU,OAAA,CAAQ,KAAA;EAE3B,WAAA,CAAY,GAAA,EAAK,KAAA;EAKjB,UAAA;IAAA,CAAwB,GAAA;EAAA,EAAA,CAAiC,CAAA,EAAG,CAAA,GAAI,CAAA,OAAQ,CAAA;EAIxE,YAAA,CAAa,MAAA;EAUb,eAAA,CAAgB,MAAA;EAgBhB,cAAA,CAAA;EAIM,cAAA,CAAe,MAAA,YAAc,OAAA,CAAQ,KAAA;AAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/classes/Factory.d.ts
|
|
2
|
+
declare abstract class Factory<Options, Model> {
|
|
3
|
+
options: Options;
|
|
4
|
+
constructor(options: Options);
|
|
5
|
+
abstract create(): Promise<Model>;
|
|
6
|
+
randomArray(arr: Array<any>): any;
|
|
7
|
+
randomEnum<E extends {
|
|
8
|
+
[key: number]: string | number;
|
|
9
|
+
}>(e: E): E[keyof E];
|
|
10
|
+
randomString(length: number): string;
|
|
11
|
+
randomFirstName(gender: 'Male' | 'Female' | 'Other'): string;
|
|
12
|
+
randomLastName(): string;
|
|
13
|
+
createMultiple(amount?: number): Promise<Model[]>;
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { Factory };
|
|
17
|
+
//# sourceMappingURL=Factory.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Factory.d.mts","names":[],"sources":["../../../src/classes/Factory.ts"],"mappings":";uBAIsB,OAAA;EAClB,OAAA,EAAS,OAAA;cACG,OAAA,EAAS,OAAA;EAAA,SAGZ,MAAA,CAAA,GAAU,OAAA,CAAQ,KAAA;EAE3B,WAAA,CAAY,GAAA,EAAK,KAAA;EAKjB,UAAA;IAAA,CAAwB,GAAA;EAAA,EAAA,CAAiC,CAAA,EAAG,CAAA,GAAI,CAAA,OAAQ,CAAA;EAIxE,YAAA,CAAa,MAAA;EAUb,eAAA,CAAgB,MAAA;EAgBhB,cAAA,CAAA;EAIM,cAAA,CAAe,MAAA,YAAc,OAAA,CAAQ,KAAA;AAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import boys_default from "./data/boys.mjs";
|
|
2
|
+
import family_names_default from "./data/family-names.mjs";
|
|
3
|
+
import girls_default from "./data/girls.mjs";
|
|
4
|
+
//#region src/classes/Factory.ts
|
|
5
|
+
var Factory = class {
|
|
6
|
+
options;
|
|
7
|
+
constructor(options) {
|
|
8
|
+
this.options = options;
|
|
9
|
+
}
|
|
10
|
+
randomArray(arr) {
|
|
11
|
+
return arr[Math.floor(Math.random() * arr.length)];
|
|
12
|
+
}
|
|
13
|
+
randomEnum(e) {
|
|
14
|
+
return this.randomArray(Object.values(e));
|
|
15
|
+
}
|
|
16
|
+
randomString(length) {
|
|
17
|
+
let result = "";
|
|
18
|
+
const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
19
|
+
const charactersLength = 62;
|
|
20
|
+
for (let i = 0; i < length; i++) result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
23
|
+
randomFirstName(gender) {
|
|
24
|
+
let names;
|
|
25
|
+
switch (gender) {
|
|
26
|
+
case "Male":
|
|
27
|
+
names = boys_default;
|
|
28
|
+
break;
|
|
29
|
+
case "Female":
|
|
30
|
+
names = girls_default;
|
|
31
|
+
break;
|
|
32
|
+
case "Other":
|
|
33
|
+
names = [...boys_default, ...girls_default];
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
return this.randomArray(names);
|
|
37
|
+
}
|
|
38
|
+
randomLastName() {
|
|
39
|
+
return this.randomArray(family_names_default);
|
|
40
|
+
}
|
|
41
|
+
async createMultiple(amount = 40) {
|
|
42
|
+
const arr = [];
|
|
43
|
+
for (let index = 0; index < amount; index++) arr.push(await this.create());
|
|
44
|
+
return arr;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
//#endregion
|
|
48
|
+
export { Factory };
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=Factory.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Factory.mjs","names":["BoyNames","GirlNames","FamilyNames"],"sources":["../../../src/classes/Factory.ts"],"sourcesContent":["import BoyNames from './data/boys.js';\nimport FamilyNames from './data/family-names.js';\nimport GirlNames from './data/girls.js';\n\nexport abstract class Factory<Options, Model> {\n options: Options;\n constructor(options: Options) {\n this.options = options;\n }\n abstract create(): Promise<Model>;\n\n randomArray(arr: Array<any>): any {\n const int = Math.floor(Math.random() * arr.length);\n return arr[int];\n }\n\n randomEnum<E extends { [key: number]: string | number }>(e: E): E[keyof E] {\n return this.randomArray(Object.values(e));\n }\n\n randomString(length: number): string {\n let result = '';\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n const charactersLength = characters.length;\n for (let i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n }\n\n randomFirstName(gender: 'Male' | 'Female' | 'Other'): string {\n let names: string[];\n switch (gender) {\n case 'Male':\n names = BoyNames;\n break;\n case 'Female':\n names = GirlNames;\n break;\n case 'Other':\n names = [...BoyNames, ...GirlNames];\n break;\n }\n return this.randomArray(names);\n }\n\n randomLastName(): string {\n return this.randomArray(FamilyNames);\n }\n\n async createMultiple(amount = 40): Promise<Model[]> {\n const arr: Model[] = [];\n for (let index = 0; index < amount; index++) {\n arr.push(await this.create());\n }\n return arr;\n }\n}\n"],"mappings":";;;;AAIA,IAAsB,UAAtB,MAA8C;CAC1C;CACA,YAAY,SAAkB;AAC1B,OAAK,UAAU;;CAInB,YAAY,KAAsB;AAE9B,SAAO,IADK,KAAK,MAAM,KAAK,QAAQ,GAAG,IAAI,OAAO;;CAItD,WAAyD,GAAkB;AACvE,SAAO,KAAK,YAAY,OAAO,OAAO,EAAE,CAAC;;CAG7C,aAAa,QAAwB;EACjC,IAAI,SAAS;EACb,MAAM,aAAa;EACnB,MAAM,mBAAmB;AACzB,OAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,IACxB,WAAU,WAAW,OAAO,KAAK,MAAM,KAAK,QAAQ,GAAG,iBAAiB,CAAC;AAE7E,SAAO;;CAGX,gBAAgB,QAA6C;EACzD,IAAI;AACJ,UAAQ,QAAR;GACI,KAAK;AACD,YAAQA;AACR;GACJ,KAAK;AACD,YAAQC;AACR;GACJ,KAAK;AACD,YAAQ,CAAC,GAAGD,cAAU,GAAGC,cAAU;AACnC;;AAER,SAAO,KAAK,YAAY,MAAM;;CAGlC,iBAAyB;AACrB,SAAO,KAAK,YAAYC,qBAAY;;CAGxC,MAAM,eAAe,SAAS,IAAsB;EAChD,MAAM,MAAe,EAAE;AACvB,OAAK,IAAI,QAAQ,GAAG,QAAQ,QAAQ,QAChC,KAAI,KAAK,MAAM,KAAK,QAAQ,CAAC;AAEjC,SAAO"}
|