npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mosaic-toolkit

v1.0.0

Published

Reusable NodeJS - TypeScript utilities for AWS Lambda

Readme

Package Code Workflow Cloudformation Build Workflow Cloudformation Deploy Workflow Promotion Workflow

Mosaic - AWS Lambda Template (NodeJS and TypeScript)

This project serves as a template for creating AWS Lambda functions using Node.js and TypeScript.

It aims to provide a foundation for developing serverless applications on AWS platform with Integrations (Ingress and Egress) mentioned below.

Integrations

Ingress (Lambda Handlers)

  1. Lambda
  2. Kafka
  3. API Gateway
  4. S3

Egress (Service Clients)

  1. Hasura
  2. Kafka - MSK
  3. Function - AWS Lambda
  4. Object Storage - S3
  5. Secrets Management - AWS Secrets Manager
  6. Microservices - ECS (TBD)
  7. Application Config - Launch Darkly (TBD)

Technical Specifications

Runtime - NodeJS

Language - TypeScript

Libraries

  1. AWS SDK - Used to Call S3, Lambdas, ECS, Secret Manager
  2. Lambda Power Tools - Used for Logging Framework
  3. Axios - Used to Call Hasura, External API's
  4. Kafka JS - Used to Produce Messages to Kafka
  5. Webpack - Used for Transpiling the TypeScript Code, minify and Bundle it
  6. Jest - Unit Testing Framework
  7. ES Lint - Static Code Analyzer
  8. Prettier - Code Formatter
  9. Gradle - Dependency Management, Release Versioning
  10. Zod - Validation Library
  11. Handlebars - Templating Engine
  12. Date Fns - Date Manipulation Library

Steps to create a new Lambda Function

  1. Run the Github Actions Workflow in https://github.com/VMobilitySandbox/DeveloperTools to create your own repos based on the template
  2. Start by updating the necessary configuration (Name, Description) in the package.json and folder structure to reflect the name of the service.
  3. Remove the Dependencies from package.json which are not necessary for your application.
  4. Rename the Lambda handler file to index.ts (index_Kafka.ts becomes index.ts).
  5. Remove any redundant handler files that are not needed for the service.
  6. Review the contents of the Client and Config folders, retaining only the clients and configurations essential for the service. Delete any unnecessary files within these folders.
  7. Remove any unnecessary Jest Test Files or Integration Test Files not needed for your application.
  8. In the InitializationService.ts file, include only the function calls necessary for the initialization phase of your service. Remove any unused function calls.
  9. Remove the provided DummyService and DummyModels files, as they are only provided for reference and are not required for the service.
  10. Update the default-config.json and env-config.json file with the default configurations required for your service. These configurations can be overridden if necessary using Lambda Environment Variables.
  11. Run npm install to download the dependencies.
  12. Ensure that SERVICE_NAME and ENVIRONMENT are added to the default-config.json.
  13. Create a README.md file based on the template provided in APP_README.md, filling in all necessary details about the service.
  14. Create a CHANGELOG.md file based on the template provided in APP_CHANGELOG.md, documenting all changes made in each release of the service. Include details about enhancements, bug fixes, and any other modifications made.

Note

  1. This is a template with boilerplate code, Ensure that you integrate the necessary services and thoroughly test it.
  2. Avoid implementing any business logic within the handler.
  3. The code within the handler of the template is solely for demonstration purposes.
  4. Refer to Development Workflow - Best Practices in https://dev.azure.com/atsol/Mosaic/_wiki/wikis/Mosaic.wiki/2107/Development-Workflow-Best-Practices

Pending Items

  1. Launch Darkly Integration

Integration Testing

Integration Testing can be done in AWS Workspace using the Test classes provided in integration folder

  1. Configure your Integration Test File name correctly in .vscode\launch.json
  2. Use the Run and Debug pane in VS Code to run the Integration Test