@itzworking/single-table 0.0.136 → 0.0.138
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/package.json +3 -3
- package/src/decorators/gsis/types.d.ts +2 -2
- package/src/single-table-repository/single-table-repository.d.ts +1 -0
- package/src/single-table-repository/single-table-repository.js +13 -5
- package/src/single-table-repository/single-table-repository.js.map +1 -1
- package/src/single-table-repository/types.d.ts +2 -2
- package/src/types.d.ts +1 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itzworking/single-table",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.138",
|
|
4
4
|
"private": false,
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"tslib": "^2.3.0"
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
"peerDependencies": {
|
|
9
9
|
"@aws-sdk/client-dynamodb": "3.x",
|
|
10
10
|
"@aws-sdk/lib-dynamodb": "3.x",
|
|
11
|
-
"@itzworking/decorated-class": "0.0.
|
|
12
|
-
"@itzworking/powertools": "0.0.
|
|
11
|
+
"@itzworking/decorated-class": "0.0.138",
|
|
12
|
+
"@itzworking/powertools": "0.0.138",
|
|
13
13
|
"reflect-metadata": "0.2.x",
|
|
14
14
|
"uuid": "10.x"
|
|
15
15
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export type CompositeKeyElement<T> = Uppercase<string> | keyof
|
|
1
|
+
import { SingleTableAttributes } from "../../types";
|
|
2
|
+
export type CompositeKeyElement<T> = Uppercase<string> | keyof SingleTableAttributes<T>;
|
|
3
3
|
export type CompositePrimaryKeyComposition<T> = {
|
|
4
4
|
PK: Array<CompositeKeyElement<T>>;
|
|
5
5
|
SK: Array<CompositeKeyElement<T>>;
|
|
@@ -2,6 +2,7 @@ import { SingleTableItem } from "../single-table-item";
|
|
|
2
2
|
import { DeleteItemOptions, GetItemOptions, InsertItemOptions, QueryItemsOptions, QueryMultipleEntityTypesOptions, UpdateItemOptions } from "./types";
|
|
3
3
|
export declare abstract class SingleTableRepository<T extends SingleTableItem> {
|
|
4
4
|
readonly tableName: string;
|
|
5
|
+
getUserId(): string;
|
|
5
6
|
insert(entity: T, options?: InsertItemOptions): Promise<T>;
|
|
6
7
|
get(entity: T, options?: GetItemOptions): Promise<T>;
|
|
7
8
|
update(entity: T, options?: UpdateItemOptions<T>): Promise<T>;
|
|
@@ -8,13 +8,21 @@ class SingleTableRepository {
|
|
|
8
8
|
constructor() {
|
|
9
9
|
this.tableName = process.env.MAIN_TABLE_NAME || process.env.MAIN_TABLE_TABLE_NAME || "";
|
|
10
10
|
}
|
|
11
|
+
getUserId() {
|
|
12
|
+
var _a;
|
|
13
|
+
try {
|
|
14
|
+
return ((_a = (0, powertools_1.getContext)().user) === null || _a === void 0 ? void 0 : _a.id) || "unknown";
|
|
15
|
+
}
|
|
16
|
+
catch (e) {
|
|
17
|
+
return "unknown";
|
|
18
|
+
}
|
|
19
|
+
}
|
|
11
20
|
insert(entity, options) {
|
|
12
21
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
13
|
-
var _a, _b;
|
|
14
22
|
const now = new Date();
|
|
15
23
|
entity.createdAt = now;
|
|
16
24
|
entity.updatedAt = now;
|
|
17
|
-
const userId =
|
|
25
|
+
const userId = this.getUserId();
|
|
18
26
|
entity.createdBy = userId;
|
|
19
27
|
entity.updatedBy = userId;
|
|
20
28
|
let retryLimit = (options === null || options === void 0 ? void 0 : options.override) ? 0 : 3;
|
|
@@ -51,7 +59,7 @@ class SingleTableRepository {
|
|
|
51
59
|
}
|
|
52
60
|
update(entity, options) {
|
|
53
61
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
54
|
-
var _a, _b
|
|
62
|
+
var _a, _b;
|
|
55
63
|
if ((_a = options === null || options === void 0 ? void 0 : options.attributes) === null || _a === void 0 ? void 0 : _a.length) {
|
|
56
64
|
if (!options.attributes.includes("updatedAt")) {
|
|
57
65
|
options.attributes.push("updatedAt");
|
|
@@ -61,10 +69,10 @@ class SingleTableRepository {
|
|
|
61
69
|
}
|
|
62
70
|
}
|
|
63
71
|
entity.updatedAt = new Date();
|
|
64
|
-
entity.updatedBy =
|
|
72
|
+
entity.updatedBy = this.getUserId();
|
|
65
73
|
const dynamodbResponse = yield (0, dynamodb_1.updateDynamodbItem)(Object.assign(Object.assign({ TableName: this.tableName || "", Key: entity.key(), ReturnValues: "ALL_NEW" }, entity.generateUpdateExpression(((options === null || options === void 0 ? void 0 : options.attributes) || []))), options === null || options === void 0 ? void 0 : options.input));
|
|
66
74
|
const EntityClass = Object.getPrototypeOf(entity).constructor;
|
|
67
|
-
return new EntityClass((
|
|
75
|
+
return new EntityClass((_b = dynamodbResponse === null || dynamodbResponse === void 0 ? void 0 : dynamodbResponse.Attributes) !== null && _b !== void 0 ? _b : entity);
|
|
68
76
|
});
|
|
69
77
|
}
|
|
70
78
|
delete(entity, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"single-table-repository.js","sourceRoot":"","sources":["../../../../../libs/single-table/src/single-table-repository/single-table-repository.ts"],"names":[],"mappings":";;;;AAUA,0CAOqB;AACrB,uDAAmE;AAEnE,MAAsB,qBAAqB;IAA3C;QACW,cAAS,GAChB,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"single-table-repository.js","sourceRoot":"","sources":["../../../../../libs/single-table/src/single-table-repository/single-table-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DeleteCommandInput, GetCommandInput, PutCommandInput, QueryCommandInput, UpdateCommandInput } from "@aws-sdk/lib-dynamodb";
|
|
2
|
-
import {
|
|
2
|
+
import { SingleTableAttributes } from "../types";
|
|
3
3
|
export interface InsertItemOptions {
|
|
4
4
|
override?: boolean;
|
|
5
5
|
input?: Partial<PutCommandInput>;
|
|
@@ -8,7 +8,7 @@ export interface GetItemOptions {
|
|
|
8
8
|
input?: Partial<GetCommandInput>;
|
|
9
9
|
}
|
|
10
10
|
export interface UpdateItemOptions<T> {
|
|
11
|
-
attributes?: (keyof
|
|
11
|
+
attributes?: (keyof SingleTableAttributes<T>)[];
|
|
12
12
|
input?: Partial<UpdateCommandInput>;
|
|
13
13
|
}
|
|
14
14
|
export interface DeleteItemOptions {
|
package/src/types.d.ts
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
type ExcludedKeys = "generateId" | "pk" | "sk" | "key" | "gsi1pk" | "gsi1sk" | "gsi2pk" | "gsi2sk" | "gsi3pk" | "gsi3sk" | "gsi4pk" | "gsi4sk" | "gsi5pk" | "gsi5sk" | "generateUpdateExpression" | "toSingleTableItem";
|
|
2
|
-
export type
|
|
3
|
-
[Key in keyof C]: C[Key];
|
|
4
|
-
};
|
|
5
|
-
export type ClassPropertiesWithExcludedKeys<C> = {
|
|
2
|
+
export type SingleTableAttributes<C> = {
|
|
6
3
|
[Key in keyof C as Key extends ExcludedKeys ? never : Key]: C[Key];
|
|
7
4
|
};
|
|
8
5
|
export {};
|