@trunkrs/common 1.4.6 → 1.4.8

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": "@trunkrs/common",
3
- "version": "1.4.6",
3
+ "version": "1.4.8",
4
4
  "description": "Common standards library for development in Trunkrs",
5
5
  "types": "./index.d.ts",
6
6
  "repository": "https://github.com/Trunkrs/common.git",
@@ -1,9 +1,14 @@
1
- import { DynamoDB } from 'aws-sdk';
1
+ import { AWSError, DynamoDB } from 'aws-sdk';
2
+ import { Key } from 'aws-sdk/clients/dynamodb';
3
+ import { PromiseResult } from 'aws-sdk/lib/request';
4
+ import { DocumentClient } from 'aws-sdk/lib/dynamodb/document_client';
5
+ import { QueryOperation } from './utils';
2
6
  declare abstract class BaseDynamoDataStorage<TEntity> {
3
7
  protected readonly tableName: string;
4
8
  protected abstract readonly keys: Array<keyof TEntity>;
5
9
  protected readonly documentClient: DynamoDB.DocumentClient;
6
10
  protected constructor(tableName: string);
11
+ protected executeQueryOperation({ operation, query }: QueryOperation, lastKey?: Key): Promise<PromiseResult<DocumentClient.QueryOutput, AWSError>>;
7
12
  protected getKeyPairFromModel(model: TEntity): Partial<TEntity>;
8
13
  }
9
14
  export default BaseDynamoDataStorage;
@@ -6,6 +6,15 @@ class BaseDynamoDataStorage {
6
6
  this.tableName = tableName;
7
7
  this.documentClient = new aws_sdk_1.DynamoDB.DocumentClient();
8
8
  }
9
+ executeQueryOperation({ operation, query }, lastKey) {
10
+ return operation === 'Query'
11
+ ? this.documentClient
12
+ .query({ ...query, ExclusiveStartKey: lastKey })
13
+ .promise()
14
+ : this.documentClient
15
+ .scan({ ...query, ExclusiveStartKey: lastKey })
16
+ .promise();
17
+ }
9
18
  getKeyPairFromModel(model) {
10
19
  const keyDictionary = {};
11
20
  this.keys.forEach((key) => {
@@ -1 +1 @@
1
- {"version":3,"file":"BaseDynamoDataStorage.js","sourceRoot":"","sources":["../../../../services/aws/dynamodb/BaseDynamoDataStorage.ts"],"names":[],"mappings":";;AAAA,qCAAkC;AAElC,MAAe,qBAAqB;IAKlC,YAAyC,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;QACxD,IAAI,CAAC,cAAc,GAAG,IAAI,kBAAQ,CAAC,cAAc,EAAE,CAAA;IACrD,CAAC;IAES,mBAAmB,CAAC,KAAc;QAC1C,MAAM,aAAa,GAAqB,EAAE,CAAA;QAE1C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACxB,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;QAEF,OAAO,aAAa,CAAA;IACtB,CAAC;CACF;AAED,kBAAe,qBAAqB,CAAA"}
1
+ {"version":3,"file":"BaseDynamoDataStorage.js","sourceRoot":"","sources":["../../../../services/aws/dynamodb/BaseDynamoDataStorage.ts"],"names":[],"mappings":";;AAAA,qCAA4C;AAQ5C,MAAe,qBAAqB;IAKlC,YAAyC,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;QACxD,IAAI,CAAC,cAAc,GAAG,IAAI,kBAAQ,CAAC,cAAc,EAAE,CAAA;IACrD,CAAC;IAES,qBAAqB,CAC7B,EAAE,SAAS,EAAE,KAAK,EAAkB,EACpC,OAAa;QAEb,OAAO,SAAS,KAAK,OAAO;YAC1B,CAAC,CAAC,IAAI,CAAC,cAAc;iBAChB,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC;iBAC/C,OAAO,EAAE;YACd,CAAC,CAAC,IAAI,CAAC,cAAc;iBAChB,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC;iBAC9C,OAAO,EAAE,CAAA;IAClB,CAAC;IAES,mBAAmB,CAAC,KAAc;QAC1C,MAAM,aAAa,GAAqB,EAAE,CAAA;QAE1C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACxB,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;QAEF,OAAO,aAAa,CAAA;IACtB,CAAC;CACF;AAED,kBAAe,qBAAqB,CAAA"}
@@ -64,16 +64,11 @@ class DynamoDataStorage extends BaseDynamoDataStorage_1.default {
64
64
  }
65
65
  async find(query) {
66
66
  var _a;
67
- const dynamoQuery = utils_1.QueryBuilder.buildQuery(query, this.tableName, this.keys);
67
+ const operation = utils_1.QueryBuilder.buildQuery(query, this.tableName, this.keys);
68
68
  const results = [];
69
69
  let lastEvaluatedKey;
70
70
  do {
71
- const page = await this.documentClient
72
- .query({
73
- ...dynamoQuery,
74
- ExclusiveStartKey: lastEvaluatedKey,
75
- })
76
- .promise();
71
+ const page = await this.executeQueryOperation(operation, lastEvaluatedKey);
77
72
  if ((_a = page.Items) === null || _a === void 0 ? void 0 : _a.length) {
78
73
  results.push(...page.Items);
79
74
  }
@@ -86,8 +81,8 @@ class DynamoDataStorage extends BaseDynamoDataStorage_1.default {
86
81
  ...query,
87
82
  limit: 1,
88
83
  };
89
- const dynamoQuery = utils_1.QueryBuilder.buildQuery(limitedQuery, this.tableName, this.keys);
90
- const results = await this.documentClient.query(dynamoQuery).promise();
84
+ const operation = utils_1.QueryBuilder.buildQuery(limitedQuery, this.tableName, this.keys);
85
+ const results = await this.executeQueryOperation(operation);
91
86
  return results.Items ? results.Items[0] : null;
92
87
  }
93
88
  async remove(entity) {
@@ -1 +1 @@
1
- {"version":3,"file":"DynamoDataStorage.js","sourceRoot":"","sources":["../../../../services/aws/dynamodb/DynamoDataStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DynamoDataStorage.js","sourceRoot":"","sources":["../../../../services/aws/dynamodb/DynamoDataStorage.ts"],"names":[],"mappings":"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"}
@@ -11,17 +11,26 @@ class DynamoIndexDataStorage extends BaseDynamoDataStorage_1.default {
11
11
  this.indexName = indexName;
12
12
  }
13
13
  async find(query) {
14
- const dynamoQuery = utils_1.QueryBuilder.buildQuery(query, this.tableName, this.keys, this.indexName);
15
- const results = await this.documentClient.query(dynamoQuery).promise();
16
- return results.Items ? results.Items : [];
14
+ var _a;
15
+ const operation = utils_1.QueryBuilder.buildQuery(query, this.tableName, this.keys, this.indexName);
16
+ const results = [];
17
+ let lastEvaluatedKey;
18
+ do {
19
+ const page = await this.executeQueryOperation(operation, lastEvaluatedKey);
20
+ if ((_a = page.Items) === null || _a === void 0 ? void 0 : _a.length) {
21
+ results.push(...page.Items);
22
+ }
23
+ lastEvaluatedKey = page.LastEvaluatedKey;
24
+ } while (lastEvaluatedKey);
25
+ return results;
17
26
  }
18
27
  async findOne(query) {
19
28
  const limitedQuery = {
20
29
  ...query,
21
30
  limit: 1,
22
31
  };
23
- const dynamoQuery = utils_1.QueryBuilder.buildQuery(limitedQuery, this.tableName, this.keys, this.indexName);
24
- const results = await this.documentClient.query(dynamoQuery).promise();
32
+ const operation = utils_1.QueryBuilder.buildQuery(limitedQuery, this.tableName, this.keys, this.indexName);
33
+ const results = await this.executeQueryOperation(operation);
25
34
  return results.Items ? results.Items[0] : null;
26
35
  }
27
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DynamoIndexDataStorage.js","sourceRoot":"","sources":["../../../../services/aws/dynamodb/DynamoIndexDataStorage.ts"],"names":[],"mappings":";;;;;AAEA,oFAA2D;AAC3D,mCAAuD;AAGvD,MAAe,sBACb,SAAQ,+BAA8B;IAGtC,YACE,SAAiB,EACE,SAAiB;QAEpC,KAAK,CAAC,SAAS,CAAC,CAAA;QAFG,cAAS,GAAT,SAAS,CAAQ;IAGtC,CAAC;IAEM,KAAK,CAAC,IAAI,CACf,KAA+B;QAE/B,MAAM,WAAW,GACf,oBAAY,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAE3E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAA;QAEtE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,OAAO,CAAC,KAAyB,CAAC,CAAC,CAAC,EAAE,CAAA;IAChE,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,KAA8C;QAE9C,MAAM,YAAY,GAAG;YACnB,GAAG,KAAK;YACR,KAAK,EAAE,CAAC;SACT,CAAA;QAED,MAAM,WAAW,GACf,oBAAY,CAAC,UAAU,CACrB,YAAY,EACZ,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,SAAS,CACf,CAAA;QAEH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAA;QAEtE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAa,CAAC,CAAC,CAAC,IAAI,CAAA;IAC7D,CAAC;CACF;AAED,kBAAe,sBAAsB,CAAA"}
1
+ {"version":3,"file":"DynamoIndexDataStorage.js","sourceRoot":"","sources":["../../../../services/aws/dynamodb/DynamoIndexDataStorage.ts"],"names":[],"mappings":";;;;;AAEA,oFAA2D;AAC3D,mCAAuD;AAGvD,MAAe,sBACb,SAAQ,+BAA8B;IAGtC,YACE,SAAiB,EACE,SAAiB;QAEpC,KAAK,CAAC,SAAS,CAAC,CAAA;QAFG,cAAS,GAAT,SAAS,CAAQ;IAGtC,CAAC;IAEM,KAAK,CAAC,IAAI,CACf,KAA+B;;QAE/B,MAAM,SAAS,GAAG,oBAAY,CAAC,UAAU,CACvC,KAAK,EACL,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,SAAS,CACf,CAAA;QAED,MAAM,OAAO,GAAG,EAAE,CAAA;QAClB,IAAI,gBAAgB,CAAA;QAEpB,GAAG;YAED,MAAM,IAAI,GAA+B,MAAM,IAAI,CAAC,qBAAqB,CACvE,SAAS,EACT,gBAAgB,CACjB,CAAA;YAED,IAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,MAAM,EAAE;gBACtB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;aAC5B;YAED,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAA;SACzC,QAAQ,gBAAgB,EAAC;QAE1B,OAAO,OAA0B,CAAA;IACnC,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,KAA8C;QAE9C,MAAM,YAAY,GAAG;YACnB,GAAG,KAAK;YACR,KAAK,EAAE,CAAC;SACT,CAAA;QAED,MAAM,SAAS,GAAG,oBAAY,CAAC,UAAU,CACvC,YAAY,EACZ,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,SAAS,CACf,CAAA;QAGD,MAAM,OAAO,GACX,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAA;QAC7C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAa,CAAC,CAAC,CAAC,IAAI,CAAA;IAC7D,CAAC;CACF;AAED,kBAAe,sBAAsB,CAAA"}
@@ -1,4 +1,4 @@
1
1
  export { default as QueryParameters } from './query/QueryParameters';
2
2
  export { default as QueryWhereStatement } from './query/QueryWhereStatement';
3
- export { default as QueryBuilder } from './query/QueryBuilder';
3
+ export { default as QueryBuilder, QueryOperation } from './query/QueryBuilder';
4
4
  export { default as PrimaryKey } from './PrimaryKey';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../services/aws/dynamodb/utils/index.ts"],"names":[],"mappings":";;;;;;AAGA,qDAA8D;AAArD,6HAAA,OAAO,OAAgB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../services/aws/dynamodb/utils/index.ts"],"names":[],"mappings":";;;;;;AAGA,qDAA8E;AAArE,6HAAA,OAAO,OAAgB"}
@@ -1,5 +1,9 @@
1
1
  import { DynamoDB } from 'aws-sdk';
2
2
  import QueryParameters from './QueryParameters';
3
+ export interface QueryOperation {
4
+ operation: 'Query' | 'Scan';
5
+ query: DynamoDB.DocumentClient.QueryInput;
6
+ }
3
7
  declare class QueryBuilder {
4
8
  private static buildProjectionExpression;
5
9
  private static buildAttributeValues;
@@ -7,6 +11,6 @@ declare class QueryBuilder {
7
11
  private static buildQueryStatements;
8
12
  private static buildExpression;
9
13
  private static splitKeyAndFilterCondition;
10
- static buildQuery<TEntity>(query: QueryParameters<TEntity>, tableName: string, primaryKeys: Array<keyof TEntity>, indexName?: string): DynamoDB.DocumentClient.QueryInput;
14
+ static buildQuery<TEntity>(query: QueryParameters<TEntity>, tableName: string, primaryKeys: Array<keyof TEntity>, indexName?: string): QueryOperation;
11
15
  }
12
16
  export default QueryBuilder;
@@ -67,17 +67,21 @@ class QueryBuilder {
67
67
  static buildQuery(query, tableName, primaryKeys, indexName) {
68
68
  const { where, limit, select } = query;
69
69
  const { keyCondition, filterCondition } = this.splitKeyAndFilterCondition(where, primaryKeys);
70
+ const keyExpression = this.buildExpression(keyCondition);
70
71
  return {
71
- TableName: tableName,
72
- IndexName: indexName,
73
- Limit: limit,
74
- ProjectionExpression: select
75
- ? QueryBuilder.buildProjectionExpression(select)
76
- : undefined,
77
- KeyConditionExpression: this.buildExpression(keyCondition),
78
- FilterExpression: this.buildExpression(filterCondition),
79
- ExpressionAttributeNames: QueryBuilder.buildAttributeNames(where),
80
- ExpressionAttributeValues: this.buildAttributeValues(where),
72
+ operation: keyExpression ? 'Query' : 'Scan',
73
+ query: {
74
+ TableName: tableName,
75
+ IndexName: indexName,
76
+ Limit: limit,
77
+ ProjectionExpression: select
78
+ ? QueryBuilder.buildProjectionExpression(select)
79
+ : undefined,
80
+ KeyConditionExpression: keyExpression,
81
+ FilterExpression: this.buildExpression(filterCondition),
82
+ ExpressionAttributeNames: QueryBuilder.buildAttributeNames(where),
83
+ ExpressionAttributeValues: this.buildAttributeValues(where),
84
+ },
81
85
  };
82
86
  }
83
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../../../../services/aws/dynamodb/utils/query/QueryBuilder.ts"],"names":[],"mappings":";;;;;AAEA,iFAAwD;AAUxD,MAAM,YAAY;IACR,MAAM,CAAC,yBAAyB,CACtC,eAAqC;QAErC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YAC3B,OAAO,SAAS,CAAA;SACjB;QAED,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAEO,MAAM,CAAC,oBAAoB,CACjC,KAA+B;QAE/B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAW,EAAE,EAAE;YACvD,IAAK,KAAK,CAAC,GAAoB,CAAS,YAAY,wBAAc,EAAE;gBAClE,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAoB,CAAmB,CAAA;gBAC9D,MAAM,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAChD,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CACzB,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;oBACtB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK;iBAChD,CAAC,EACJ,EAAE,CACH,CAAA;gBAED,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,UAAU,EAAE,CAAA;aACpC;YAED,OAAO;gBACL,GAAG,MAAM;gBACT,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,GAAoB,CAAC;aACzC,CAAA;QACH,CAAC,EAAE,EAAE,CAAC,CAAA;IACR,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAChC,KAA+B;QAE/B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAC9B,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;YACrB,GAAG,IAAI;YACP,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,UAAU;SAC/B,CAAC,EACF,EAAE,CACH,CAAA;IACH,CAAC;IAEO,MAAM,CAAC,oBAAoB,CACjC,cAAwC;QAExC,OAAO,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC7C,IACG,cAAc,CAAC,GAAoB,CAAS,YAAY,wBAAc,EACvE;gBACA,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAoB,CAAmB,CAAA;gBACvE,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;aAC5B;YAED,OAAO,IAAI,GAAG,OAAO,GAAG,EAAE,CAAA;QAC5B,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,MAAM,CAAC,eAAe,CAC5B,cAAwC;QAExC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE;YACvC,OAAO,SAAS,CAAA;SACjB;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAA;QAE5D,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;IAEO,MAAM,CAAC,0BAA0B,CACvC,KAA+B,EAC/B,WAAiC;QAEjC,MAAM,YAAY,GAA6B,EAAE,CAAA;QACjD,MAAM,eAAe,GAA6B,EAAE,CAAA;QAEpD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjC,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAoB,CAAC,EAAE;gBAC9C,YAAY,CAAC,GAAoB,CAAC,GAAG,KAAK,CAAC,GAAoB,CAAC,CAAA;aACjE;iBAAM;gBACL,eAAe,CAAC,GAAoB,CAAC,GAAG,KAAK,CAAC,GAAoB,CAAC,CAAA;aACpE;QACH,CAAC,CAAC,CAAA;QAEF,OAAO;YACL,eAAe;YACf,YAAY;SACb,CAAA;IACH,CAAC;IAEM,MAAM,CAAC,UAAU,CACtB,KAA+B,EAC/B,SAAiB,EACjB,WAAiC,EACjC,SAAkB;QAElB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;QAEtC,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,0BAA0B,CACvE,KAAK,EACL,WAAW,CACZ,CAAA;QAED,OAAO;YACL,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,SAAS;YACpB,KAAK,EAAE,KAAK;YACZ,oBAAoB,EAAE,MAAM;gBAC1B,CAAC,CAAC,YAAY,CAAC,yBAAyB,CAAC,MAAM,CAAC;gBAChD,CAAC,CAAC,SAAS;YACb,sBAAsB,EAAE,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;YAC1D,gBAAgB,EAAE,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC;YACvD,wBAAwB,EAAE,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAE/D;YACD,yBAAyB,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;SAC5D,CAAA;IACH,CAAC;CACF;AAED,kBAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../../../../services/aws/dynamodb/utils/query/QueryBuilder.ts"],"names":[],"mappings":"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"}