{"id":13455846,"url":"https://github.com/aws-powertools/powertools-lambda-typescript","last_synced_at":"2025-05-12T13:21:13.611Z","repository":{"id":36963829,"uuid":"305501331","full_name":"aws-powertools/powertools-lambda-typescript","owner":"aws-powertools","description":"Powertools for AWS is a developer toolkit to implement Serverless best practices and increase developer velocity.","archived":false,"fork":false,"pushed_at":"2025-05-08T08:44:07.000Z","size":41417,"stargazers_count":1654,"open_issues_count":32,"forks_count":154,"subscribers_count":26,"default_branch":"main","last_synced_at":"2025-05-08T09:30:59.762Z","etag":null,"topics":["aws","aws-lambda","aws-sdk","instrumentation","lambda","nodejs","powertools","serverless","typescript"],"latest_commit_sha":null,"homepage":"https://docs.powertools.aws.dev/lambda/typescript/latest/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit-0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aws-powertools.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"docs/roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-10-19T20:09:37.000Z","updated_at":"2025-05-08T08:44:10.000Z","dependencies_parsed_at":"2023-01-17T09:03:42.098Z","dependency_job_id":"55d9ee28-8f31-414a-a11b-540bb65301e8","html_url":"https://github.com/aws-powertools/powertools-lambda-typescript","commit_stats":{"total_commits":1954,"total_committers":66,"mean_commits":"29.606060606060606","dds":0.4785056294779939,"last_synced_commit":"ada7fd411d54bd991e46e2e61c31e7f800883e8b"},"previous_names":["aws-powertools/powertools-lambda-typescript","awslabs/aws-lambda-powertools-typescript"],"tags_count":121,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws-powertools%2Fpowertools-lambda-typescript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws-powertools%2Fpowertools-lambda-typescript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws-powertools%2Fpowertools-lambda-typescript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws-powertools%2Fpowertools-lambda-typescript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aws-powertools","download_url":"https://codeload.github.com/aws-powertools/powertools-lambda-typescript/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253745197,"owners_count":21957320,"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":["aws","aws-lambda","aws-sdk","instrumentation","lambda","nodejs","powertools","serverless","typescript"],"created_at":"2024-07-31T08:01:12.029Z","updated_at":"2025-05-12T13:21:13.605Z","avatar_url":"https://github.com/aws-powertools.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","aws"],"sub_categories":[],"readme":"\u003c!-- markdownlint-disable MD013  --\u003e\n# Powertools for AWS Lambda (TypeScript)\n\n![NodeSupport](https://img.shields.io/static/v1?label=node\u0026message=%2018|%2020|%2022\u0026color=green?style=flat-square\u0026logo=node)\n![GitHub Release](https://img.shields.io/github/v/release/aws-powertools/powertools-lambda-typescript?style=flat-square)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=aws-powertools_powertools-lambda-typescript\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=aws-powertools_powertools-lambda-typescript)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=aws-powertools_powertools-lambda-typescript\u0026metric=security_rating)](https://sonarcloud.io/summary/new_code?id=aws-powertools_powertools-lambda-typescript)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/aws-powertools/powertools-lambda-typescript/badge)](https://api.securityscorecards.dev/projects/github.com/aws-powertools/powertools-lambda-typescript)\n[![Join our Discord](https://dcbadge.vercel.app/api/server/B8zZKbbyET?style=flat-square)](https://discord.gg/B8zZKbbyET)\n\nPowertools for AWS Lambda (TypeScript) is a developer toolkit to implement Serverless [best practices and increase developer velocity](https://docs.powertools.aws.dev/lambda/typescript/latest/#features).\n\nYou can use the library in both TypeScript and JavaScript code bases.\n\n\u003e Also available in [Python](https://github.com/aws-powertools/powertools-lambda-python), [Java](https://github.com/aws-powertools/powertools-lambda-java), and [.NET](https://github.com/aws-powertools/powertools-lambda-dotnet).\n\n**[Documentation](https://docs.powertools.aws.dev/lambda/typescript/latest)** | **[npmjs.com](https://www.npmjs.com/org/aws-lambda-powertools)** | **[Roadmap](https://docs.powertools.aws.dev/lambda/typescript/latest/roadmap)** | **[Examples](https://github.com/aws-powertools/powertools-lambda-typescript/tree/main/examples)**\n\n## Features\n\nFind the complete project's [documentation here](https://docs.powertools.aws.dev/lambda/typescript/latest).\n\n- **[Tracer](https://docs.powertools.aws.dev/lambda/typescript/latest/core/tracer/)** - Utilities to trace Lambda function handlers, and both synchronous and asynchronous functions\n- **[Logger](https://docs.powertools.aws.dev/lambda/typescript/latest/core/logger/)** - Structured logging made easier, and a middleware to enrich log items with key details of the Lambda context\n- **[Metrics](https://docs.powertools.aws.dev/lambda/typescript/latest/core/metrics/)** - Custom Metrics created asynchronously via CloudWatch Embedded Metric Format (EMF)\n- **[Parameters](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/parameters/)** - High-level functions to retrieve one or more parameters from AWS SSM Parameter Store, AWS Secrets Manager, AWS AppConfig, and Amazon DynamoDB\n- **[Idempotency](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/idempotency/)** - Class method decorator, Middy middleware, and function wrapper to make your Lambda functions idempotent and prevent duplicate execution based on payload content\n- **[Batch Processing](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/batch/)** - Utility to handle partial failures when processing batches from Amazon SQS, Amazon Kinesis Data Streams, and Amazon DynamoDB Streams.\n- **[JMESPath Functions](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/jmespath/)** - Built-in JMESPath functions to easily deserialize common encoded JSON payloads in Lambda functions.\n- **[Parser (Zod)](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/parser/)** - Utility that provides data validation and parsing using Zod, a TypeScript-first schema declaration and validation library.\n- **[Validation](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/validation/)** - JSON Schema validation for events and responses, including JMESPath support to unwrap events before validation.\n\n## Install\n\nYou can use Powertools for AWS Lambda (TypeScript) by installing it with your favorite dependency management, or [via Lambda Layers](https://docs.powertools.aws.dev/lambda/typescript/latest/#lambda-layer_1). All features are available as individual packages, so you can install only the ones you need, for example:\n\n- **Logger**: `npm install @aws-lambda-powertools/logger`\n- **Metrics**: `npm install @aws-lambda-powertools/metrics`\n- **Tracer**: `npm install @aws-lambda-powertools/tracer`\n- **Parameters**: `npm install @aws-lambda-powertools/parameters @aws-sdk/client-ssm` see [documentation](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/parameters/#installation) for other providers\n- **Idempotency**: `npm install @aws-lambda-powertools/idempotency @aws-sdk/client-dynamodb @aws-sdk/lib-dynamodb`\n- **Batch**: `npm install @aws-lambda-powertools/batch`\n- **JMESPath Functions**: `npm install @aws-lambda-powertools/jmespath`\n- **Parser**: `npm install @aws-lambda-powertools/parser zod@~3`\n- **Validation**: `npm install @aws-lambda-powertools/validation`\n\n### Examples\n\nYou can find examples of how to use Powertools for AWS Lambda (TypeScript) in the [examples](https://github.com/aws-powertools/powertools-lambda-typescript/tree/main/examples) directory. The directory contains code snippets around certain features as well as an is a simple REST API application that can be deployed via either AWS CDK or AWS SAM.\n\nCommunity-contributed examples:\n\n- [Serverless TypeScript Demo](https://github.com/aws-samples/serverless-typescript-demo)\n- [AWS Lambda performance tuning](https://github.com/aws-samples/optimizations-for-lambda-functions)\n\n## How to support Powertools for AWS Lambda (TypeScript)?\n\n### Becoming a reference customer\n\nKnowing which companies are using this library is important to help prioritize the project internally. If your company is using Powertools for AWS Lambda (TypeScript), you can request to have your name and logo added to the README file by raising a [Support Powertools for AWS Lambda (TypeScript) (become a reference)](https://github.com/aws-powertools/powertools-lambda-typescript/issues/new?assignees=\u0026labels=customer-reference\u0026template=support_powertools.yml\u0026title=%5BSupport+Lambda+Powertools%5D%3A+%3Cyour+organization+name%3E) issue.\n\nThe following companies, among others, use Powertools:\n\n- [Alma Media](https://www.almamedia.fi)\n- [AppYourself](https://appyourself.net)\n- [Bailey Nelson](https://www.baileynelson.com.au)\n- [Banxware](https://www.banxware.com)\n- [Caylent](https://caylent.com/)\n- [Certible](https://www.certible.com/)\n- [Elva](https://elva-group.com)\n- [Flyweight](https://flyweight.io/)\n- [globaldatanet](https://globaldatanet.com/)\n- [Guild](https://guild.com)\n- [Hashnode](https://hashnode.com/)\n- [LocalStack](https://localstack.cloud/)\n- [Ours Privacy](https://oursprivacy.com/)\n- [Perfect Post](https://www.perfectpost.fr)\n- [Sennder](https://sennder.com/)\n- [tecRacer GmbH \u0026 Co. KG](https://www.tecracer.com/)\n- [Trek10](https://www.trek10.com/)\n- [WeSchool](https://www.weschool.com)\n\n### Sharing your work\n\nShare what you did with Powertools for AWS Lambda (TypeScript) 💞💞. Blog post, workshops, presentation, sample apps and others. Check out what the community has already shared about Powertools for AWS Lambda (TypeScript) [here](https://docs.powertools.aws.dev/lambda/typescript/latest/we_made_this).\n\n### Using Lambda Layer\n\nThis helps us understand who uses Powertools for AWS Lambda (Typescript) in a non-intrusive way, and helps us gain future investments for other Powertools for AWS Lambda languages. When [using Layers](https://docs.powertools.aws.dev/lambda/typescript/latest/#lambda-layer), you can add Powertools for AWS Lambda as a dev dependency to not impact the development process.\n\n## Credits\n\n- Structured logging initial implementation from [aws-lambda-logging](https://gitlab.com/hadrien/aws_lambda_logging)\n- Powertools for AWS Lambda idea [DAZN Powertools](https://github.com/getndazn/dazn-lambda-powertools/)\n\n## Connect\n\n- **Powertools for AWS Lambda on Discord**: `#typescript` - **[Invite link](https://discord.gg/B8zZKbbyET)**\n- **Email**: \u003caws-powertools-maintainers@amazon.com\u003e\n\n## Security disclosures\n\nIf you think you’ve found a potential security issue, please do not post it in the Issues.  Instead, please follow the instructions [here](https://aws.amazon.com/security/vulnerability-reporting/) or [email AWS security directly](mailto:aws-security@amazon.com).\n\n## License\n\nThis library is licensed under the MIT-0 License. See the [LICENSE](https://github.com/aws-powertools/powertools-lambda-typescript/blob/main/LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faws-powertools%2Fpowertools-lambda-typescript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faws-powertools%2Fpowertools-lambda-typescript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faws-powertools%2Fpowertools-lambda-typescript/lists"}