UNPKG

@multicloud/sls-aws

Version:

Amazon AWS specific middleware and components for Serverless @multicloud.

45 lines (44 loc) 1.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const sls_core_1 = require("@multicloud/sls-core"); const inversify_1 = require("inversify"); const _1 = require("."); const services_1 = require("./services"); /** * AWS Module that can be registered in IoC container */ class AwsModule { /** * Determines whether or not the incoming request is an AWS request * @param req The IoC resolution request */ isAwsRequest(req) { const runtimeArgs = req.parentContext.container.get(sls_core_1.ComponentType.RuntimeArgs); return runtimeArgs && runtimeArgs[1].awsRequestId; } ; /** * Creates the inversify container module */ create() { return new inversify_1.ContainerModule((bind) => { bind(sls_core_1.ComponentType.CloudContext) .to(_1.AwsContext) .inSingletonScope() .when(this.isAwsRequest); bind(sls_core_1.ComponentType.CloudRequest) .to(_1.AwsRequest) .when(this.isAwsRequest); bind(sls_core_1.ComponentType.CloudResponse) .to(_1.AwsResponse) .when(this.isAwsRequest); bind(sls_core_1.ComponentType.CloudService) .to(services_1.LambdaCloudService) .when(this.isAwsRequest); bind(sls_core_1.ComponentType.CloudStorage) .to(_1.S3Storage) .when(this.isAwsRequest); }); } } exports.AwsModule = AwsModule;