@dismissible/nestjs-dynamodb-storage 2.0.2 → 2.0.3

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dismissible/nestjs-dynamodb-storage",
3
- "version": "2.0.2",
3
+ "version": "2.0.3",
4
4
  "description": "DynamoDB storage adapter for Dismissible using AWS SDK v3",
5
5
  "main": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
@@ -32,9 +32,9 @@
32
32
  "@aws-sdk/client-dynamodb": "^3.958.0",
33
33
  "@aws-sdk/lib-dynamodb": "^3.958.0",
34
34
  "@aws-sdk/util-waiter": "^3.370.0",
35
- "@dismissible/nestjs-item": "^2.0.2",
36
- "@dismissible/nestjs-logger": "^2.0.2",
37
- "@dismissible/nestjs-storage": "^2.0.2"
35
+ "@dismissible/nestjs-item": "^2.0.3",
36
+ "@dismissible/nestjs-logger": "^2.0.3",
37
+ "@dismissible/nestjs-storage": "^2.0.3"
38
38
  },
39
39
  "keywords": [
40
40
  "nestjs",
@@ -10,7 +10,9 @@ export declare class DynamoDBClientService implements OnModuleInit, OnModuleDest
10
10
  onModuleInit(): Promise<void>;
11
11
  onModuleDestroy(): Promise<void>;
12
12
  get(userId: string, itemId: string): Promise<Record<string, any> | null>;
13
+ getMany(userId: string, itemIds: string[]): Promise<Record<string, any>[]>;
13
14
  create(item: Record<string, any>): Promise<void>;
15
+ createMany(items: Record<string, any>[]): Promise<void>;
14
16
  update(userId: string, itemId: string, dismissedAt: string | null): Promise<void>;
15
17
  delete(userId: string, itemId: string): Promise<void>;
16
18
  deleteAll(): Promise<void>;
@@ -46,12 +46,50 @@ let DynamoDBClientService = class DynamoDBClientService {
46
46
  }));
47
47
  return response.Item ?? null;
48
48
  }
49
+ async getMany(userId, itemIds) {
50
+ if (itemIds.length === 0) {
51
+ return [];
52
+ }
53
+ const results = [];
54
+ const batches = this.chunkArray(itemIds, 100); // DynamoDB BatchGetItem limit is 100
55
+ for (const batch of batches) {
56
+ const keys = batch.map((itemId) => ({ userId, id: itemId }));
57
+ const response = await this.documentClient.send(new lib_dynamodb_2.BatchGetCommand({
58
+ RequestItems: {
59
+ [this.config.tableName]: {
60
+ Keys: keys,
61
+ },
62
+ },
63
+ }));
64
+ const items = response.Responses?.[this.config.tableName] ?? [];
65
+ results.push(...items);
66
+ }
67
+ return results;
68
+ }
49
69
  async create(item) {
50
70
  await this.documentClient.send(new lib_dynamodb_2.PutCommand({
51
71
  TableName: this.config.tableName,
52
72
  Item: item,
53
73
  }));
54
74
  }
75
+ async createMany(items) {
76
+ if (items.length === 0) {
77
+ return;
78
+ }
79
+ const batches = this.chunkArray(items, 25); // DynamoDB BatchWriteItem limit is 25
80
+ for (const batch of batches) {
81
+ const putRequests = batch.map((item) => ({
82
+ PutRequest: {
83
+ Item: item,
84
+ },
85
+ }));
86
+ await this.documentClient.send(new lib_dynamodb_2.BatchWriteCommand({
87
+ RequestItems: {
88
+ [this.config.tableName]: putRequests,
89
+ },
90
+ }));
91
+ }
92
+ }
55
93
  async update(userId, itemId, dismissedAt) {
56
94
  await this.documentClient.send(new lib_dynamodb_2.UpdateCommand({
57
95
  TableName: this.config.tableName,
@@ -1 +1 @@
1
- {"version":3,"file":"dynamodb-client.service.js","sourceRoot":"","sources":["../../../../libs/dynamodb-storage/src/dynamodb-client.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamodb-client.service.js","sourceRoot":"","sources":["../../../../libs/dynamodb-storage/src/dynamodb-client.service.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,9 @@ export declare class DynamoDBStorageAdapter implements IDismissibleStorage {
8
8
  private readonly itemFactory;
9
9
  constructor(dynamoDB: DynamoDBClientService, logger: IDismissibleLogger, itemFactory: DismissibleItemFactory);
10
10
  get(userId: string, itemId: string): Promise<DismissibleItemDto | null>;
11
+ getMany(userId: string, itemIds: string[]): Promise<Map<string, DismissibleItemDto>>;
11
12
  create(item: DismissibleItemDto): Promise<DismissibleItemDto>;
13
+ createMany(items: DismissibleItemDto[]): Promise<DismissibleItemDto[]>;
12
14
  update(item: DismissibleItemDto): Promise<DismissibleItemDto>;
13
15
  delete(userId: string, itemId: string): Promise<void>;
14
16
  deleteAll(): Promise<void>;
@@ -22,6 +22,20 @@ let DynamoDBStorageAdapter = class DynamoDBStorageAdapter {
22
22
  this.logger.debug('DynamoDB storage hit', { userId, itemId });
23
23
  return this.mapToDto(item);
24
24
  }
25
+ async getMany(userId, itemIds) {
26
+ this.logger.debug('DynamoDB storage getMany', { userId, itemCount: itemIds.length });
27
+ const items = await this.dynamoDB.getMany(userId, itemIds);
28
+ const result = new Map();
29
+ for (const item of items) {
30
+ result.set(item.id, this.mapToDto(item));
31
+ }
32
+ this.logger.debug('DynamoDB storage getMany complete', {
33
+ userId,
34
+ requested: itemIds.length,
35
+ found: result.size,
36
+ });
37
+ return result;
38
+ }
25
39
  async create(item) {
26
40
  this.logger.debug('DynamoDB storage create', { userId: item.userId, itemId: item.id });
27
41
  await this.dynamoDB.create({
@@ -32,6 +46,21 @@ let DynamoDBStorageAdapter = class DynamoDBStorageAdapter {
32
46
  });
33
47
  return item;
34
48
  }
49
+ async createMany(items) {
50
+ this.logger.debug('DynamoDB storage createMany', { itemCount: items.length });
51
+ if (items.length === 0) {
52
+ return [];
53
+ }
54
+ const dynamoItems = items.map((item) => ({
55
+ userId: item.userId,
56
+ id: item.id,
57
+ createdAt: item.createdAt.toISOString(),
58
+ dismissedAt: item.dismissedAt?.toISOString() ?? null,
59
+ }));
60
+ await this.dynamoDB.createMany(dynamoItems);
61
+ this.logger.debug('DynamoDB storage createMany complete', { created: items.length });
62
+ return items;
63
+ }
35
64
  async update(item) {
36
65
  this.logger.debug('DynamoDB storage update', { userId: item.userId, itemId: item.id });
37
66
  await this.dynamoDB.update(item.userId, item.id, item.dismissedAt?.toISOString() ?? null);
@@ -1 +1 @@
1
- {"version":3,"file":"dynamodb-storage.adapter.js","sourceRoot":"","sources":["../../../../libs/dynamodb-storage/src/dynamodb-storage.adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamodb-storage.adapter.js","sourceRoot":"","sources":["../../../../libs/dynamodb-storage/src/dynamodb-storage.adapter.ts"],"names":[],"mappings":";;;;AAAA,2CAAoD;AACpD,8DAAoF;AAEpF,0DAAsF;AACtF,uEAAkE;AAG3D,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC,YACmB,QAA+B,EACH,MAA0B,EACtD,WAAmC;QAFnC,aAAQ,GAAR,QAAQ,CAAuB;QACH,WAAM,GAAN,MAAM,CAAoB;QACtD,gBAAW,GAAX,WAAW,CAAwB;IACnD,CAAC;IAEJ,KAAK,CAAC,GAAG,CAAC,MAAc,EAAE,MAAc;QACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAE9D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAErD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,OAAiB;QAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAErF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE3D,MAAM,MAAM,GAAG,IAAI,GAAG,EAA8B,CAAC;QACrD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE;YACrD,MAAM;YACN,SAAS,EAAE,OAAO,CAAC,MAAM;YACzB,KAAK,EAAE,MAAM,CAAC,IAAI;SACnB,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAwB;QACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAEvF,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;YACvC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,IAAI;SACrD,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAA2B;QAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAE9E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACvC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;YACvC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,IAAI;SACrD,CAAC,CAAC,CAAC;QAEJ,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAE5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAErF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAwB;QACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAEvF,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC,CAAC;QAE1F,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,MAAc;QACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACjE,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC;IAEO,QAAQ,CAAC,IAAyB;QACxC,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAC7B,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YACnC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;SACvE,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AApGY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;IAIR,mBAAA,IAAA,eAAM,EAAC,kCAAkB,CAAC,CAAA;6CADA,+CAAqB,UAElB,oCAAsB;GAJ3C,sBAAsB,CAoGlC"}