Abstract
Create a new app.
Optional
controllersPath: string[](Optional) Paths to the directories that contain controller js
files that
declare controllers. Required if the default Container
is used, or the
autoInjectionEnabled
is set to true
. Ignored if the autoInjectionEnabled
is set to false
.
(Optional) Application config to pass to lambda-api
, defaults to new AppConfig
.
(Optional) Is auto injection enabled in the IOC container? Defaults to true
.
(Optional) InversifyJS
IOC Container
instance which can
build controllers and error interceptors, defaults to new Container
using
autobind
flag set to true
if autoInjectionEnabled
is true
. If you pass your own
instance autoInjectionEnabled
must reflect the autobind flag passed to the Container.
Protected
Readonly
apiProtected
app(Optional) Application config to pass to lambda-api
, defaults to new AppConfig
.
Protected
app(Optional) InversifyJS
IOC Container
instance which can
build controllers and error interceptors, defaults to new Container
using
autobind
flag set to true
if autoInjectionEnabled
is true
. If you pass your own
instance autoInjectionEnabled
must reflect the autobind flag passed to the Container.
Protected
auto(Optional) Is auto injection enabled in the IOC container? Defaults to true
.
Protected
Optional
Readonly
controllers(Optional) Paths to the directories that contain controller js
files that
declare controllers. Required if the default Container
is used, or the
autoInjectionEnabled
is set to true
. Ignored if the autoInjectionEnabled
is set to false
.
Protected
initialisedProtected
Readonly
logProtected
loggerConfigure the API
instance from the lambda-api
package.
Function that takes an API
instance as a parameter.
Configure the InversifyJS
IOC Container
instance.
Function that takes a Container
instance as a parameter.
Initialise all controllers and endpoints declared using decorators.
Abstract
runRun using the passed event and context, ultimately should call the
processEvent
method on the apiServer
instance.
API Gateway or ALB request.
Request context.
The response.
Application base class which combines the
Server
,Container
(seeInversifyJS
) andAppConfig
classes to create a decorator driven API with typescript middleware and dependency injection. It uses thelambda-api
package as the underlying HTTP API framework.AWS Lambda requests are handled by the
run
method, which will return a response compatible with either API Gateway or an ALB.Extending this class will allow creating an app implementation for runtimes, AWS Lambda, Local Web Server etc.