@aligent/microservice-util-lib 0.2.1 → 1.0.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,12 @@
1
+ /**
2
+ * Get the AWS ID from its resource ARN
3
+ * @param resourceArn the ARN of the AWS resource
4
+ * @returns the ID (if present in the ARN) of the AWS resource/execution
5
+ * @throws when the provided ARN is empty
6
+ * @example
7
+ * ```ts
8
+ * getAwsIdFromArn('arn:aws:states:ap-southeast-2:123123123:execution:prj-int-entity-ac-dc-dev-machine-name:this-is-the-id')
9
+ * ```
10
+ */
11
+ declare const getAwsIdFromArn: (resourceArn: string) => string;
12
+ export default getAwsIdFromArn;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Get the AWS ID from its resource ARN
5
+ * @param resourceArn the ARN of the AWS resource
6
+ * @returns the ID (if present in the ARN) of the AWS resource/execution
7
+ * @throws when the provided ARN is empty
8
+ * @example
9
+ * ```ts
10
+ * getAwsIdFromArn('arn:aws:states:ap-southeast-2:123123123:execution:prj-int-entity-ac-dc-dev-machine-name:this-is-the-id')
11
+ * ```
12
+ */
13
+ var getAwsIdFromArn = function (resourceArn) {
14
+ if (resourceArn.length === 0) {
15
+ throw new Error('Received an empty resourceArn, unable to get an ID.');
16
+ }
17
+ var startIdx = resourceArn.lastIndexOf(':') + 1;
18
+ return resourceArn.substring(startIdx);
19
+ };
20
+ exports.default = getAwsIdFromArn;
21
+ //# sourceMappingURL=getAwsIdFromArn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAwsIdFromArn.js","sourceRoot":"","sources":["../../src/getAwsIdFromArn/getAwsIdFromArn.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;GASG;AACH,IAAM,eAAe,GAAG,UAAC,WAAmB;IAC1C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;KACxE;IACD,IAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClD,OAAO,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC,CAAC;AACF,kBAAe,eAAe,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,20 @@
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
+ var getAwsIdFromArn_1 = __importDefault(require("./getAwsIdFromArn"));
7
+ describe('getAWsIdFromArn', function () {
8
+ it('should return the short execution ID when given a valid ARN', function () {
9
+ expect((0, getAwsIdFromArn_1.default)('arn:aws:states:ap-southeast-2:123123123:execution:prj-int-entity-ac-dc-dev-machine-name:this-is-the-id')).toEqual('this-is-the-id');
10
+ });
11
+ it('should throw an error when an empty string is given', function () {
12
+ expect(function () {
13
+ (0, getAwsIdFromArn_1.default)('');
14
+ }).toThrowError('Received an empty resourceArn, unable to get an ID.');
15
+ });
16
+ it('returns the provided string where it is assumed to be already a short ID', function () {
17
+ expect((0, getAwsIdFromArn_1.default)('my-execution')).toEqual('my-execution');
18
+ });
19
+ });
20
+ //# sourceMappingURL=getAwsIdFromArn.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAwsIdFromArn.test.js","sourceRoot":"","sources":["../../src/getAwsIdFromArn/getAwsIdFromArn.test.ts"],"names":[],"mappings":";;;;;AAAA,sEAAgD;AAEhD,QAAQ,CAAC,iBAAiB,EAAE;IAC1B,EAAE,CAAC,6DAA6D,EAAE;QAChE,MAAM,CACJ,IAAA,yBAAe,EACb,wGAAwG,CACzG,CACF,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE;QACxD,MAAM,CAAC;YACL,IAAA,yBAAe,EAAC,EAAE,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC,YAAY,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAC3E;QACE,MAAM,CAAC,IAAA,yBAAe,EAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -4,4 +4,5 @@ import retryWrapper, { RetryConfig } from './retryWrapper/retryWrapper';
4
4
  import fetchSsmParams from './fetchSsmParams/fetchSsmParams';
5
5
  import S3Dao from './s3/s3';
6
6
  import hasDefinedProperties from './hasPropertiesDefined/hasPropertiesDefined';
7
- export { chunkBy, remap, Remap, ObjectMap, retryWrapper, RetryConfig, fetchSsmParams, S3Dao, hasDefinedProperties };
7
+ import getAwsIdFromArn from './getAwsIdFromArn/getAwsIdFromArn';
8
+ export { chunkBy, remap, Remap, ObjectMap, retryWrapper, RetryConfig, fetchSsmParams, S3Dao, hasDefinedProperties, getAwsIdFromArn };
package/dist/index.js CHANGED
@@ -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.hasDefinedProperties = exports.S3Dao = exports.fetchSsmParams = exports.retryWrapper = exports.remap = exports.chunkBy = void 0;
6
+ exports.getAwsIdFromArn = exports.hasDefinedProperties = exports.S3Dao = exports.fetchSsmParams = exports.retryWrapper = exports.remap = exports.chunkBy = void 0;
7
7
  var chunkBy_1 = __importDefault(require("./chunkBy/chunkBy"));
8
8
  exports.chunkBy = chunkBy_1.default;
9
9
  var remap_1 = __importDefault(require("./remap/remap"));
@@ -16,4 +16,6 @@ var s3_1 = __importDefault(require("./s3/s3"));
16
16
  exports.S3Dao = s3_1.default;
17
17
  var hasPropertiesDefined_1 = __importDefault(require("./hasPropertiesDefined/hasPropertiesDefined"));
18
18
  exports.hasDefinedProperties = hasPropertiesDefined_1.default;
19
+ var getAwsIdFromArn_1 = __importDefault(require("./getAwsIdFromArn/getAwsIdFromArn"));
20
+ exports.getAwsIdFromArn = getAwsIdFromArn_1.default;
19
21
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAwC;AAQtC,kBARK,iBAAO,CAQL;AAPT,wDAAwD;AAQtD,gBARK,eAAK,CAQL;AAPP,6EAAwE;AAUtE,uBAVK,sBAAY,CAUL;AATd,mFAA6D;AAW3D,yBAXK,wBAAc,CAWL;AAVhB,+CAA4B;AAW1B,gBAXK,YAAK,CAWL;AAVP,qGAA+E;AAW7E,+BAXK,8BAAoB,CAWL"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAwC;AAStC,kBATK,iBAAO,CASL;AART,wDAAwD;AAStD,gBATK,eAAK,CASL;AARP,6EAAwE;AAWtE,uBAXK,sBAAY,CAWL;AAVd,mFAA6D;AAY3D,yBAZK,wBAAc,CAYL;AAXhB,+CAA4B;AAY1B,gBAZK,YAAK,CAYL;AAXP,qGAA+E;AAY7E,+BAZK,8BAAoB,CAYL;AAXtB,sFAAgE;AAY9D,0BAZK,yBAAe,CAYL"}
package/dist/s3/s3.d.ts CHANGED
@@ -34,10 +34,7 @@ declare class S3Dao {
34
34
  fetchChunks<T>(chunks: GetObjectCommandInput[]): AsyncGenerator<{
35
35
  chunk: T;
36
36
  s3Object: GetObjectCommandInput;
37
- }, {
38
- chunk: T;
39
- s3Object: GetObjectCommandInput;
40
- }, unknown>;
37
+ }, Awaited<T>, unknown>;
41
38
  /**
42
39
  * Delete an object from the S3 bucket
43
40
  * @param objectDetails the object to delete
package/dist/s3/s3.js CHANGED
@@ -124,13 +124,16 @@ var S3Dao = /** @class */ (function () {
124
124
  */
125
125
  S3Dao.prototype.fetchData = function (objectDetails) {
126
126
  return __awaiter(this, void 0, void 0, function () {
127
- var data;
127
+ var data, body;
128
128
  return __generator(this, function (_a) {
129
129
  switch (_a.label) {
130
130
  case 0: return [4 /*yield*/, this.s3.send(new client_s3_1.GetObjectCommand(objectDetails))];
131
131
  case 1:
132
132
  data = _a.sent();
133
- return [2 /*return*/, JSON.parse(data.Body.toString())];
133
+ return [4 /*yield*/, data.Body.transformToString()];
134
+ case 2:
135
+ body = _a.sent();
136
+ return [2 /*return*/, JSON.parse(body)];
134
137
  }
135
138
  });
136
139
  });
@@ -148,7 +151,7 @@ var S3Dao = /** @class */ (function () {
148
151
  i = 0;
149
152
  _a.label = 1;
150
153
  case 1:
151
- if (!(i < chunks.length)) return [3 /*break*/, 8];
154
+ if (!(i < chunks.length)) return [3 /*break*/, 6];
152
155
  return [4 /*yield*/, __await(this.fetchData(chunks[i]))];
153
156
  case 2:
154
157
  chunk = _a.sent();
@@ -156,18 +159,16 @@ var S3Dao = /** @class */ (function () {
156
159
  chunk: chunk,
157
160
  s3Object: chunks[i]
158
161
  };
159
- if (!(i === chunks.length - 1)) return [3 /*break*/, 4];
160
162
  return [4 /*yield*/, __await(response)];
161
- case 3: return [2 /*return*/, _a.sent()];
162
- case 4: return [4 /*yield*/, __await(response)];
163
- case 5: return [4 /*yield*/, _a.sent()];
164
- case 6:
163
+ case 3: return [4 /*yield*/, _a.sent()];
164
+ case 4:
165
165
  _a.sent();
166
- _a.label = 7;
167
- case 7:
166
+ _a.label = 5;
167
+ case 5:
168
168
  i++;
169
169
  return [3 /*break*/, 1];
170
- case 8: return [2 /*return*/];
170
+ case 6: return [4 /*yield*/, __await(null)];
171
+ case 7: return [2 /*return*/, _a.sent()];
171
172
  }
172
173
  });
173
174
  });
package/dist/s3/s3.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"s3.js","sourceRoot":"","sources":["../../src/s3/s3.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAM4B;AAC5B,4DAA+B;AAC/B,+DAAyC;AAEzC,4CAA4C;AAC5C;IAIE;;OAEG;IACH,eAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,IAAI,oBAAQ,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACU,yBAAS,GAAtB,UACE,IAAO,EACP,IAAa;;;;;;wBAEb,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;4BAC/B,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;yBACtC;wBAEK,SAAS,GAA0B;4BACvC,MAAM,EAAE,IAAI,CAAC,MAAM;4BACnB,GAAG,EAAE,IAAI,IAAI,IAAA,qBAAI,EAAC,IAAW,CAAC;yBAC/B,CAAC;wBAEF,qBAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,4BAAgB,uBAClC,SAAS,KACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAC1B,CAAC,EAAA;;wBAHH,SAGG,CAAC;wBAEJ,sBAAO,SAAS,EAAC;;;;KAClB;IAED;;;;;OAKG;IACU,4BAAY,GAAzB,UAA2C,IAAO,EAAE,SAAiB;;;;;gBAC7D,MAAM,GAAG,IAAA,iBAAO,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBACxC,sBAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC,CAAC,EAAC;;;KAChE;IAED;;;;OAIG;IACU,yBAAS,GAAtB,UAA0B,aAAoC;;;;;4BAC/C,qBAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,4BAAgB,CAAC,aAAa,CAAC,CAAC,EAAA;;wBAA9D,IAAI,GAAG,SAAuD;wBACpE,sBAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAC;;;;KACzC;IAED;;;OAGG;IACW,2BAAW,GAAzB,UAA6B,MAA+B;;;;;;wBACjD,CAAC,GAAG,CAAC;;;6BAAE,CAAA,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;wBACd,6BAAM,IAAI,CAAC,SAAS,CAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAA;;wBAA7C,KAAK,GAAM,SAAkC;wBAE7C,QAAQ,GAAG;4BACf,KAAK,OAAA;4BACL,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;yBACpB,CAAC;6BAEE,CAAA,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA,EAAvB,wBAAuB;qDAClB,QAAQ;4BAAf,iCAAgB;yDAEZ,QAAQ;4BAAd,gCAAc;;wBAAd,SAAc,CAAC;;;wBAXkB,CAAC,EAAE,CAAA;;;;;;KAavC;IAED;;;OAGG;IACU,0BAAU,GAAvB,UAAwB,aAAoC;;;gBAC1D,sBAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,aAAa,CAAC,CAAC,EAAC;;;KAC7D;IACH,YAAC;AAAD,CAAC,AAvFD,IAuFC;AAED,kBAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"s3.js","sourceRoot":"","sources":["../../src/s3/s3.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAM4B;AAC5B,4DAA+B;AAC/B,+DAAyC;AAEzC,4CAA4C;AAC5C;IAIE;;OAEG;IACH,eAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,IAAI,oBAAQ,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACU,yBAAS,GAAtB,UACE,IAAO,EACP,IAAa;;;;;;wBAEb,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;4BAC/B,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;yBACtC;wBAEK,SAAS,GAA0B;4BACvC,MAAM,EAAE,IAAI,CAAC,MAAM;4BACnB,GAAG,EAAE,IAAI,IAAI,IAAA,qBAAI,EAAC,IAAW,CAAC;yBAC/B,CAAC;wBAEF,qBAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,4BAAgB,uBAClC,SAAS,KACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAC1B,CAAC,EAAA;;wBAHH,SAGG,CAAC;wBAEJ,sBAAO,SAAS,EAAC;;;;KAClB;IAED;;;;;OAKG;IACU,4BAAY,GAAzB,UAA2C,IAAO,EAAE,SAAiB;;;;;gBAC7D,MAAM,GAAG,IAAA,iBAAO,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBACxC,sBAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC,CAAC,EAAC;;;KAChE;IAED;;;;OAIG;IACU,yBAAS,GAAtB,UAA0B,aAAoC;;;;;4BAC/C,qBAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,4BAAgB,CAAC,aAAa,CAAC,CAAC,EAAA;;wBAA9D,IAAI,GAAG,SAAuD;wBACvD,qBAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAA;;wBAA1C,IAAI,GAAG,SAAmC;wBAChD,sBAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC;;;;KACzB;IAED;;;OAGG;IACW,2BAAW,GAAzB,UAA6B,MAA+B;;;;;;wBACjD,CAAC,GAAG,CAAC;;;6BAAE,CAAA,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;wBACd,6BAAM,IAAI,CAAC,SAAS,CAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAA;;wBAA7C,KAAK,GAAM,SAAkC;wBAE7C,QAAQ,GAAG;4BACf,KAAK,OAAA;4BACL,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;yBACpB,CAAC;qDAEI,QAAQ;4BAAd,gCAAc;;wBAAd,SAAc,CAAC;;;wBARkB,CAAC,EAAE,CAAA;;yDAW/B,IAAS;4BAAhB,iCAAiB;;;;KAClB;IAED;;;OAGG;IACU,0BAAU,GAAvB,UAAwB,aAAoC;;;gBAC1D,sBAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,aAAa,CAAC,CAAC,EAAC;;;KAC7D;IACH,YAAC;AAAD,CAAC,AAvFD,IAuFC;AAED,kBAAe,KAAK,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
39
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
40
+ var m = o[Symbol.asyncIterator], i;
41
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
42
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
43
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
44
+ };
45
+ var __importDefault = (this && this.__importDefault) || function (mod) {
46
+ return (mod && mod.__esModule) ? mod : { "default": mod };
47
+ };
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ var s3_1 = __importDefault(require("./s3"));
50
+ var client_s3_1 = require("@aws-sdk/client-s3");
51
+ var aws_sdk_client_mock_1 = require("aws-sdk-client-mock");
52
+ var util_stream_node_1 = require("@aws-sdk/util-stream-node");
53
+ var stream_1 = require("stream");
54
+ var s3Mock = (0, aws_sdk_client_mock_1.mockClient)(client_s3_1.S3Client);
55
+ var Bucket = 'bucket_name';
56
+ beforeEach(function () {
57
+ s3Mock.reset();
58
+ });
59
+ describe('fetchChunks', function () {
60
+ it('should yield all file contents in a for await ... of loop ', function () { return __awaiter(void 0, void 0, void 0, function () {
61
+ var iterations, chunks, data, responses, s3, result, _a, _b, _c, response, e_1_1;
62
+ var _d, e_1, _e, _f;
63
+ return __generator(this, function (_g) {
64
+ switch (_g.label) {
65
+ case 0:
66
+ iterations = [0, 1, 2, 3];
67
+ chunks = iterations.map(function (n) { return ({
68
+ Bucket: Bucket,
69
+ Key: "file_".concat(n)
70
+ }); });
71
+ data = iterations.map(function (n) { return ({ value: n }); });
72
+ responses = data.map(function (d) {
73
+ var stream = new stream_1.Readable();
74
+ stream.push(JSON.stringify(d));
75
+ stream.push(null);
76
+ return { Body: (0, util_stream_node_1.sdkStreamMixin)(stream) };
77
+ });
78
+ iterations.forEach(function (n) {
79
+ s3Mock.on(client_s3_1.GetObjectCommand, chunks[n]).resolvesOnce(responses[n]);
80
+ });
81
+ s3 = new s3_1.default(Bucket);
82
+ result = [];
83
+ _g.label = 1;
84
+ case 1:
85
+ _g.trys.push([1, 6, 7, 12]);
86
+ _a = true, _b = __asyncValues(s3.fetchChunks(chunks));
87
+ _g.label = 2;
88
+ case 2: return [4 /*yield*/, _b.next()];
89
+ case 3:
90
+ if (!(_c = _g.sent(), _d = _c.done, !_d)) return [3 /*break*/, 5];
91
+ _f = _c.value;
92
+ _a = false;
93
+ try {
94
+ response = _f;
95
+ result.push(response.chunk);
96
+ }
97
+ finally {
98
+ _a = true;
99
+ }
100
+ _g.label = 4;
101
+ case 4: return [3 /*break*/, 2];
102
+ case 5: return [3 /*break*/, 12];
103
+ case 6:
104
+ e_1_1 = _g.sent();
105
+ e_1 = { error: e_1_1 };
106
+ return [3 /*break*/, 12];
107
+ case 7:
108
+ _g.trys.push([7, , 10, 11]);
109
+ if (!(!_a && !_d && (_e = _b.return))) return [3 /*break*/, 9];
110
+ return [4 /*yield*/, _e.call(_b)];
111
+ case 8:
112
+ _g.sent();
113
+ _g.label = 9;
114
+ case 9: return [3 /*break*/, 11];
115
+ case 10:
116
+ if (e_1) throw e_1.error;
117
+ return [7 /*endfinally*/];
118
+ case 11: return [7 /*endfinally*/];
119
+ case 12:
120
+ expect(result).toEqual(data);
121
+ return [2 /*return*/];
122
+ }
123
+ });
124
+ }); });
125
+ });
126
+ //# sourceMappingURL=s3.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3.test.js","sourceRoot":"","sources":["../../src/s3/s3.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,gDAAgE;AAChE,2DAAiD;AACjD,8DAA2D;AAC3D,iCAAkC;AAGlC,IAAM,MAAM,GAAG,IAAA,gCAAU,EAAC,oBAAQ,CAAC,CAAC;AAEpC,IAAM,MAAM,GAAG,aAAa,CAAC;AAE7B,UAAU,CAAC;IACT,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,aAAa,EAAE;IACtB,EAAE,CAAC,4DAA4D,EAAE;;;;;;oBACzD,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC1B,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC;wBAClC,MAAM,QAAA;wBACN,GAAG,EAAE,eAAQ,CAAC,CAAE;qBACjB,CAAC,EAHiC,CAGjC,CAAC,CAAC;oBACE,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAd,CAAc,CAAC,CAAC;oBAI3C,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAA,CAAC;wBAC1B,IAAM,MAAM,GAAG,IAAI,iBAAQ,EAAE,CAAC;wBAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAClB,OAAO,EAAE,IAAI,EAAE,IAAA,iCAAc,EAAC,MAAM,CAAC,EAAE,CAAC;oBAC1C,CAAC,CAAC,CAAC;oBAEH,UAAU,CAAC,OAAO,CAAC,UAAA,CAAC;wBAClB,MAAM,CAAC,EAAE,CAAC,4BAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpE,CAAC,CAAC,CAAC;oBAEG,EAAE,GAAG,IAAI,YAAK,CAAC,MAAM,CAAC,CAAC;oBAEvB,MAAM,GAAG,EAAE,CAAC;;;;+BACW,KAAA,cAAA,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;;;;;oBAAtB,cAAsB;oBAAtB,WAAsB;;wBAAlC,QAAQ,KAAA,CAAA;wBACvB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;oBAG9B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;;;SAC9B,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -37,7 +37,7 @@ A data access object for an S3 bucket
37
37
 
38
38
  #### Defined in
39
39
 
40
- [s3/s3.ts:19](https://bitbucket.org/aligent/microservice-util-lib/src/e10251f/src/s3/s3.ts#lines-19)
40
+ [s3/s3.ts:19](https://bitbucket.org/aligent/microservice-util-lib/src/5ba81bd/src/s3/s3.ts#lines-19)
41
41
 
42
42
  ## Properties
43
43
 
@@ -47,7 +47,7 @@ A data access object for an S3 bucket
47
47
 
48
48
  #### Defined in
49
49
 
50
- [s3/s3.ts:14](https://bitbucket.org/aligent/microservice-util-lib/src/e10251f/src/s3/s3.ts#lines-14)
50
+ [s3/s3.ts:14](https://bitbucket.org/aligent/microservice-util-lib/src/5ba81bd/src/s3/s3.ts#lines-14)
51
51
 
52
52
  ___
53
53
 
@@ -57,7 +57,7 @@ ___
57
57
 
58
58
  #### Defined in
59
59
 
60
- [s3/s3.ts:13](https://bitbucket.org/aligent/microservice-util-lib/src/e10251f/src/s3/s3.ts#lines-13)
60
+ [s3/s3.ts:13](https://bitbucket.org/aligent/microservice-util-lib/src/5ba81bd/src/s3/s3.ts#lines-13)
61
61
 
62
62
  ## Methods
63
63
 
@@ -79,13 +79,13 @@ Delete an object from the S3 bucket
79
79
 
80
80
  #### Defined in
81
81
 
82
- [s3/s3.ts:96](https://bitbucket.org/aligent/microservice-util-lib/src/e10251f/src/s3/s3.ts#lines-96)
82
+ [s3/s3.ts:96](https://bitbucket.org/aligent/microservice-util-lib/src/5ba81bd/src/s3/s3.ts#lines-96)
83
83
 
84
84
  ___
85
85
 
86
86
  ### <a id="fetchchunks" name="fetchchunks"></a> fetchChunks
87
87
 
88
- ▸ **fetchChunks**<`T`\>(`chunks`): `AsyncGenerator`<{ `chunk`: `T` ; `s3Object`: `GetObjectCommandInput` }, { `chunk`: `T` ; `s3Object`: `GetObjectCommandInput` }, `unknown`\>
88
+ ▸ **fetchChunks**<`T`\>(`chunks`): `AsyncGenerator`<{ `chunk`: `T` ; `s3Object`: `GetObjectCommandInput` }, `Awaited`<`T`\>, `unknown`\>
89
89
 
90
90
  Generator to fetch chunked data, chunk by chunk
91
91
 
@@ -103,11 +103,11 @@ Generator to fetch chunked data, chunk by chunk
103
103
 
104
104
  #### Returns
105
105
 
106
- `AsyncGenerator`<{ `chunk`: `T` ; `s3Object`: `GetObjectCommandInput` }, { `chunk`: `T` ; `s3Object`: `GetObjectCommandInput` }, `unknown`\>
106
+ `AsyncGenerator`<{ `chunk`: `T` ; `s3Object`: `GetObjectCommandInput` }, `Awaited`<`T`\>, `unknown`\>
107
107
 
108
108
  #### Defined in
109
109
 
110
- [s3/s3.ts:76](https://bitbucket.org/aligent/microservice-util-lib/src/e10251f/src/s3/s3.ts#lines-76)
110
+ [s3/s3.ts:77](https://bitbucket.org/aligent/microservice-util-lib/src/5ba81bd/src/s3/s3.ts#lines-77)
111
111
 
112
112
  ___
113
113
 
@@ -137,7 +137,7 @@ the body of the object
137
137
 
138
138
  #### Defined in
139
139
 
140
- [s3/s3.ts:67](https://bitbucket.org/aligent/microservice-util-lib/src/e10251f/src/s3/s3.ts#lines-67)
140
+ [s3/s3.ts:67](https://bitbucket.org/aligent/microservice-util-lib/src/5ba81bd/src/s3/s3.ts#lines-67)
141
141
 
142
142
  ___
143
143
 
@@ -168,7 +168,7 @@ an array of objects which can be used to fetch the chunks
168
168
 
169
169
  #### Defined in
170
170
 
171
- [s3/s3.ts:57](https://bitbucket.org/aligent/microservice-util-lib/src/e10251f/src/s3/s3.ts#lines-57)
171
+ [s3/s3.ts:57](https://bitbucket.org/aligent/microservice-util-lib/src/5ba81bd/src/s3/s3.ts#lines-57)
172
172
 
173
173
  ___
174
174
 
@@ -203,4 +203,4 @@ an object which can be used to fetch the data
203
203
 
204
204
  #### Defined in
205
205
 
206
- [s3/s3.ts:30](https://bitbucket.org/aligent/microservice-util-lib/src/e10251f/src/s3/s3.ts#lines-30)
206
+ [s3/s3.ts:30](https://bitbucket.org/aligent/microservice-util-lib/src/5ba81bd/src/s3/s3.ts#lines-30)
@@ -27,7 +27,7 @@ The amount to increase the delay by each retry (in ms)
27
27
 
28
28
  #### Defined in
29
29
 
30
- [retryWrapper/retryWrapper.ts:17](https://bitbucket.org/aligent/microservice-util-lib/src/e10251f/src/retryWrapper/retryWrapper.ts#lines-17)
30
+ [retryWrapper/retryWrapper.ts:17](https://bitbucket.org/aligent/microservice-util-lib/src/5ba81bd/src/retryWrapper/retryWrapper.ts#lines-17)
31
31
 
32
32
  ___
33
33
 
@@ -43,7 +43,7 @@ The base delay between retries (in ms)
43
43
 
44
44
  #### Defined in
45
45
 
46
- [retryWrapper/retryWrapper.ts:12](https://bitbucket.org/aligent/microservice-util-lib/src/e10251f/src/retryWrapper/retryWrapper.ts#lines-12)
46
+ [retryWrapper/retryWrapper.ts:12](https://bitbucket.org/aligent/microservice-util-lib/src/5ba81bd/src/retryWrapper/retryWrapper.ts#lines-12)
47
47
 
48
48
  ___
49
49
 
@@ -71,7 +71,7 @@ A callback to run before each retry
71
71
 
72
72
  #### Defined in
73
73
 
74
- [retryWrapper/retryWrapper.ts:24](https://bitbucket.org/aligent/microservice-util-lib/src/e10251f/src/retryWrapper/retryWrapper.ts#lines-24)
74
+ [retryWrapper/retryWrapper.ts:24](https://bitbucket.org/aligent/microservice-util-lib/src/5ba81bd/src/retryWrapper/retryWrapper.ts#lines-24)
75
75
 
76
76
  ___
77
77
 
@@ -87,4 +87,4 @@ The number of retries to attempt after the first run
87
87
 
88
88
  #### Defined in
89
89
 
90
- [retryWrapper/retryWrapper.ts:7](https://bitbucket.org/aligent/microservice-util-lib/src/e10251f/src/retryWrapper/retryWrapper.ts#lines-7)
90
+ [retryWrapper/retryWrapper.ts:7](https://bitbucket.org/aligent/microservice-util-lib/src/5ba81bd/src/retryWrapper/retryWrapper.ts#lines-7)
package/docs/modules.md CHANGED
@@ -21,6 +21,7 @@
21
21
 
22
22
  - [chunkBy](modules.md#chunkby)
23
23
  - [fetchSsmParams](modules.md#fetchssmparams)
24
+ - [getAwsIdFromArn](modules.md#getawsidfromarn)
24
25
  - [hasDefinedProperties](modules.md#hasdefinedproperties)
25
26
  - [remap](modules.md#remap-1)
26
27
  - [retryWrapper](modules.md#retrywrapper)
@@ -35,7 +36,7 @@ A list of keys to keys, with an optional transformer function
35
36
 
36
37
  #### Defined in
37
38
 
38
- [remap/remap.ts:15](https://bitbucket.org/aligent/microservice-util-lib/src/e10251f/src/remap/remap.ts#lines-15)
39
+ [remap/remap.ts:15](https://bitbucket.org/aligent/microservice-util-lib/src/5ba81bd/src/remap/remap.ts#lines-15)
39
40
 
40
41
  ___
41
42
 
@@ -52,7 +53,7 @@ ___
52
53
 
53
54
  #### Defined in
54
55
 
55
- [remap/remap.ts:159](https://bitbucket.org/aligent/microservice-util-lib/src/e10251f/src/remap/remap.ts#lines-159)
56
+ [remap/remap.ts:159](https://bitbucket.org/aligent/microservice-util-lib/src/5ba81bd/src/remap/remap.ts#lines-159)
56
57
 
57
58
  ## Functions
58
59
 
@@ -87,7 +88,7 @@ chunkBy([1, 2, 3, 4, 5, 6, 7], 2) // [[1, 2], [3, 4], [5, 6], [7]]
87
88
 
88
89
  #### Defined in
89
90
 
90
- [chunkBy/chunkBy.ts:10](https://bitbucket.org/aligent/microservice-util-lib/src/e10251f/src/chunkBy/chunkBy.ts#lines-10)
91
+ [chunkBy/chunkBy.ts:10](https://bitbucket.org/aligent/microservice-util-lib/src/5ba81bd/src/chunkBy/chunkBy.ts#lines-10)
91
92
 
92
93
  ___
93
94
 
@@ -109,7 +110,7 @@ Fetch one SSM parameter
109
110
 
110
111
  #### Defined in
111
112
 
112
- [fetchSsmParams/fetchSsmParams.ts:14](https://bitbucket.org/aligent/microservice-util-lib/src/e10251f/src/fetchSsmParams/fetchSsmParams.ts#lines-14)
113
+ [fetchSsmParams/fetchSsmParams.ts:14](https://bitbucket.org/aligent/microservice-util-lib/src/5ba81bd/src/fetchSsmParams/fetchSsmParams.ts#lines-14)
113
114
 
114
115
  ▸ **fetchSsmParams**(`...params`): `Promise`<`Parameter`[]\>
115
116
 
@@ -127,7 +128,41 @@ Fetch a list of SSM parameters
127
128
 
128
129
  #### Defined in
129
130
 
130
- [fetchSsmParams/fetchSsmParams.ts:21](https://bitbucket.org/aligent/microservice-util-lib/src/e10251f/src/fetchSsmParams/fetchSsmParams.ts#lines-21)
131
+ [fetchSsmParams/fetchSsmParams.ts:21](https://bitbucket.org/aligent/microservice-util-lib/src/5ba81bd/src/fetchSsmParams/fetchSsmParams.ts#lines-21)
132
+
133
+ ___
134
+
135
+ ### <a id="getawsidfromarn" name="getawsidfromarn"></a> getAwsIdFromArn
136
+
137
+ ▸ **getAwsIdFromArn**(`resourceArn`): `string`
138
+
139
+ Get the AWS ID from its resource ARN
140
+
141
+ **`Throws`**
142
+
143
+ when the provided ARN is empty
144
+
145
+ **`Example`**
146
+
147
+ ```ts
148
+ getAwsIdFromArn('arn:aws:states:ap-southeast-2:123123123:execution:prj-int-entity-ac-dc-dev-machine-name:this-is-the-id')
149
+ ```
150
+
151
+ #### Parameters
152
+
153
+ | Name | Type | Description |
154
+ | :------ | :------ | :------ |
155
+ | `resourceArn` | `string` | the ARN of the AWS resource |
156
+
157
+ #### Returns
158
+
159
+ `string`
160
+
161
+ the ID (if present in the ARN) of the AWS resource/execution
162
+
163
+ #### Defined in
164
+
165
+ [getAwsIdFromArn/getAwsIdFromArn.ts:11](https://bitbucket.org/aligent/microservice-util-lib/src/5ba81bd/src/getAwsIdFromArn/getAwsIdFromArn.ts#lines-11)
131
166
 
132
167
  ___
133
168
 
@@ -173,7 +208,7 @@ obj is SimplifyIntersection<Required<Pick<T, K\>\> & Omit<T, K\>\>
173
208
 
174
209
  #### Defined in
175
210
 
176
- [hasPropertiesDefined/hasPropertiesDefined.ts:22](https://bitbucket.org/aligent/microservice-util-lib/src/e10251f/src/hasPropertiesDefined/hasPropertiesDefined.ts#lines-22)
211
+ [hasPropertiesDefined/hasPropertiesDefined.ts:22](https://bitbucket.org/aligent/microservice-util-lib/src/5ba81bd/src/hasPropertiesDefined/hasPropertiesDefined.ts#lines-22)
177
212
 
178
213
  ___
179
214
 
@@ -240,7 +275,7 @@ the remapped object
240
275
 
241
276
  #### Defined in
242
277
 
243
- [remap/remap.ts:198](https://bitbucket.org/aligent/microservice-util-lib/src/e10251f/src/remap/remap.ts#lines-198)
278
+ [remap/remap.ts:198](https://bitbucket.org/aligent/microservice-util-lib/src/5ba81bd/src/remap/remap.ts#lines-198)
244
279
 
245
280
  ___
246
281
 
@@ -278,4 +313,4 @@ retryWrapper(someAsyncFunction, {
278
313
 
279
314
  #### Defined in
280
315
 
281
- [retryWrapper/retryWrapper.ts:78](https://bitbucket.org/aligent/microservice-util-lib/src/e10251f/src/retryWrapper/retryWrapper.ts#lines-78)
316
+ [retryWrapper/retryWrapper.ts:78](https://bitbucket.org/aligent/microservice-util-lib/src/5ba81bd/src/retryWrapper/retryWrapper.ts#lines-78)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aligent/microservice-util-lib",
3
- "version": "0.2.1",
3
+ "version": "1.0.0",
4
4
  "description": "A set of utility functions for Aligent Microservices",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {