{"id":19050842,"url":"https://github.com/fredericbarthelet/serverless-typescript","last_synced_at":"2025-04-24T01:24:32.639Z","repository":{"id":46908512,"uuid":"243330627","full_name":"fredericbarthelet/serverless-typescript","owner":"fredericbarthelet","description":"Serverless framework plugin for typescript specific ehancements","archived":false,"fork":false,"pushed_at":"2023-01-05T08:40:32.000Z","size":946,"stargazers_count":24,"open_issues_count":11,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-18T09:34:24.922Z","etag":null,"topics":["serverless"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fredericbarthelet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-02-26T18:04:20.000Z","updated_at":"2021-10-14T09:38:35.000Z","dependencies_parsed_at":"2023-02-03T21:02:27.938Z","dependency_job_id":null,"html_url":"https://github.com/fredericbarthelet/serverless-typescript","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredericbarthelet%2Fserverless-typescript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredericbarthelet%2Fserverless-typescript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredericbarthelet%2Fserverless-typescript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredericbarthelet%2Fserverless-typescript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fredericbarthelet","download_url":"https://codeload.github.com/fredericbarthelet/serverless-typescript/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250306542,"owners_count":21408925,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["serverless"],"created_at":"2024-11-08T23:16:27.790Z","updated_at":"2025-04-24T01:24:32.619Z","avatar_url":"https://github.com/fredericbarthelet.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![](./docs/header.png)\n\n[![Serverless][ico-serverless]][link-serverless]\n\nA Serverless plugin improving typescript developer experience.\nLambda related configuration should be as close as possible from actually executed source code.\nTarget typical lambda structure :\n\n```ts\nimport { Event, parseBody } from 'serverless-typescript/lib/api/input-validation';\n\ninterface MyHTTPBody {\n  param1: string;\n  param2: number;\n}\n\n/*\n * @Security({'custom:role': Role.Superadmin})\n * @Path('GET', '/api/{myParam}/list')\n */\nexport const main = async (event: Event\u003cMyHTTPBody\u003e): Promise\u003cAPIGatewayProxyResult\u003e =\u003e {\n  const input = parseBody(event);\n  console.log(input.param1);\n  //...\n};\n```\n\n## Highlights\n\n* [[AWS] API Gateway HTTP input validation based on typescript interfaces](./docs/input-validation.md)\n* [AWS] API Gateway routing from annotation\n* [AWS] Cognito custom attributes checking on request\n\n## Install\n\n```bash\n$ npm install serverless-typescript --save-dev\n```\n\nAdd the plugin to your `serverless.yml` file:\n\n```yaml\nplugins:\n  - serverless-typescript\n```\n\n[ico-serverless]: http://public.serverless.com/badges/v3.svg\n\n[link-serverless]: http://www.serverless.com/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffredericbarthelet%2Fserverless-typescript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffredericbarthelet%2Fserverless-typescript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffredericbarthelet%2Fserverless-typescript/lists"}