@trunkrs/common 1.4.34 → 1.5.2

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.34",
3
+ "version": "1.5.2",
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 === 'Scan'
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,GACR,SAAS,KAAK,MAAM;gBAClB,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;YAElB,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;
@@ -39,7 +39,7 @@ class HttpControllerFactory {
39
39
  action: actionKey,
40
40
  params: [],
41
41
  };
42
- descriptor === null || descriptor === void 0 ? void 0 : descriptor.params.push({ source, parameterKey });
42
+ descriptor === null || descriptor === void 0 ? void 0 : descriptor.params.unshift({ source, parameterKey });
43
43
  __classPrivateFieldGet(HttpControllerFactory, _a, "f", _HttpControllerFactory_httpActionByController).set(actionIndexKey, descriptor);
44
44
  }
45
45
  static getParamSource(source, input) {
@@ -64,6 +64,8 @@ class HttpControllerFactory {
64
64
  throw new handlers_1.NoEventHandlerSetError();
65
65
  }
66
66
  const controller = ControllerFactory_1.default.provide(descriptor.controller);
67
+ console.log('Action descriptor', descriptor);
68
+ console.log('Action input', input);
67
69
  const params = descriptor.params.map(({ source, parameterKey }) => {
68
70
  const paramSource = HttpControllerFactory.getParamSource(source, input);
69
71
  return parameterKey ? (paramSource !== null && paramSource !== void 0 ? paramSource : {})[parameterKey] : paramSource;
@@ -1 +1 @@
1
- {"version":3,"file":"HttpControllerFactory.js","sourceRoot":"","sources":["../../../utils/controllers/HttpControllerFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpControllerFactory.js","sourceRoot":"","sources":["../../../utils/controllers/HttpControllerFactory.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,gFAAuD;AACvD,2DAAqE;AAErE,4EAAmD;AAuBnD,MAAM,qBAAqB;IAYlB,MAAM,CAAC,cAAc,CAC1B,UAAe,EACf,MAAuB,EACvB,UAAsB,EACtB,KAAa;;QAEb,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QAEnE,MAAM,SAAS,GAAG,GAAG,UAAU,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAA;QACxD,MAAM,aAAa,GAAG;YACpB,GAAG,CAAC,MAAA,uBAAA,qBAAqB,yDAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,mCAAI;gBAClE,MAAM,EAAE,EAAE;aACX,CAAC;YACF,UAAU;YACV,MAAM;YACN,UAAU;YACV,KAAK;SACN,CAAA;QAED,uBAAA,qBAAqB,oDAAmB,CAAC,GAAG,CAC1C,GAAG,UAAU,IAAI,QAAQ,EAAE,EAC3B,aAAa,CACd,CAAA;QACD,uBAAA,qBAAqB,yDAAwB,CAAC,GAAG,CAC/C,GAAG,UAAU,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,EACtC,aAAa,CACd,CAAA;IACH,CAAC;IASM,MAAM,CAAC,uBAAuB,CACnC,UAAe,EACf,SAA0B,EAC1B,MAAmB,EACnB,YAAqB;;QAErB,MAAM,cAAc,GAAG,GAAG,UAAU,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAA;QAChE,MAAM,UAAU,GAAG,MAAA,uBAAA,qBAAqB,yDAAwB,CAAC,GAAG,CAClE,cAAc,CACf,mCAAI;YACH,UAAU;YACV,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAA2B;SACpC,CAAA;QAGD,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;QAEpD,uBAAA,qBAAqB,yDAAwB,CAAC,GAAG,CAC/C,cAAc,EACd,UAAU,CACX,CAAA;IACH,CAAC;IAEO,MAAM,CAAC,cAAc,CAC3B,MAAmB,EACnB,KAA2B;QAE3B,QAAQ,MAAM,EAAE;YACd,KAAK,qBAAW,CAAC,IAAI;gBACnB,OAAO,KAAK,CAAC,IAAI,CAAA;YACnB,KAAK,qBAAW,CAAC,KAAK;gBACpB,OAAO,KAAK,CAAC,KAAK,CAAA;YACpB,KAAK,qBAAW,CAAC,KAAK;gBACpB,OAAO,KAAK,CAAC,KAAK,CAAA;YACpB,KAAK,qBAAW,CAAC,OAAO;gBACtB,OAAO,KAAK,CAAC,OAAO,CAAA;YACtB,KAAK,qBAAW,CAAC,OAAO;gBACtB,OAAO,KAAK,CAAC,OAAO,CAAA;YACtB;gBACE,OAAO,IAAI,CAAA;SACd;IACH,CAAC;IAQM,MAAM,CAAC,aAAa,CACzB,MAAkB,EAClB,KAAa,EACb,KAA2B;QAE3B,MAAM,UAAU,GAAG,uBAAA,qBAAqB,oDAAmB,CAAC,GAAG,CAC7D,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,KAAK,EAAE,CACnC,CAAA;QAED,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,IAAI,iCAAsB,EAAE,CAAA;SACnC;QAED,MAAM,UAAU,GAAG,2BAAiB,CAAC,OAAO,CAAM,UAAU,CAAC,UAAU,CAAC,CAAA;QAExE,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAA;QAC5C,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;QAElC,MAAM,MAAM,GAAc,UAAU,CAAC,MAAM,CAAC,GAAG,CAC7C,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE;YAC3B,MAAM,WAAW,GAAG,qBAAqB,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;YACvE,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAA;QACvE,CAAC,CACF,CAAA;QAGD,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IAChE,CAAC;;;AA7HD,oDAA4B,IAAI,GAAG,EAAgC,EAAA,CAAA;AAEnE,yDAAiC,IAAI,GAAG,EAAgC,EAAA,CAAA;AA8H1E,kBAAe,qBAAqB,CAAA"}