@trunkrs/common 1.4.35 → 1.5.0

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.
@@ -0,0 +1,5 @@
1
+ import ErrorBase from './ErrorBase';
2
+ declare class OperationNotSupportedError extends ErrorBase {
3
+ constructor(message: string);
4
+ }
5
+ export default OperationNotSupportedError;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const ErrorBase_1 = __importDefault(require("./ErrorBase"));
7
+ class OperationNotSupportedError extends ErrorBase_1.default {
8
+ constructor(message) {
9
+ super();
10
+ this.name = 'OperationNotSupportedError';
11
+ this.message = message;
12
+ Error.captureStackTrace(this);
13
+ }
14
+ }
15
+ exports.default = OperationNotSupportedError;
16
+ //# sourceMappingURL=OperationNotSupportedError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OperationNotSupportedError.js","sourceRoot":"","sources":["../../../models/errors/OperationNotSupportedError.ts"],"names":[],"mappings":";;;;;AAAA,4DAAmC;AAEnC,MAAM,0BAA2B,SAAQ,mBAAS;IAChD,YAAmB,OAAe;QAChC,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAA;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QAEtB,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;CACF;AAED,kBAAe,0BAA0B,CAAA"}
@@ -3,3 +3,4 @@ export { default as OAuthClientError } from './OAuthClientError';
3
3
  export { default as HttpRequestError } from './HttpRequestError';
4
4
  export { default as OAuthExchangeFailedError } from './OAuthExchangeFailedError';
5
5
  export { default as CoreServicesRequestFailedError } from './CoreServicesRequestFailedError';
6
+ export { default as OperationNotSupportedError } from './OperationNotSupportedError';
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.CoreServicesRequestFailedError = exports.OAuthExchangeFailedError = exports.HttpRequestError = exports.OAuthClientError = exports.ErrorBase = void 0;
6
+ exports.OperationNotSupportedError = exports.CoreServicesRequestFailedError = exports.OAuthExchangeFailedError = exports.HttpRequestError = exports.OAuthClientError = exports.ErrorBase = void 0;
7
7
  var ErrorBase_1 = require("./ErrorBase");
8
8
  Object.defineProperty(exports, "ErrorBase", { enumerable: true, get: function () { return __importDefault(ErrorBase_1).default; } });
9
9
  var OAuthClientError_1 = require("./OAuthClientError");
@@ -14,4 +14,6 @@ var OAuthExchangeFailedError_1 = require("./OAuthExchangeFailedError");
14
14
  Object.defineProperty(exports, "OAuthExchangeFailedError", { enumerable: true, get: function () { return __importDefault(OAuthExchangeFailedError_1).default; } });
15
15
  var CoreServicesRequestFailedError_1 = require("./CoreServicesRequestFailedError");
16
16
  Object.defineProperty(exports, "CoreServicesRequestFailedError", { enumerable: true, get: function () { return __importDefault(CoreServicesRequestFailedError_1).default; } });
17
+ var OperationNotSupportedError_1 = require("./OperationNotSupportedError");
18
+ Object.defineProperty(exports, "OperationNotSupportedError", { enumerable: true, get: function () { return __importDefault(OperationNotSupportedError_1).default; } });
17
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../models/errors/index.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAkD;AAAzC,uHAAA,OAAO,OAAa;AAC7B,uDAAgE;AAAvD,qIAAA,OAAO,OAAoB;AACpC,uDAAgE;AAAvD,qIAAA,OAAO,OAAoB;AACpC,uEAAgF;AAAvE,qJAAA,OAAO,OAA4B;AAC5C,mFAA4F;AAAnF,iKAAA,OAAO,OAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../models/errors/index.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAkD;AAAzC,uHAAA,OAAO,OAAa;AAC7B,uDAAgE;AAAvD,qIAAA,OAAO,OAAoB;AACpC,uDAAgE;AAAvD,qIAAA,OAAO,OAAoB;AACpC,uEAAgF;AAAvE,qJAAA,OAAO,OAA4B;AAC5C,mFAA4F;AAAnF,iKAAA,OAAO,OAAkC;AAClD,2EAAoF;AAA3E,yJAAA,OAAO,OAA8B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trunkrs/common",
3
- "version": "1.4.35",
3
+ "version": "1.5.0",
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,14 +1,10 @@
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';
1
+ import { DynamoDB } from 'aws-sdk';
6
2
  declare abstract class BaseDynamoDataStorage<TEntity> {
7
3
  protected readonly tableName: string;
8
4
  protected abstract readonly keys: Array<keyof TEntity>;
9
5
  protected readonly documentClient: DynamoDB.DocumentClient;
10
6
  protected constructor(tableName: string);
11
- protected executeQueryOperation({ operation, query }: QueryOperation, lastKey?: Key): Promise<PromiseResult<DocumentClient.QueryOutput, AWSError>>;
7
+ protected executeOperation<TResultEntity = TEntity>(operation: 'Scan' | 'Query', query: DynamoDB.DocumentClient.ScanInput): Promise<TResultEntity[]>;
12
8
  protected getKeyPairFromModel(model: TEntity): Partial<TEntity>;
13
9
  }
14
10
  export default BaseDynamoDataStorage;
@@ -6,14 +6,24 @@ 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();
9
+ async executeOperation(operation, query) {
10
+ var _a;
11
+ const results = [];
12
+ let lastEvaluatedKey;
13
+ do {
14
+ const page = operation
15
+ ? await this.documentClient
16
+ .scan({ ...query, ExclusiveStartKey: lastEvaluatedKey })
17
+ .promise()
18
+ : await this.documentClient
19
+ .query({ ...query, ExclusiveStartKey: lastEvaluatedKey })
20
+ .promise();
21
+ if ((_a = page.Items) === null || _a === void 0 ? void 0 : _a.length) {
22
+ results.push(...page.Items);
23
+ }
24
+ lastEvaluatedKey = page.LastEvaluatedKey;
25
+ } while (lastEvaluatedKey);
26
+ return results;
17
27
  }
18
28
  getKeyPairFromModel(model) {
19
29
  const keyDictionary = {};
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"BaseDynamoDataStorage.js","sourceRoot":"","sources":["../../../../services/aws/dynamodb/BaseDynamoDataStorage.ts"],"names":[],"mappings":";;AACA,qCAAkC;AAGlC,MAAe,qBAAqB;IAKlC,YAAyC,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;QACxD,IAAI,CAAC,cAAc,GAAG,IAAI,kBAAQ,CAAC,cAAc,EAAE,CAAA;IACrD,CAAC;IAES,KAAK,CAAC,gBAAgB,CAC9B,SAA2B,EAC3B,KAAwC;;QAExC,MAAM,OAAO,GAAG,EAAE,CAAA;QAClB,IAAI,gBAAgB,CAAA;QAEpB,GAAG;YACD,MAAM,IAAI,GAA+B,SAAS;gBAChD,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc;qBACtB,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;qBACvD,OAAO,EAAE;gBACd,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc;qBACtB,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;qBACxD,OAAO,EAAE,CAAA;YAEhB,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;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"}
@@ -7,7 +7,8 @@ const ErrorBase_1 = __importDefault(require("../../../models/errors/ErrorBase"))
7
7
  class BatchSizeTooBigError extends ErrorBase_1.default {
8
8
  constructor() {
9
9
  super();
10
- this.message = 'BatchSizes cannot be bigger than 24 with dynamodb write actions';
10
+ this.message =
11
+ 'BatchSizes cannot be bigger than 24 with dynamodb write actions';
11
12
  }
12
13
  }
13
14
  exports.default = BatchSizeTooBigError;
@@ -1 +1 @@
1
- {"version":3,"file":"BatchSizeTooBigError.js","sourceRoot":"","sources":["../../../../services/aws/dynamodb/BatchSizeTooBigError.ts"],"names":[],"mappings":";;;;;AAAA,iFAAwD;AAExD,MAAM,oBAAqB,SAAQ,mBAAS;IAC1C;QACE,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,OAAO,GAAG,iEAAiE,CAAA;IAClF,CAAC;CACF;AAED,kBAAe,oBAAoB,CAAA"}
1
+ {"version":3,"file":"BatchSizeTooBigError.js","sourceRoot":"","sources":["../../../../services/aws/dynamodb/BatchSizeTooBigError.ts"],"names":[],"mappings":";;;;;AAAA,iFAAwD;AAExD,MAAM,oBAAqB,SAAQ,mBAAS;IAC1C;QACE,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,OAAO;YACV,iEAAiE,CAAA;IACrE,CAAC;CACF;AAED,kBAAe,oBAAoB,CAAA"}
@@ -63,27 +63,22 @@ class DynamoDataStorage extends BaseDynamoDataStorage_1.default {
63
63
  }, []);
64
64
  }
65
65
  async find(query) {
66
- var _a;
67
- const operation = utils_1.QueryBuilder.buildQuery(query, this.tableName, this.keys);
68
- const results = [];
69
- let lastEvaluatedKey;
70
- do {
71
- const page = await this.executeQueryOperation(operation, lastEvaluatedKey);
72
- if ((_a = page.Items) === null || _a === void 0 ? void 0 : _a.length) {
73
- results.push(...page.Items);
74
- }
75
- lastEvaluatedKey = page.LastEvaluatedKey;
76
- } while (lastEvaluatedKey);
77
- return results;
66
+ var _a, _b;
67
+ const queryOp = (_b = (_a = query.queryOptions) === null || _a === void 0 ? void 0 : _a.operation) !== null && _b !== void 0 ? _b : 'Query';
68
+ const builderParams = { query, tableName: this.tableName, primaryKeys: this.keys };
69
+ const ddbQuery = queryOp === 'Scan'
70
+ ? utils_1.QueryBuilder.buildScan(builderParams)
71
+ : utils_1.QueryBuilder.buildQuery(builderParams);
72
+ const result = await this.executeOperation(queryOp, ddbQuery);
73
+ return result;
78
74
  }
79
75
  async findOne(query) {
80
76
  const limitedQuery = {
81
77
  ...query,
82
78
  limit: 1,
83
79
  };
84
- const operation = utils_1.QueryBuilder.buildQuery(limitedQuery, this.tableName, this.keys);
85
- const results = await this.executeQueryOperation(operation);
86
- return results.Items ? results.Items[0] : null;
80
+ const [result] = await this.find(limitedQuery);
81
+ return result !== null && result !== void 0 ? result : null;
87
82
  }
88
83
  async remove(entity) {
89
84
  const keyPair = this.getKeyPairFromModel(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,27 +11,27 @@ class DynamoIndexDataStorage extends BaseDynamoDataStorage_1.default {
11
11
  this.indexName = indexName;
12
12
  }
13
13
  async find(query) {
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;
14
+ var _a, _b;
15
+ const queryOp = (_b = (_a = query.queryOptions) === null || _a === void 0 ? void 0 : _a.operation) !== null && _b !== void 0 ? _b : 'Query';
16
+ const builderParams = {
17
+ query,
18
+ tableName: this.tableName,
19
+ primaryKeys: this.keys,
20
+ indexName: this.indexName,
21
+ };
22
+ const ddbQuery = queryOp === 'Scan'
23
+ ? utils_1.QueryBuilder.buildScan(builderParams)
24
+ : utils_1.QueryBuilder.buildQuery(builderParams);
25
+ const result = await this.executeOperation(queryOp, ddbQuery);
26
+ return result;
26
27
  }
27
28
  async findOne(query) {
28
29
  const limitedQuery = {
29
30
  ...query,
30
31
  limit: 1,
31
32
  };
32
- const operation = utils_1.QueryBuilder.buildQuery(limitedQuery, this.tableName, this.keys, this.indexName);
33
- const results = await this.executeQueryOperation(operation);
34
- return results.Items ? results.Items[0] : null;
33
+ const [result] = await this.find(limitedQuery);
34
+ return result !== null && result !== void 0 ? result : null;
35
35
  }
36
36
  }
37
37
  exports.default = DynamoIndexDataStorage;
@@ -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,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
+ {"version":3,"file":"DynamoIndexDataStorage.js","sourceRoot":"","sources":["../../../../services/aws/dynamodb/DynamoIndexDataStorage.ts"],"names":[],"mappings":";;;;;AAAA,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,OAAO,GAAG,MAAA,MAAA,KAAK,CAAC,YAAY,0CAAE,SAAS,mCAAI,OAAO,CAAA;QACxD,MAAM,aAAa,GAAG;YACpB,KAAK;YACL,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,IAAI;YACtB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAA;QAED,MAAM,QAAQ,GACZ,OAAO,KAAK,MAAM;YAChB,CAAC,CAAC,oBAAY,CAAC,SAAS,CAAC,aAAa,CAAC;YACvC,CAAC,CAAC,oBAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;QAE5C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACxC,OAAO,EACP,QAAQ,CACT,CAAA;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,KAA8C;QAE9C,MAAM,YAAY,GAAG;YACnB,GAAG,KAAK;YACR,KAAK,EAAE,CAAC;SACT,CAAA;QAED,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAC9C,OAAO,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI,CAAA;IACvB,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, QueryOperation } from './query/QueryBuilder';
3
+ export { default as QueryBuilder } 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,qDAA8E;AAArE,6HAAA,OAAO,OAAgB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../services/aws/dynamodb/utils/index.ts"],"names":[],"mappings":";;;;;;AAGA,qDAA8D;AAArD,6HAAA,OAAO,OAAgB"}
@@ -1,8 +1,10 @@
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;
3
+ export interface QueryBuilderParams<TEntity> {
4
+ query: QueryParameters<TEntity>;
5
+ tableName: string;
6
+ primaryKeys: Array<keyof TEntity>;
7
+ indexName?: string;
6
8
  }
7
9
  declare class QueryBuilder {
8
10
  private static buildProjectionExpression;
@@ -11,6 +13,7 @@ declare class QueryBuilder {
11
13
  private static buildQueryStatements;
12
14
  private static buildExpression;
13
15
  private static splitKeyAndFilterCondition;
14
- static buildQuery<TEntity>(query: QueryParameters<TEntity>, tableName: string, primaryKeys: Array<keyof TEntity>, indexName?: string): QueryOperation;
16
+ static buildScan<TEntity>({ query, tableName, indexName, }: QueryBuilderParams<TEntity>): DynamoDB.DocumentClient.ScanInput;
17
+ static buildQuery<TEntity>({ query, primaryKeys, tableName, indexName, }: QueryBuilderParams<TEntity>): DynamoDB.DocumentClient.QueryInput;
15
18
  }
16
19
  export default QueryBuilder;
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const DynamoOperator_1 = __importDefault(require("../operators/DynamoOperator"));
7
+ const errors_1 = require("../../../../../models/errors");
7
8
  class QueryBuilder {
8
9
  static buildProjectionExpression(selectStatement) {
9
10
  if (!selectStatement.length) {
@@ -64,24 +65,39 @@ class QueryBuilder {
64
65
  keyCondition,
65
66
  };
66
67
  }
67
- static buildQuery(query, tableName, primaryKeys, indexName) {
68
- const { where, limit, select } = query;
68
+ static buildScan({ query, tableName, indexName, }) {
69
+ const { where, limit, select, orderDescending } = query;
70
+ if (orderDescending) {
71
+ throw new errors_1.OperationNotSupportedError(`Descending order can't be enforced when using a Scan operation as no index is being evaluated. If descending order is important to the evaluation, please consider using a Query operation instead.`);
72
+ }
73
+ const op = {
74
+ TableName: tableName,
75
+ IndexName: indexName,
76
+ Limit: limit,
77
+ ProjectionExpression: select
78
+ ? QueryBuilder.buildProjectionExpression(select)
79
+ : undefined,
80
+ FilterExpression: this.buildExpression(where),
81
+ ExpressionAttributeNames: QueryBuilder.buildAttributeNames(where),
82
+ ExpressionAttributeValues: this.buildAttributeValues(where),
83
+ };
84
+ return op;
85
+ }
86
+ static buildQuery({ query, primaryKeys, tableName, indexName, }) {
87
+ const { where, limit, select, orderDescending } = query;
69
88
  const { keyCondition, filterCondition } = this.splitKeyAndFilterCondition(where, primaryKeys);
70
- const keyExpression = this.buildExpression(keyCondition);
71
89
  const op = {
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
- },
90
+ TableName: tableName,
91
+ IndexName: indexName,
92
+ Limit: limit,
93
+ ScanIndexForward: !orderDescending,
94
+ ProjectionExpression: select
95
+ ? QueryBuilder.buildProjectionExpression(select)
96
+ : undefined,
97
+ KeyConditionExpression: this.buildExpression(keyCondition),
98
+ FilterExpression: this.buildExpression(filterCondition),
99
+ ExpressionAttributeNames: QueryBuilder.buildAttributeNames(where),
100
+ ExpressionAttributeValues: this.buildAttributeValues(where),
85
101
  };
86
102
  console.log('Execution ddb operation', op);
87
103
  return op;
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../../../../services/aws/dynamodb/utils/query/QueryBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../../../../services/aws/dynamodb/utils/query/QueryBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,11 @@
1
1
  import WhereParameters from './QueryWhereStatement';
2
2
  interface QueryParameters<TEntity> {
3
+ queryOptions?: {
4
+ operation?: 'Scan' | 'Query';
5
+ };
3
6
  where: WhereParameters<TEntity>;
4
7
  select?: Array<keyof TEntity>;
5
8
  limit?: number;
9
+ orderDescending?: boolean;
6
10
  }
7
11
  export default QueryParameters;