@comicrelief/lambda-wrapper 2.0.0-beta.2 → 2.0.0-beta.4
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/README.md +18 -3
- package/dist/core/DependencyAwareClass.d.ts +4 -3
- package/dist/core/DependencyAwareClass.d.ts.map +1 -1
- package/dist/core/DependencyAwareClass.js.map +1 -1
- package/dist/core/DependencyInjection.d.ts +6 -6
- package/dist/core/DependencyInjection.d.ts.map +1 -1
- package/dist/core/DependencyInjection.js.map +1 -1
- package/dist/core/LambdaWrapper.d.ts +2 -6
- package/dist/core/LambdaWrapper.d.ts.map +1 -1
- package/dist/core/LambdaWrapper.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/models/ResponseModel.d.ts +4 -22
- package/dist/models/ResponseModel.d.ts.map +1 -1
- package/dist/models/ResponseModel.js +2 -2
- package/dist/models/ResponseModel.js.map +1 -1
- package/dist/services/SQSService.d.ts +90 -12
- package/dist/services/SQSService.d.ts.map +1 -1
- package/dist/services/SQSService.js +67 -1
- package/dist/services/SQSService.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -13,9 +13,9 @@ If you're coming from v1 and updating to v2, check out the [v2 migration guide](
|
|
|
13
13
|
Install via npm or Yarn:
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
npm i @comicrelief/lambda-wrapper
|
|
16
|
+
npm i @comicrelief/lambda-wrapper@beta
|
|
17
17
|
# or
|
|
18
|
-
yarn add @comicrelief/lambda-wrapper
|
|
18
|
+
yarn add @comicrelief/lambda-wrapper@beta
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
You can then wrap your Lambda handler functions like this:
|
|
@@ -186,7 +186,7 @@ When you go to configure your Lambda Wrapper, you can now include your dependenc
|
|
|
186
186
|
```ts
|
|
187
187
|
lambdaWrapper.configure<WithSQSServiceConfig>({
|
|
188
188
|
sqs: {
|
|
189
|
-
queues: 42 // Oops! This will be
|
|
189
|
+
queues: 42 // Oops! This will be flagged as a type error by TypeScript
|
|
190
190
|
},
|
|
191
191
|
});
|
|
192
192
|
```
|
|
@@ -204,6 +204,21 @@ lambdaWrapper.configure<WithSQSServiceConfig & WithOtherServiceConfig>({
|
|
|
204
204
|
});
|
|
205
205
|
```
|
|
206
206
|
|
|
207
|
+
## Notes
|
|
208
|
+
|
|
209
|
+
Lambda Wrapper's dependency injection relies on class names being preserved. If your build process includes minifying or uglifying your code, you'll need to disable these transformations.
|
|
210
|
+
|
|
211
|
+
In many of our projects we use `serverless-webpack` to bundle service code prior to deployment. To disable name mangling, set `optimization.minimize` to `false` in your webpack config:
|
|
212
|
+
|
|
213
|
+
```js
|
|
214
|
+
// webpack.config.js
|
|
215
|
+
module.exports = {
|
|
216
|
+
// ...
|
|
217
|
+
optimization: {
|
|
218
|
+
minimize: false,
|
|
219
|
+
},
|
|
220
|
+
```
|
|
221
|
+
|
|
207
222
|
## Development
|
|
208
223
|
|
|
209
224
|
### Testing
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import DependencyInjection from './DependencyInjection';
|
|
2
|
+
import { LambdaWrapperConfig } from './config';
|
|
2
3
|
/**
|
|
3
4
|
* Base class for dependencies.
|
|
4
5
|
*/
|
|
5
|
-
export default class DependencyAwareClass {
|
|
6
|
-
readonly di: DependencyInjection
|
|
7
|
-
constructor(di: DependencyInjection);
|
|
6
|
+
export default class DependencyAwareClass<TConfig extends LambdaWrapperConfig = any> {
|
|
7
|
+
readonly di: DependencyInjection<TConfig>;
|
|
8
|
+
constructor(di: DependencyInjection<TConfig>);
|
|
8
9
|
/**
|
|
9
10
|
* Get dependency injection container.
|
|
10
11
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DependencyAwareClass.d.ts","sourceRoot":"","sources":["../../src/core/DependencyAwareClass.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"DependencyAwareClass.d.ts","sourceRoot":"","sources":["../../src/core/DependencyAwareClass.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAoB,CAAC,OAAO,SAAS,mBAAmB,GAAG,GAAG;IACrE,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAC,OAAO,CAAC;gBAAhC,EAAE,EAAE,mBAAmB,CAAC,OAAO,CAAC;IAErD;;;;OAIG;IACH,YAAY,IAAI,mBAAmB;CAGpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DependencyAwareClass.js","sourceRoot":"","sources":["../../src/core/DependencyAwareClass.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"DependencyAwareClass.js","sourceRoot":"","sources":["../../src/core/DependencyAwareClass.ts"],"names":[],"mappings":";;AAGA;;GAEG;AACH,MAAqB,oBAAoB;IACvC,YAAqB,EAAgC;QAAhC,OAAE,GAAF,EAAE,CAA8B;IAAG,CAAC;IAEzD;;;;OAIG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;CACF;AAXD,uCAWC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { Context } from 'aws-lambda';
|
|
2
2
|
import DependencyAwareClass from './DependencyAwareClass';
|
|
3
3
|
import { LambdaWrapperConfig } from './config';
|
|
4
|
-
declare type Class<
|
|
4
|
+
declare type Class<TInstance, TConfig extends LambdaWrapperConfig> = new (di: DependencyInjection<TConfig>) => TInstance;
|
|
5
5
|
/**
|
|
6
6
|
* Dependency injection container.
|
|
7
7
|
*
|
|
8
8
|
* Dependencies (singleton instances of dependency-aware classes) are provided
|
|
9
9
|
* to the main Lambda handler and other dependencies via this class.
|
|
10
10
|
*/
|
|
11
|
-
export default class DependencyInjection {
|
|
12
|
-
readonly config:
|
|
11
|
+
export default class DependencyInjection<TConfig extends LambdaWrapperConfig = any> {
|
|
12
|
+
readonly config: TConfig;
|
|
13
13
|
readonly event: any;
|
|
14
14
|
readonly context: Context;
|
|
15
15
|
/**
|
|
@@ -20,13 +20,13 @@ export default class DependencyInjection {
|
|
|
20
20
|
* True until all dependencies have been constructed.
|
|
21
21
|
*/
|
|
22
22
|
private isConstructing;
|
|
23
|
-
constructor(config:
|
|
23
|
+
constructor(config: TConfig, event: any, context: Context);
|
|
24
24
|
/**
|
|
25
25
|
* Get the singleton instance of the given dependency.
|
|
26
26
|
*
|
|
27
27
|
* @param dependency
|
|
28
28
|
*/
|
|
29
|
-
get<T extends DependencyAwareClass>(dependency: Class<T>): T;
|
|
29
|
+
get<T extends DependencyAwareClass>(dependency: Class<T, TConfig>): T;
|
|
30
30
|
/**
|
|
31
31
|
* Get the event passed to AWS Lambda.
|
|
32
32
|
*
|
|
@@ -44,7 +44,7 @@ export default class DependencyInjection {
|
|
|
44
44
|
*
|
|
45
45
|
* @deprecated Use `di.config` instead.
|
|
46
46
|
*/
|
|
47
|
-
getConfiguration():
|
|
47
|
+
getConfiguration(): TConfig;
|
|
48
48
|
/**
|
|
49
49
|
* True if the function is being executed in `serverless-offline`.
|
|
50
50
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DependencyInjection.d.ts","sourceRoot":"","sources":["../../src/core/DependencyInjection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAG/C,aAAK,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"DependencyInjection.d.ts","sourceRoot":"","sources":["../../src/core/DependencyInjection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAG/C,aAAK,KAAK,CAAC,SAAS,EAAE,OAAO,SAAS,mBAAmB,IAAI,KAAK,EAAE,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC;AAEjH;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAmB,CAAC,OAAO,SAAS,mBAAmB,GAAG,GAAG;IAY9E,QAAQ,CAAC,MAAM,EAAE,OAAO;IACxB,QAAQ,CAAC,KAAK,EAAE,GAAG;IACnB,QAAQ,CAAC,OAAO,EAAE,OAAO;IAb3B;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAE5D;;OAEG;IACH,OAAO,CAAC,cAAc,CAAQ;gBAGnB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,OAAO;IAU3B;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,oBAAoB,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC;IAsBrE;;;;OAIG;IACH,QAAQ;IAIR;;;;OAIG;IACH,UAAU;IAIV;;;;OAIG;IACH,gBAAgB;IAIhB;;;;;;;;;;OAUG;IACH,IAAI,SAAS,IAAI,OAAO,CAIvB;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DependencyInjection.js","sourceRoot":"","sources":["../../src/core/DependencyInjection.ts"],"names":[],"mappings":";;AAQA;;;;;GAKG;AACH,MAAqB,mBAAmB;IAWtC,YACW,
|
|
1
|
+
{"version":3,"file":"DependencyInjection.js","sourceRoot":"","sources":["../../src/core/DependencyInjection.ts"],"names":[],"mappings":";;AAQA;;;;;GAKG;AACH,MAAqB,mBAAmB;IAWtC,YACW,MAAe,EACf,KAAU,EACV,OAAgB;QAFhB,WAAM,GAAN,MAAM,CAAS;QACf,UAAK,GAAL,KAAK,CAAK;QACV,YAAO,GAAP,OAAO,CAAS;QAR3B;;WAEG;QACK,mBAAc,GAAG,IAAI,CAAC;QAO5B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CACpC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CACxE,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAiC,UAA6B;QAC/D,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,MAAM,IAAI,KAAK,CACb,sEAAsE;kBACpE,oEAAoE;kBACpE,0CAA0C,CAC7C,CAAC;SACH;QAED,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,6CAA6C;kBAClD,6BAA6B,IAAI,qCAAqC;kBACtE,wBAAwB,CAC3B,CAAC;SACH;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAM,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;;;;;;;OAUG;IACH,IAAI,SAAS;QACX,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB;eAClC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC;eACnD,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAC5C,CAAC;CACF;AA9FD,sCA8FC"}
|
|
@@ -24,7 +24,7 @@ export default class LambdaWrapper<TConfig extends LambdaWrapperConfig = LambdaW
|
|
|
24
24
|
/**
|
|
25
25
|
* Wrap the given function.
|
|
26
26
|
*/
|
|
27
|
-
wrap<T>(handler: (di: DependencyInjection) => Promise<T>, options?: WrapOptions): (event: any, context: Context) => Promise<any>;
|
|
27
|
+
wrap<T>(handler: (di: DependencyInjection<TConfig>) => Promise<T>, options?: WrapOptions): (event: any, context: Context) => Promise<any>;
|
|
28
28
|
/**
|
|
29
29
|
* Process the result once we have one.
|
|
30
30
|
*
|
|
@@ -50,11 +50,7 @@ export default class LambdaWrapper<TConfig extends LambdaWrapperConfig = LambdaW
|
|
|
50
50
|
*/
|
|
51
51
|
static handleError(di: DependencyInjection, error: Error, throwError?: boolean): {
|
|
52
52
|
statusCode: any;
|
|
53
|
-
headers:
|
|
54
|
-
'Content-Type': string;
|
|
55
|
-
'Access-Control-Allow-Origin': string;
|
|
56
|
-
'Access-Control-Allow-Credentials': boolean;
|
|
57
|
-
};
|
|
53
|
+
headers: Record<string, string>;
|
|
58
54
|
body: string;
|
|
59
55
|
} | Error;
|
|
60
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LambdaWrapper.d.ts","sourceRoot":"","sources":["../../src/core/LambdaWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAInC,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAe,MAAM,UAAU,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,CAAC,OAAO,OAAO,aAAa,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB;IAC9E,QAAQ,CAAC,MAAM,EAAE,OAAO;gBAAf,MAAM,EAAE,OAAO;IAEpC;;;;OAIG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,aAAa,CAAC,OAAO,GAAG,WAAW,CAAC;IAIpG;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,mBAAmB,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"LambdaWrapper.d.ts","sourceRoot":"","sources":["../../src/core/LambdaWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAInC,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAe,MAAM,UAAU,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,CAAC,OAAO,OAAO,aAAa,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB;IAC9E,QAAQ,CAAC,MAAM,EAAE,OAAO;gBAAf,MAAM,EAAE,OAAO;IAEpC;;;;OAIG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,aAAa,CAAC,OAAO,GAAG,WAAW,CAAC;IAIpG;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,WAK1D,GAAG,WAAW,OAAO;IAyDnD;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG;IASzD;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,UAAQ;;;;;CA8B7E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LambdaWrapper.js","sourceRoot":"","sources":["../../src/core/LambdaWrapper.ts"],"names":[],"mappings":";;;;;AAAA,sDAA8B;AAG9B,4EAAoD;AACpD,8EAAsD;AACtD,gFAAwD;AACxD,gFAAwD;AACxD,qCAA4D;AAc5D,MAAqB,aAAa;IAChC,YAAqB,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IAExC;;;;OAIG;IACH,SAAS,CAAc,MAAsC;QAC3D,OAAO,IAAI,aAAa,CAAC,IAAA,oBAAW,EAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,IAAI,CAAI,
|
|
1
|
+
{"version":3,"file":"LambdaWrapper.js","sourceRoot":"","sources":["../../src/core/LambdaWrapper.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,14 +14,14 @@ export { LambdaWrapperConfig } from './core/config';
|
|
|
14
14
|
export { default as DependencyAwareClass } from './core/DependencyAwareClass';
|
|
15
15
|
export { default as DependencyInjection } from './core/DependencyInjection';
|
|
16
16
|
export { default as LambdaWrapper, WrapOptions } from './core/LambdaWrapper';
|
|
17
|
-
export { default as ResponseModel, } from './models/ResponseModel';
|
|
17
|
+
export { default as ResponseModel, RESPONSE_HEADERS, } from './models/ResponseModel';
|
|
18
18
|
export { default as SQSMessageModel, } from './models/SQSMessageModel';
|
|
19
19
|
export { default as StatusModel, STATUS_TYPES, } from './models/StatusModel';
|
|
20
20
|
export { default as BaseConfigService, } from './services/BaseConfigService';
|
|
21
21
|
export { default as HTTPService, COMICRELIEF_TEST_METADATA_HEADER, } from './services/HTTPService';
|
|
22
22
|
export { default as LoggerService, } from './services/LoggerService';
|
|
23
23
|
export { default as RequestService, REQUEST_TYPES, RequestFile, } from './services/RequestService';
|
|
24
|
-
export { default as SQSService, SQS_OFFLINE_MODES, SQS_PUBLISH_FAILURE_MODES, SQSServiceConfig, WithSQSServiceConfig, } from './services/SQSService';
|
|
24
|
+
export { default as SQSService, QueueName, SQS_OFFLINE_MODES, SQS_PUBLISH_FAILURE_MODES, SQSServiceConfig, WithSQSServiceConfig, } from './services/SQSService';
|
|
25
25
|
export { default as TimerService, } from './services/TimerService';
|
|
26
26
|
export { default as LambdaTermination } from './utils/LambdaTermination';
|
|
27
27
|
export { default as PromisifiedDelay } from './utils/PromisifiedDelay';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAmB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGzE;;;;;GAKG;AACH,QAAA,MAAM,aAAa,2DAOjB,CAAC;AAEH,eAAe,aAAa,CAAC;AAE7B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EACL,OAAO,IAAI,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAmB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGzE;;;;;GAKG;AACH,QAAA,MAAM,aAAa,2DAOjB,CAAC;AAEH,eAAe,aAAa,CAAC;AAE7B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EACL,OAAO,IAAI,aAAa,EACxB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,OAAO,IAAI,eAAe,GAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,OAAO,IAAI,WAAW,EACtB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,OAAO,IAAI,iBAAiB,GAC7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,OAAO,IAAI,WAAW,EACtB,gCAAgC,GACjC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,OAAO,IAAI,aAAa,GACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,OAAO,IAAI,cAAc,EACzB,aAAa,EACb,WAAW,GACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,OAAO,IAAI,UAAU,EACrB,SAAS,EACT,iBAAiB,EACjB,yBAAyB,EACzB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,OAAO,IAAI,YAAY,GACxB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
|
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.PromisifiedDelay = exports.LambdaTermination = exports.TimerService = exports.SQS_PUBLISH_FAILURE_MODES = exports.SQS_OFFLINE_MODES = exports.SQSService = exports.REQUEST_TYPES = exports.RequestService = exports.LoggerService = exports.COMICRELIEF_TEST_METADATA_HEADER = exports.HTTPService = exports.BaseConfigService = exports.STATUS_TYPES = exports.StatusModel = exports.SQSMessageModel = exports.ResponseModel = exports.LambdaWrapper = exports.DependencyInjection = exports.DependencyAwareClass = void 0;
|
|
6
|
+
exports.PromisifiedDelay = exports.LambdaTermination = exports.TimerService = exports.SQS_PUBLISH_FAILURE_MODES = exports.SQS_OFFLINE_MODES = exports.SQSService = exports.REQUEST_TYPES = exports.RequestService = exports.LoggerService = exports.COMICRELIEF_TEST_METADATA_HEADER = exports.HTTPService = exports.BaseConfigService = exports.STATUS_TYPES = exports.StatusModel = exports.SQSMessageModel = exports.RESPONSE_HEADERS = exports.ResponseModel = exports.LambdaWrapper = exports.DependencyInjection = exports.DependencyAwareClass = void 0;
|
|
7
7
|
const LambdaWrapper_1 = __importDefault(require("./core/LambdaWrapper"));
|
|
8
8
|
const LoggerService_1 = __importDefault(require("./services/LoggerService"));
|
|
9
9
|
const RequestService_1 = __importDefault(require("./services/RequestService"));
|
|
@@ -32,6 +32,7 @@ var LambdaWrapper_2 = require("./core/LambdaWrapper");
|
|
|
32
32
|
Object.defineProperty(exports, "LambdaWrapper", { enumerable: true, get: function () { return __importDefault(LambdaWrapper_2).default; } });
|
|
33
33
|
var ResponseModel_1 = require("./models/ResponseModel");
|
|
34
34
|
Object.defineProperty(exports, "ResponseModel", { enumerable: true, get: function () { return __importDefault(ResponseModel_1).default; } });
|
|
35
|
+
Object.defineProperty(exports, "RESPONSE_HEADERS", { enumerable: true, get: function () { return ResponseModel_1.RESPONSE_HEADERS; } });
|
|
35
36
|
var SQSMessageModel_1 = require("./models/SQSMessageModel");
|
|
36
37
|
Object.defineProperty(exports, "SQSMessageModel", { enumerable: true, get: function () { return __importDefault(SQSMessageModel_1).default; } });
|
|
37
38
|
var StatusModel_1 = require("./models/StatusModel");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,yEAAiD;AAEjD,6EAAqD;AACrD,+EAAuD;AACvD,uEAAyE;AACzE,2EAAmD;AAEnD;;;;;GAKG;AACH,MAAM,aAAa,GAAG,IAAI,uBAAa,CAA6C;IAClF,YAAY,EAAE;QACZ,aAAa,EAAb,uBAAa;QACb,cAAc,EAAd,wBAAc;QACd,UAAU,EAAV,oBAAU;QACV,YAAY,EAAZ,sBAAY;KACb;CACF,CAAC,CAAC;AAEH,kBAAe,aAAa,CAAC;AAK7B,oEAA8E;AAArE,6IAAA,OAAO,OAAwB;AACxC,kEAA4E;AAAnE,2IAAA,OAAO,OAAuB;AACvC,sDAA6E;AAApE,+HAAA,OAAO,OAAiB;AAEjC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,yEAAiD;AAEjD,6EAAqD;AACrD,+EAAuD;AACvD,uEAAyE;AACzE,2EAAmD;AAEnD;;;;;GAKG;AACH,MAAM,aAAa,GAAG,IAAI,uBAAa,CAA6C;IAClF,YAAY,EAAE;QACZ,aAAa,EAAb,uBAAa;QACb,cAAc,EAAd,wBAAc;QACd,UAAU,EAAV,oBAAU;QACV,YAAY,EAAZ,sBAAY;KACb;CACF,CAAC,CAAC;AAEH,kBAAe,aAAa,CAAC;AAK7B,oEAA8E;AAArE,6IAAA,OAAO,OAAwB;AACxC,kEAA4E;AAAnE,2IAAA,OAAO,OAAuB;AACvC,sDAA6E;AAApE,+HAAA,OAAO,OAAiB;AAEjC,wDAGgC;AAF9B,+HAAA,OAAO,OAAiB;AACxB,iHAAA,gBAAgB,OAAA;AAElB,4DAEkC;AADhC,mIAAA,OAAO,OAAmB;AAE5B,oDAG8B;AAF5B,2HAAA,OAAO,OAAe;AACtB,2GAAA,YAAY,OAAA;AAGd,kEAEsC;AADpC,uIAAA,OAAO,OAAqB;AAE9B,sDAGgC;AAF9B,2HAAA,OAAO,OAAe;AACtB,+HAAA,gCAAgC,OAAA;AAElC,0DAEkC;AADhC,+HAAA,OAAO,OAAiB;AAE1B,4DAImC;AAHjC,iIAAA,OAAO,OAAkB;AACzB,+GAAA,aAAa,OAAA;AAGf,oDAO+B;AAN7B,yHAAA,OAAO,OAAc;AAErB,+GAAA,iBAAiB,OAAA;AACjB,uHAAA,yBAAyB,OAAA;AAI3B,wDAEiC;AAD/B,6HAAA,OAAO,OAAgB;AAGzB,+DAAyE;AAAhE,uIAAA,OAAO,OAAqB;AACrC,6DAAuE;AAA9D,qIAAA,OAAO,OAAoB"}
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* HTTP headers to be included in
|
|
2
|
+
* HTTP headers to be included in `ResponseModel`.
|
|
3
3
|
*/
|
|
4
|
-
export declare const RESPONSE_HEADERS:
|
|
5
|
-
'Content-Type': string;
|
|
6
|
-
/** Required for CORS support to work */
|
|
7
|
-
'Access-Control-Allow-Origin': string;
|
|
8
|
-
/** Required for cookies, authorization headers with HTTPS */
|
|
9
|
-
'Access-Control-Allow-Credentials': boolean;
|
|
10
|
-
};
|
|
4
|
+
export declare const RESPONSE_HEADERS: Record<string, string>;
|
|
11
5
|
/**
|
|
12
6
|
* Default message provided as part of response.
|
|
13
7
|
*/
|
|
@@ -57,13 +51,7 @@ export default class ResponseModel {
|
|
|
57
51
|
*/
|
|
58
52
|
generate(): {
|
|
59
53
|
statusCode: any;
|
|
60
|
-
headers:
|
|
61
|
-
'Content-Type': string;
|
|
62
|
-
/** Required for CORS support to work */
|
|
63
|
-
'Access-Control-Allow-Origin': string;
|
|
64
|
-
/** Required for cookies, authorization headers with HTTPS */
|
|
65
|
-
'Access-Control-Allow-Credentials': boolean;
|
|
66
|
-
};
|
|
54
|
+
headers: Record<string, string>;
|
|
67
55
|
body: string;
|
|
68
56
|
};
|
|
69
57
|
/**
|
|
@@ -78,13 +66,7 @@ export default class ResponseModel {
|
|
|
78
66
|
*/
|
|
79
67
|
static generate(data?: any, code?: number, message?: string): {
|
|
80
68
|
statusCode: any;
|
|
81
|
-
headers:
|
|
82
|
-
'Content-Type': string;
|
|
83
|
-
/** Required for CORS support to work */
|
|
84
|
-
'Access-Control-Allow-Origin': string;
|
|
85
|
-
/** Required for cookies, authorization headers with HTTPS */
|
|
86
|
-
'Access-Control-Allow-Credentials': boolean;
|
|
87
|
-
};
|
|
69
|
+
headers: Record<string, string>;
|
|
88
70
|
body: string;
|
|
89
71
|
};
|
|
90
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponseModel.d.ts","sourceRoot":"","sources":["../../src/models/ResponseModel.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"ResponseModel.d.ts","sourceRoot":"","sources":["../../src/models/ResponseModel.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMnD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,YAAY,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,IAAI,EAAE,GAAG,CAAC;IAEV,IAAI,EAAE,GAAG,CAAC;gBAEE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAQvD;;;;;OAKG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAIvC;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM;IAIpB;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM;IAIpB;;OAEG;IACH,OAAO;IAIP;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM;IAI1B;;OAEG;IACH,UAAU;IAIV;;OAEG;IACH,QAAQ;;;;;IAQR;;;;;;;;;OASG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;;;;;CAI5D"}
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DEFAULT_MESSAGE = exports.RESPONSE_HEADERS = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* HTTP headers to be included in
|
|
5
|
+
* HTTP headers to be included in `ResponseModel`.
|
|
6
6
|
*/
|
|
7
7
|
exports.RESPONSE_HEADERS = {
|
|
8
8
|
'Content-Type': 'application/json',
|
|
9
9
|
/** Required for CORS support to work */
|
|
10
10
|
'Access-Control-Allow-Origin': '*',
|
|
11
11
|
/** Required for cookies, authorization headers with HTTPS */
|
|
12
|
-
'Access-Control-Allow-Credentials': true,
|
|
12
|
+
'Access-Control-Allow-Credentials': 'true',
|
|
13
13
|
};
|
|
14
14
|
/**
|
|
15
15
|
* Default message provided as part of response.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponseModel.js","sourceRoot":"","sources":["../../src/models/ResponseModel.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,gBAAgB,
|
|
1
|
+
{"version":3,"file":"ResponseModel.js","sourceRoot":"","sources":["../../src/models/ResponseModel.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,gBAAgB,GAA2B;IACtD,cAAc,EAAE,kBAAkB;IAClC,wCAAwC;IACxC,6BAA6B,EAAE,GAAG;IAClC,6DAA6D;IAC7D,kCAAkC,EAAE,MAAM;CAC3C,CAAC;AAEF;;GAEG;AACU,QAAA,eAAe,GAAG,SAAS,CAAC;AAEzC;;GAEG;AACH,MAAqB,aAAa;IAKhC,YAAY,IAAU,EAAE,IAAa,EAAE,OAAgB;QACrD,IAAI,CAAC,IAAI,GAAG;YACV,IAAI,EAAE,IAAI,IAAI,EAAE;YAChB,OAAO,EAAE,OAAO,IAAI,uBAAe;SACpC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,eAAe,CAAC,GAAW,EAAE,KAAU;QACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,OAAO,EAAE,wBAAgB;YACzB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;SAChC,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAU,EAAE,IAAa,EAAE,OAAgB;QACzD,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;CACF;AAzFD,gCAyFC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import AWS from 'aws-sdk';
|
|
2
2
|
import DependencyAwareClass from '../core/DependencyAwareClass';
|
|
3
3
|
import DependencyInjection from '../core/DependencyInjection';
|
|
4
|
+
import { LambdaWrapperConfig } from '../core/config';
|
|
4
5
|
import SQSMessageModel from '../models/SQSMessageModel';
|
|
5
6
|
export interface SQSServiceConfig {
|
|
6
7
|
/**
|
|
@@ -17,7 +18,7 @@ export interface SQSServiceConfig {
|
|
|
17
18
|
* }
|
|
18
19
|
* ```
|
|
19
20
|
*/
|
|
20
|
-
queues?:
|
|
21
|
+
queues?: object;
|
|
21
22
|
/**
|
|
22
23
|
* Maps short friendly queue names to the queue consumer function name, for
|
|
23
24
|
* use with offline SQS emulation. Example:
|
|
@@ -38,6 +39,17 @@ export interface SQSServiceConfig {
|
|
|
38
39
|
export interface WithSQSServiceConfig {
|
|
39
40
|
sqs?: SQSServiceConfig;
|
|
40
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Type of a queue name taken from the Lambda Wrapper config type.
|
|
44
|
+
*
|
|
45
|
+
* If the `sqs` config key is absent, the resulting type is `never` (since no
|
|
46
|
+
* queues are defined).
|
|
47
|
+
*/
|
|
48
|
+
export declare type QueueName<TConfig extends WithSQSServiceConfig> = TConfig extends {
|
|
49
|
+
sqs: {
|
|
50
|
+
queues: Record<infer Key, string>;
|
|
51
|
+
};
|
|
52
|
+
} ? string & Key : never;
|
|
41
53
|
/**
|
|
42
54
|
* Allowed values for `process.env.LAMBDA_WRAPPER_OFFLINE_SQS_MODE`.
|
|
43
55
|
*/
|
|
@@ -88,7 +100,7 @@ export declare const SQS_PUBLISH_FAILURE_MODES: {
|
|
|
88
100
|
* sqs: {
|
|
89
101
|
* queues: {
|
|
90
102
|
* // add an entry for each queue mapping to its AWS name
|
|
91
|
-
* submissions: process.env.SQS_QUEUE_SUBMISSIONS,
|
|
103
|
+
* submissions: process.env.SQS_QUEUE_SUBMISSIONS as string,
|
|
92
104
|
* },
|
|
93
105
|
* },
|
|
94
106
|
* });
|
|
@@ -104,14 +116,80 @@ export declare const SQS_PUBLISH_FAILURE_MODES: {
|
|
|
104
116
|
* await sqs.publish('submissions', message);
|
|
105
117
|
* });
|
|
106
118
|
* ```
|
|
119
|
+
*
|
|
120
|
+
* When using TypeScript, queue names are inferred from your Lambda Wrapper
|
|
121
|
+
* config so that IntelliSense can provide hints and TypeScript will tell you
|
|
122
|
+
* at compile-time if you try to publish to an undefined queue.
|
|
123
|
+
*
|
|
124
|
+
* ```ts
|
|
125
|
+
* // ok
|
|
126
|
+
* await sqs.publish('submissions', message);
|
|
127
|
+
*
|
|
128
|
+
* // error: Argument of type '"submission"' is not assignable to parameter of
|
|
129
|
+
* // type '"submissions"'.
|
|
130
|
+
* await sqs.publish('submission', message);
|
|
131
|
+
* ```
|
|
132
|
+
*
|
|
133
|
+
* Note that if you're passing the queue name in as a variable, you'll need to
|
|
134
|
+
* ensure the variable type is specific enough and not simply `string`. If you
|
|
135
|
+
* have a list of queue names you will need to declare it `as const`. Otherwise,
|
|
136
|
+
* use string literal types, or the `QueueName` generic type which extracts the
|
|
137
|
+
* type of all queue names from your Lambda Wrapper config.
|
|
138
|
+
*
|
|
139
|
+
* ```ts
|
|
140
|
+
* const myQueues = ['queue1', 'queue2'];
|
|
141
|
+
* for (const queue of myQueues) {
|
|
142
|
+
* // won't compile because `queue` is of type `string`
|
|
143
|
+
* await sqs.publish(queue, message);
|
|
144
|
+
* }
|
|
145
|
+
*
|
|
146
|
+
* const myQueues = ['queue1', 'queue2'] as const;
|
|
147
|
+
* for (const queue of myQueues) {
|
|
148
|
+
* // ok now because `queue` is of type `"queue1" | "queue2"`
|
|
149
|
+
* await sqs.publish(queue, message);
|
|
150
|
+
* }
|
|
151
|
+
*
|
|
152
|
+
* // you can also simply use string literal types
|
|
153
|
+
* let queue: "queue1" | "queue2";
|
|
154
|
+
*
|
|
155
|
+
* // or accept any queue defined in the config using `QueueName`
|
|
156
|
+
* let queue: QueueName<typeof lambdaWrapper.config>;
|
|
157
|
+
* ```
|
|
158
|
+
*
|
|
159
|
+
* This is all pretty cool, but the current implementation has a caveat: the
|
|
160
|
+
* `WithSQSServiceConfig` type has to be a little vague about `sqs.queues` in
|
|
161
|
+
* order to get TypeScript to infer its keys. The following config will not
|
|
162
|
+
* raise any errors itself, but is invalid and will make the `QueueName` type
|
|
163
|
+
* `never`.
|
|
164
|
+
*
|
|
165
|
+
* ```ts
|
|
166
|
+
* lambdaWrapper.configure<WithSQSServiceConfig>({
|
|
167
|
+
* sqs: {
|
|
168
|
+
* queues: {
|
|
169
|
+
* good: 'good-queue',
|
|
170
|
+
* bad: 0, // oops, not a string, but no errors here!
|
|
171
|
+
* },
|
|
172
|
+
* },
|
|
173
|
+
* });
|
|
174
|
+
*
|
|
175
|
+
* // even though this is queue has valid config, the invalid one breaks it:
|
|
176
|
+
* // Argument of type 'string' is not assignable to parameter of type 'never'.
|
|
177
|
+
* await sqs.publish('good', message);
|
|
178
|
+
* ```
|
|
179
|
+
*
|
|
180
|
+
* If you start getting _not assignable to parameter of type 'never'_ errors on
|
|
181
|
+
* all your `SQSService` method calls, double-check that your config is correct.
|
|
182
|
+
* Be particularly careful with environment variables – by default they have
|
|
183
|
+
* type `string | undefined`. In the first example at the top of this page, a
|
|
184
|
+
* type assertion was used to coerce this to `string`.
|
|
107
185
|
*/
|
|
108
|
-
export default class SQSService extends DependencyAwareClass {
|
|
109
|
-
readonly queues: Record<
|
|
110
|
-
readonly queueConsumers: Record<
|
|
111
|
-
readonly queueUrls: Record<
|
|
186
|
+
export default class SQSService<TConfig extends LambdaWrapperConfig & WithSQSServiceConfig = any> extends DependencyAwareClass {
|
|
187
|
+
readonly queues: Record<QueueName<TConfig>, string>;
|
|
188
|
+
readonly queueConsumers: Record<QueueName<TConfig>, string>;
|
|
189
|
+
readonly queueUrls: Record<QueueName<TConfig>, string>;
|
|
112
190
|
private $sqs?;
|
|
113
191
|
private $lambda?;
|
|
114
|
-
constructor(di: DependencyInjection);
|
|
192
|
+
constructor(di: DependencyInjection<TConfig>);
|
|
115
193
|
/**
|
|
116
194
|
* Returns an SQS client instance
|
|
117
195
|
*/
|
|
@@ -133,7 +211,7 @@ export default class SQSService extends DependencyAwareClass {
|
|
|
133
211
|
* @param queue
|
|
134
212
|
* @param messageModels
|
|
135
213
|
*/
|
|
136
|
-
batchDelete(queue:
|
|
214
|
+
batchDelete(queue: QueueName<TConfig>, messageModels: SQSMessageModel[]): Promise<void>;
|
|
137
215
|
/**
|
|
138
216
|
* Check SQS status.
|
|
139
217
|
*/
|
|
@@ -143,7 +221,7 @@ export default class SQSService extends DependencyAwareClass {
|
|
|
143
221
|
*
|
|
144
222
|
* @param queue
|
|
145
223
|
*/
|
|
146
|
-
getMessageCount(queue:
|
|
224
|
+
getMessageCount(queue: QueueName<TConfig>): Promise<number>;
|
|
147
225
|
/**
|
|
148
226
|
* Publish to message queue.
|
|
149
227
|
*
|
|
@@ -158,7 +236,7 @@ export default class SQSService extends DependencyAwareClass {
|
|
|
158
236
|
* - `catch`: errors will be caught and logged. This is the default.
|
|
159
237
|
* - `throw`: errors will be thrown, causing promise to reject.
|
|
160
238
|
*/
|
|
161
|
-
publish(queue:
|
|
239
|
+
publish(queue: QueueName<TConfig>, messageObject: object, messageGroupId?: null, failureMode?: 'catch' | 'throw'): Promise<QueueName<TConfig> | null>;
|
|
162
240
|
/**
|
|
163
241
|
* Sends a message to a queue consumer running in serverless-offline.
|
|
164
242
|
*
|
|
@@ -169,13 +247,13 @@ export default class SQSService extends DependencyAwareClass {
|
|
|
169
247
|
* @param queue
|
|
170
248
|
* @param messageParameters
|
|
171
249
|
*/
|
|
172
|
-
publishOffline(queue:
|
|
250
|
+
publishOffline(queue: QueueName<TConfig>, messageParameters: AWS.SQS.SendMessageRequest): Promise<void>;
|
|
173
251
|
/**
|
|
174
252
|
* Receive from message queue
|
|
175
253
|
*
|
|
176
254
|
* @param queue string
|
|
177
255
|
* @param timeout number
|
|
178
256
|
*/
|
|
179
|
-
receive(queue:
|
|
257
|
+
receive(queue: QueueName<TConfig>, timeout?: number): Promise<SQSMessageModel[]>;
|
|
180
258
|
}
|
|
181
259
|
//# sourceMappingURL=SQSService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQSService.d.ts","sourceRoot":"","sources":["../../src/services/SQSService.ts"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,SAAS,CAAC;AAG1B,OAAO,oBAAoB,MAAM,8BAA8B,CAAC;AAChE,OAAO,mBAAmB,MAAM,6BAA6B,CAAC;AAC9D,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAKxD,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC
|
|
1
|
+
{"version":3,"file":"SQSService.d.ts","sourceRoot":"","sources":["../../src/services/SQSService.ts"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,SAAS,CAAC;AAG1B,OAAO,oBAAoB,MAAM,8BAA8B,CAAC;AAChE,OAAO,mBAAmB,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAKxD,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;;;;;OAcG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB;AAED;;;;;GAKG;AACH,oBAAY,SAAS,CAAC,OAAO,SAAS,oBAAoB,IACxD,OAAO,SAAS;IAAE,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,GAC1D,MAAM,GAAG,GAAG,GACZ,KAAK,CAAC;AAEZ;;GAEG;AACH,eAAO,MAAM,iBAAiB;IAC5B;;;;OAIG;;IAGH;;;OAGG;;IAGH;;OAEG;;CAEJ,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB;IACpC;;;;;OAKG;;IAGH;;OAEG;;CAEK,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+FG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU,CAC7B,OAAO,SAAS,mBAAmB,GAAG,oBAAoB,GAAG,GAAG,CAChE,SAAQ,oBAAoB;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IAEpD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IAE5D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IAEvD,OAAO,CAAC,IAAI,CAAC,CAAU;IAEvB,OAAO,CAAC,OAAO,CAAC,CAAa;gBAEjB,EAAE,EAAE,mBAAmB,CAAC,OAAO,CAAC;IAiC5C;;OAEG;IACH,IAAI,GAAG,YAcN;IAED;;OAEG;IACH,IAAI,MAAM,eAgBT;IAED;;;;;OAKG;IACH,MAAM,KAAK,WAAW,WAErB;IAED;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgDvF;;OAEG;IACH,WAAW;IA2BX;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IA6B3D;;;;;;;;;;;;;OAaG;IACG,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,OAAO,EAAE,WAAW,GAAE,OAAO,GAAG,OAAyC;IAsCvJ;;;;;;;;;OASG;IACG,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,iBAAiB,EAAE,GAAG,CAAC,GAAG,CAAC,kBAAkB;IA6B7F;;;;;OAKG;IACH,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,SAAK,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;CAgC7E"}
|
|
@@ -86,7 +86,7 @@ exports.SQS_PUBLISH_FAILURE_MODES = {
|
|
|
86
86
|
* sqs: {
|
|
87
87
|
* queues: {
|
|
88
88
|
* // add an entry for each queue mapping to its AWS name
|
|
89
|
-
* submissions: process.env.SQS_QUEUE_SUBMISSIONS,
|
|
89
|
+
* submissions: process.env.SQS_QUEUE_SUBMISSIONS as string,
|
|
90
90
|
* },
|
|
91
91
|
* },
|
|
92
92
|
* });
|
|
@@ -102,6 +102,72 @@ exports.SQS_PUBLISH_FAILURE_MODES = {
|
|
|
102
102
|
* await sqs.publish('submissions', message);
|
|
103
103
|
* });
|
|
104
104
|
* ```
|
|
105
|
+
*
|
|
106
|
+
* When using TypeScript, queue names are inferred from your Lambda Wrapper
|
|
107
|
+
* config so that IntelliSense can provide hints and TypeScript will tell you
|
|
108
|
+
* at compile-time if you try to publish to an undefined queue.
|
|
109
|
+
*
|
|
110
|
+
* ```ts
|
|
111
|
+
* // ok
|
|
112
|
+
* await sqs.publish('submissions', message);
|
|
113
|
+
*
|
|
114
|
+
* // error: Argument of type '"submission"' is not assignable to parameter of
|
|
115
|
+
* // type '"submissions"'.
|
|
116
|
+
* await sqs.publish('submission', message);
|
|
117
|
+
* ```
|
|
118
|
+
*
|
|
119
|
+
* Note that if you're passing the queue name in as a variable, you'll need to
|
|
120
|
+
* ensure the variable type is specific enough and not simply `string`. If you
|
|
121
|
+
* have a list of queue names you will need to declare it `as const`. Otherwise,
|
|
122
|
+
* use string literal types, or the `QueueName` generic type which extracts the
|
|
123
|
+
* type of all queue names from your Lambda Wrapper config.
|
|
124
|
+
*
|
|
125
|
+
* ```ts
|
|
126
|
+
* const myQueues = ['queue1', 'queue2'];
|
|
127
|
+
* for (const queue of myQueues) {
|
|
128
|
+
* // won't compile because `queue` is of type `string`
|
|
129
|
+
* await sqs.publish(queue, message);
|
|
130
|
+
* }
|
|
131
|
+
*
|
|
132
|
+
* const myQueues = ['queue1', 'queue2'] as const;
|
|
133
|
+
* for (const queue of myQueues) {
|
|
134
|
+
* // ok now because `queue` is of type `"queue1" | "queue2"`
|
|
135
|
+
* await sqs.publish(queue, message);
|
|
136
|
+
* }
|
|
137
|
+
*
|
|
138
|
+
* // you can also simply use string literal types
|
|
139
|
+
* let queue: "queue1" | "queue2";
|
|
140
|
+
*
|
|
141
|
+
* // or accept any queue defined in the config using `QueueName`
|
|
142
|
+
* let queue: QueueName<typeof lambdaWrapper.config>;
|
|
143
|
+
* ```
|
|
144
|
+
*
|
|
145
|
+
* This is all pretty cool, but the current implementation has a caveat: the
|
|
146
|
+
* `WithSQSServiceConfig` type has to be a little vague about `sqs.queues` in
|
|
147
|
+
* order to get TypeScript to infer its keys. The following config will not
|
|
148
|
+
* raise any errors itself, but is invalid and will make the `QueueName` type
|
|
149
|
+
* `never`.
|
|
150
|
+
*
|
|
151
|
+
* ```ts
|
|
152
|
+
* lambdaWrapper.configure<WithSQSServiceConfig>({
|
|
153
|
+
* sqs: {
|
|
154
|
+
* queues: {
|
|
155
|
+
* good: 'good-queue',
|
|
156
|
+
* bad: 0, // oops, not a string, but no errors here!
|
|
157
|
+
* },
|
|
158
|
+
* },
|
|
159
|
+
* });
|
|
160
|
+
*
|
|
161
|
+
* // even though this is queue has valid config, the invalid one breaks it:
|
|
162
|
+
* // Argument of type 'string' is not assignable to parameter of type 'never'.
|
|
163
|
+
* await sqs.publish('good', message);
|
|
164
|
+
* ```
|
|
165
|
+
*
|
|
166
|
+
* If you start getting _not assignable to parameter of type 'never'_ errors on
|
|
167
|
+
* all your `SQSService` method calls, double-check that your config is correct.
|
|
168
|
+
* Be particularly careful with environment variables – by default they have
|
|
169
|
+
* type `string | undefined`. In the first example at the top of this page, a
|
|
170
|
+
* type assertion was used to coerce this to `string`.
|
|
105
171
|
*/
|
|
106
172
|
class SQSService extends DependencyAwareClass_1.default {
|
|
107
173
|
constructor(di) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQSService.js","sourceRoot":"","sources":["../../src/services/SQSService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,iCAA6B;AAC7B,sDAA0B;AAC1B,+BAAkC;AAElC,wFAAgE;
|
|
1
|
+
{"version":3,"file":"SQSService.js","sourceRoot":"","sources":["../../src/services/SQSService.ts"],"names":[],"mappings":"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"}
|