@gasbuddy/service

An opinionated framework for building configuration driven services - web, api, or job. Uses swagger, pino logging, express, confit, Typescript and Jest.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
@gasbuddy/service
01412.17.04 months ago6 years agoMinified + gzip package size for @gasbuddy/service in KB

Readme

@gasbuddy/service
Node CI
An opinionated framework for building high scale services - web, api, or job. Uses OpenAPI, pino, express, confit, Typescript and jest.
This module creates an environment that makes it simpler to host a REST service (less repetition, more enterprise grade features). Wherever possible, we use off the shelf infrastructure (OpenAPI, Express@5, Terminus are examples). The goal is to allow you to enjoy a high level of type safety with a low tax in type construction in a microservice environment.
In previous versions of this module, we relied on configuration files to "hydrate" a number of objects into the runtime. We have moved away from that in favor of just creating objects in a simple service Typescript file that plays much nicer with type safety.
The module takes care of configuration-driven:
  • body logging
  • json parsing
  • error handling
  • hosted OpenAPI documents/handlers
  • traditional routing
  • graceful shutdown
  • health checks
  • Telemetry and instrumentation

Our services (like this module) use Typescript with Node 18, which involves transpilation. This module takes that into account across the development and production experience.
This needs lots more documentation... Just a start.