serverless-typescript icon indicating copy to clipboard operation
serverless-typescript copied to clipboard

Serverless framework plugin for typescript specific ehancements

Serverless

A Serverless plugin improving typescript developer experience. Lambda related configuration should be as close as possible from actually executed source code. Target typical lambda structure :

import { Event, parseBody } from 'serverless-typescript/lib/api/input-validation';

interface MyHTTPBody {
  param1: string;
  param2: number;
}

/*
 * @Security({'custom:role': Role.Superadmin})
 * @Path('GET', '/api/{myParam}/list')
 */
export const main = async (event: Event<MyHTTPBody>): Promise<APIGatewayProxyResult> => {
  const input = parseBody(event);
  console.log(input.param1);
  //...
};

Highlights

  • [AWS] API Gateway HTTP input validation based on typescript interfaces
  • [AWS] API Gateway routing from annotation
  • [AWS] Cognito custom attributes checking on request

Install

$ npm install serverless-typescript --save-dev

Add the plugin to your serverless.yml file:

plugins:
  - serverless-typescript