ts-lambda-api - v2.5.2
    Preparing search index...

    Class ApiAppAbstract

    Application base class which combines the Server, Container (see InversifyJS) and AppConfig classes to create a decorator driven API with typescript middleware and dependency injection. It uses the lambda-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.

    Hierarchy (View Summary)

    Index

    Constructors

    • Create a new app.

      Parameters

      • OptionalcontrollersPath: 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.

      • appConfig: AppConfig = ...

        (Optional) Application config to pass to lambda-api, defaults to new AppConfig.

      • autoInjectionEnabled: boolean = true

        (Optional) Is auto injection enabled in the IOC container? Defaults to true.

      • appContainer: Container = ...

        (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.

      Returns ApiApp

    Properties

    apiServer: Server
    appConfig: AppConfig = ...

    (Optional) Application config to pass to lambda-api, defaults to new AppConfig.

    appContainer: Container = ...

    (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.

    autoInjectionEnabled: boolean = true

    (Optional) Is auto injection enabled in the IOC container? Defaults to true.

    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.

    initialised: boolean
    logFactory: LogFactory
    logger: ILogger

    Accessors

    Methods

    • Configure the API instance from the lambda-api package.

      Parameters

      • configureBlock: (this: void, api: API) => void

        Function that takes an API instance as a parameter.

      Returns void

    • Configure the InversifyJS IOC Container instance.

      Parameters

      • configureBlock: (this: void, container: Container) => void

        Function that takes a Container instance as a parameter.

      Returns void

    • Initialise all controllers and endpoints declared using decorators.

      Returns Promise<void>

    • Run using the passed event and context, ultimately should call the processEvent method on the apiServer instance.

      Parameters

      • event: ApiRequest

        API Gateway or ALB request.

      • context: any

        Request context.

      Returns Promise<ApiResponse>

      The response.