@squiz/db-lib 1.63.3 → 1.65.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +17 -0
- package/lib/AbstractRepository.d.ts +1 -1
- package/lib/index.js +246 -29
- package/lib/index.js.map +4 -4
- package/package.json +6 -6
- package/src/AbstractRepository.ts +5 -4
- package/tsconfig.tsbuildinfo +1 -1
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@squiz/db-lib",
|
3
|
-
"version": "1.
|
3
|
+
"version": "1.65.0",
|
4
4
|
"description": "",
|
5
5
|
"main": "lib/index.js",
|
6
6
|
"private": false,
|
@@ -18,21 +18,21 @@
|
|
18
18
|
"license": "ISC",
|
19
19
|
"devDependencies": {
|
20
20
|
"@types/jest": "28.1.8",
|
21
|
-
"@types/node": "
|
21
|
+
"@types/node": "20.12.4",
|
22
22
|
"@types/pg": "8.6.6",
|
23
23
|
"eslint": "8.33.0",
|
24
24
|
"fs-extra": "11.1.0",
|
25
25
|
"jest": "29.4.1",
|
26
|
-
"rimraf": "
|
26
|
+
"rimraf": "5.0.7",
|
27
27
|
"ts-jest": "29.0.5",
|
28
28
|
"ts-loader": "9.3.1",
|
29
|
-
"ts-node": "10.9.
|
29
|
+
"ts-node": "10.9.2",
|
30
30
|
"typescript": "4.9.4"
|
31
31
|
},
|
32
32
|
"dependencies": {
|
33
33
|
"@aws-sdk/client-secrets-manager": "3.264.0",
|
34
|
-
"@squiz/dx-common-lib": "1.
|
35
|
-
"@squiz/dx-logger-lib": "1.64.0",
|
34
|
+
"@squiz/dx-common-lib": "^1.64.0",
|
35
|
+
"@squiz/dx-logger-lib": "^1.64.0",
|
36
36
|
"dotenv": "16.0.3",
|
37
37
|
"pg": "8.9.0"
|
38
38
|
}
|
@@ -56,18 +56,19 @@ export abstract class AbstractRepository<SHAPE extends object, DATA_CLASS extend
|
|
56
56
|
return await this.pool.connect();
|
57
57
|
}
|
58
58
|
|
59
|
-
async create(value:
|
60
|
-
const
|
59
|
+
async create(value: SHAPE, transactionClient: PoolClient | null = null): Promise<SHAPE> {
|
60
|
+
const valueAsClass = new this.classRef(value as Record<string, unknown>);
|
61
|
+
const columns = Object.keys(valueAsClass)
|
61
62
|
.map((a) => `"${this.modelPropertyToSqlColumn[a as keyof SHAPE]}"`)
|
62
63
|
.join(', ');
|
63
64
|
|
64
|
-
const values = Object.values(
|
65
|
+
const values = Object.values(valueAsClass)
|
65
66
|
.map((a, index) => `$${index + 1}`)
|
66
67
|
.join(', ');
|
67
68
|
|
68
69
|
const result = await this.executeQuery(
|
69
70
|
`INSERT INTO ${this.tableName} (${columns}) VALUES (${values}) RETURNING *`,
|
70
|
-
Object.values(
|
71
|
+
Object.values(valueAsClass),
|
71
72
|
transactionClient,
|
72
73
|
);
|
73
74
|
|