@trunkrs/common 1.4.4 → 1.4.9

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.4",
3
+ "version": "1.4.9",
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,18 +67,24 @@ 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
- 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),
70
+ const keyExpression = this.buildExpression(keyCondition);
71
+ 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
+ },
81
85
  };
86
+ console.log('Execution ddb operation', op);
87
+ return op;
82
88
  }
83
89
  }
84
90
  exports.default = QueryBuilder;
@@ -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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"}
@@ -0,0 +1,18 @@
1
+ import { Serializer } from '../serialization';
2
+ import Cache from './Cache';
3
+ declare class S3Cache extends Cache {
4
+ private readonly serializer;
5
+ private readonly bucketArn;
6
+ private readonly keyPrefix;
7
+ private readonly expirationTagName;
8
+ private readonly s3Client;
9
+ constructor(serializer: Serializer, bucketArn: string, keyPrefix?: string, stalenessTimeout?: number);
10
+ private getFullKey;
11
+ hasKey(key: string): Promise<boolean>;
12
+ add<TValue>(key: string, value: TValue): Promise<void>;
13
+ get<TValue>(key: string): Promise<TValue | null>;
14
+ getOrAdd<TValue>(key: string, factory: () => Promise<TValue>): Promise<TValue>;
15
+ remove(key: string): Promise<void>;
16
+ clear(): Promise<void>;
17
+ }
18
+ export default S3Cache;
@@ -0,0 +1,114 @@
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 aws_sdk_1 = require("aws-sdk");
7
+ const Cache_1 = __importDefault(require("./Cache"));
8
+ class S3Cache extends Cache_1.default {
9
+ constructor(serializer, bucketArn, keyPrefix = 'cached', stalenessTimeout = 0) {
10
+ super(stalenessTimeout);
11
+ this.serializer = serializer;
12
+ this.bucketArn = bucketArn;
13
+ this.keyPrefix = keyPrefix;
14
+ this.expirationTagName = 'CacheExpiration';
15
+ this.s3Client = new aws_sdk_1.S3();
16
+ }
17
+ getFullKey(key) {
18
+ return `${this.keyPrefix}/${key}`;
19
+ }
20
+ async hasKey(key) {
21
+ try {
22
+ const meta = await this.s3Client
23
+ .headObject({
24
+ Bucket: this.bucketArn,
25
+ Key: this.getFullKey(key),
26
+ })
27
+ .promise();
28
+ const { [this.expirationTagName]: expiration } = meta.Metadata;
29
+ return this.isValidItem({
30
+ expiration: new Date(expiration),
31
+ });
32
+ }
33
+ catch (error) {
34
+ const s3Error = error;
35
+ if (s3Error.statusCode === 404) {
36
+ return false;
37
+ }
38
+ throw error;
39
+ }
40
+ }
41
+ async add(key, value) {
42
+ const cacheItem = this.createItem(value);
43
+ await this.s3Client
44
+ .putObject({
45
+ Bucket: this.bucketArn,
46
+ Key: this.getFullKey(key),
47
+ Body: this.serializer.serialize(value, 'string'),
48
+ Metadata: {
49
+ [this.expirationTagName]: String(Number(cacheItem.expiration)),
50
+ },
51
+ })
52
+ .promise();
53
+ }
54
+ async get(key) {
55
+ const isValid = await this.hasKey(key);
56
+ if (!isValid) {
57
+ return null;
58
+ }
59
+ const object = await this.s3Client
60
+ .getObject({
61
+ Bucket: this.bucketArn,
62
+ Key: this.getFullKey(key),
63
+ })
64
+ .promise();
65
+ return this.serializer.deserialize(object.Body);
66
+ }
67
+ async getOrAdd(key, factory) {
68
+ const value = await this.get(key);
69
+ if (value) {
70
+ return value;
71
+ }
72
+ const newValue = await factory();
73
+ await this.add(key, newValue);
74
+ return newValue;
75
+ }
76
+ async remove(key) {
77
+ try {
78
+ await this.s3Client
79
+ .deleteObject({
80
+ Bucket: this.bucketArn,
81
+ Key: this.getFullKey(key),
82
+ })
83
+ .promise();
84
+ }
85
+ catch (error) {
86
+ const s3Error = error;
87
+ if (s3Error.statusCode !== 404) {
88
+ throw error;
89
+ }
90
+ }
91
+ }
92
+ async clear() {
93
+ const bucketItems = await this.s3Client
94
+ .listObjectsV2({
95
+ Bucket: this.bucketArn,
96
+ })
97
+ .promise();
98
+ if (!bucketItems.Contents || !bucketItems.Contents.length) {
99
+ return;
100
+ }
101
+ await this.s3Client
102
+ .deleteObjects({
103
+ Bucket: this.bucketArn,
104
+ Delete: {
105
+ Objects: bucketItems.Contents.map((bucketObject) => ({
106
+ Key: bucketObject.Key,
107
+ })),
108
+ },
109
+ })
110
+ .promise();
111
+ }
112
+ }
113
+ exports.default = S3Cache;
114
+ //# sourceMappingURL=S3Cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S3Cache.js","sourceRoot":"","sources":["../../../utils/caching/S3Cache.ts"],"names":[],"mappings":"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"}
@@ -3,3 +3,4 @@ export { default as FileCache } from './FileCache';
3
3
  export { default as GlobalAtomicCache } from './GlobalAtomicCache';
4
4
  export { default as MemoryCache } from './MemoryCache';
5
5
  export { default as SecretCache } from './SecretCache';
6
+ export { default as S3Cache } from './S3Cache';
@@ -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.SecretCache = exports.MemoryCache = exports.GlobalAtomicCache = exports.FileCache = exports.Cache = void 0;
6
+ exports.S3Cache = exports.SecretCache = exports.MemoryCache = exports.GlobalAtomicCache = exports.FileCache = exports.Cache = void 0;
7
7
  var Cache_1 = require("./Cache");
8
8
  Object.defineProperty(exports, "Cache", { enumerable: true, get: function () { return __importDefault(Cache_1).default; } });
9
9
  var FileCache_1 = require("./FileCache");
@@ -14,4 +14,6 @@ var MemoryCache_1 = require("./MemoryCache");
14
14
  Object.defineProperty(exports, "MemoryCache", { enumerable: true, get: function () { return __importDefault(MemoryCache_1).default; } });
15
15
  var SecretCache_1 = require("./SecretCache");
16
16
  Object.defineProperty(exports, "SecretCache", { enumerable: true, get: function () { return __importDefault(SecretCache_1).default; } });
17
+ var S3Cache_1 = require("./S3Cache");
18
+ Object.defineProperty(exports, "S3Cache", { enumerable: true, get: function () { return __importDefault(S3Cache_1).default; } });
17
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utils/caching/index.ts"],"names":[],"mappings":";;;;;;AAAA,iCAA0C;AAAjC,+GAAA,OAAO,OAAS;AAEzB,yCAAkD;AAAzC,uHAAA,OAAO,OAAa;AAC7B,yDAAkE;AAAzD,uIAAA,OAAO,OAAqB;AACrC,6CAAsD;AAA7C,2HAAA,OAAO,OAAe;AAC/B,6CAAsD;AAA7C,2HAAA,OAAO,OAAe"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utils/caching/index.ts"],"names":[],"mappings":";;;;;;AAAA,iCAA0C;AAAjC,+GAAA,OAAO,OAAS;AAEzB,yCAAkD;AAAzC,uHAAA,OAAO,OAAa;AAC7B,yDAAkE;AAAzD,uIAAA,OAAO,OAAqB;AACrC,6CAAsD;AAA7C,2HAAA,OAAO,OAAe;AAC/B,6CAAsD;AAA7C,2HAAA,OAAO,OAAe;AAC/B,qCAA8C;AAArC,mHAAA,OAAO,OAAW"}
@@ -64,13 +64,10 @@ class HttpControllerFactory {
64
64
  throw new handlers_1.NoEventHandlerSetError();
65
65
  }
66
66
  const controller = ControllerFactory_1.default.provide(descriptor.controller);
67
- console.log('Route input: ', input);
68
- console.log('Route param descriptor: ', descriptor.params);
69
67
  const params = descriptor.params.map(({ source, parameterKey }) => {
70
68
  const paramSource = HttpControllerFactory.getParamSource(source, input);
71
69
  return parameterKey ? (paramSource !== null && paramSource !== void 0 ? paramSource : {})[parameterKey] : paramSource;
72
70
  });
73
- console.log('Route params: ', params);
74
71
  return controller[descriptor.action].apply(controller, params);
75
72
  }
76
73
  }
@@ -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":"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"}
@@ -106,12 +106,12 @@ class HttpHandlerBuilder {
106
106
  async proxyEventToActionInput(event) {
107
107
  const middlewareContext = await this.executeMiddleWare(event);
108
108
  let input = {};
109
- if (__classPrivateFieldGet(this, _HttpHandlerBuilder_useBodyInput, "f") && event.body) {
110
- input = this.serializer.deserialize(event.body);
111
- }
112
109
  if (__classPrivateFieldGet(this, _HttpHandlerBuilder_useQueryInput, "f")) {
113
110
  input = (0, qs_1.parse)(event.rawQueryString);
114
111
  }
112
+ else if (event.body) {
113
+ input = this.serializer.deserialize(event.body);
114
+ }
115
115
  if (__classPrivateFieldGet(this, _HttpHandlerBuilder_schema, "f")) {
116
116
  input = await HttpHandlerBuilder.validateSchema(__classPrivateFieldGet(this, _HttpHandlerBuilder_schema, "f"), middlewareContext, input);
117
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../utils/handlers/HttpHandlerBuilder/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../utils/handlers/HttpHandlerBuilder/index.ts"],"names":[],"mappings":"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"}