0.75.0 • Published 9 months ago

@dzangolab/fastify-config v0.75.0

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

@dzangolab/fastify-config

A Fastify plugin that defines an opinionated config for an API.

When registered on a Fastify instance, the plugin will:

  • decorate the Fastify instance with the config object, available with the config attribute.
  • decorate all requests with the config object, available with the config attribute; this can be used to construct a buildContext for mercurius resolvers, for example.
  • decorate the Fastify instance with a hostname attribute.

Installation

Install with npm:

npm install @dzangolab/fastify-config

Install with pnpm:

pnpm add --filter "@scope/project @dzangolab/fastify-config

Usage

Somewhere in your code, create a config.ts file that looks like this:

import { parse } from "@dzangolab/fastify-config";
import dotenv from "dotenv";

import type { ApiConfig } from "@dzangolab/fastify-config";

dotenv.config();

const config: ApiConfig = {
  appName: process.env.APP_NAME as string,
  appOrigin: (process.env.APP_ORIGIN as string).split(","),
  baseUrl: process.env.BASE_URL as string,
  env: parse(process.env.NODE_ENV, "development") as string,
  logger: {
    level: parse(process.env.LOG_LEVEL, "error") as string,
  },
  name: process.env.NAME as string,
  pagination: {
    default_limit: parse(process.env.PAGINATION_DEFAULT_LIMIT, 25) as number,
    max_limit: parse(process.env.PAGINATION_MAX_LIMIT, 50) as number,
  },
  port: parse(process.env.PORT, 20040) as number,
  protocol: parse(process.env.PROTOCOL, "http") as string,
  rest: {
    enabled: parse(process.env.REST_ENABLED, true) as boolean,
  },
  version: `${process.env.npm_package_version || process.env.API_VERSION}+${process.env.API_BUILD || "local"}` as string,
};

export default config;

Register the plugin with your Fastify instance:

import configPlugin from "@dzangolab/fastify-config";
import Fastify from "fastify";

import config from "./config";

const start = async () => {
  // Create fastify instance
  const fastify = Fastify({
    logger: config.logger,
  });

  // Register fastify-config plugin
  await fastify.register(configPlugin, { config });

  await fastify.listen({
    port: config.port,
    host: "0.0.0.0",
  });
};

start();
0.75.0

9 months ago

0.74.1

9 months ago

0.74.0

9 months ago

0.70.0

12 months ago

0.67.0

1 year ago

0.67.2

1 year ago

0.67.1

1 year ago

0.71.3

11 months ago

0.71.2

11 months ago

0.71.1

11 months ago

0.71.0

12 months ago

0.68.3

1 year ago

0.68.2

1 year ago

0.68.1

1 year ago

0.68.0

1 year ago

0.72.1

10 months ago

0.72.0

10 months ago

0.69.0

1 year ago

0.73.1

10 months ago

0.73.0

10 months ago

0.66.0

1 year ago

0.65.5

1 year ago

0.65.4

1 year ago

0.65.3

1 year ago

0.65.2

1 year ago

0.65.1

1 year ago

0.65.0

1 year ago

0.64.2

1 year ago

0.64.1

1 year ago

0.64.0

1 year ago

0.63.0

1 year ago

0.62.4

1 year ago

0.62.3

1 year ago

0.62.2

1 year ago

0.62.1

1 year ago

0.62.0

1 year ago

0.61.1

1 year ago

0.61.0

1 year ago

0.59.0

1 year ago

0.60.0

1 year ago

0.58.0

1 year ago

0.57.1

2 years ago

0.57.0

2 years ago

0.56.0

2 years ago

0.55.2

2 years ago

0.55.1

2 years ago

0.55.0

2 years ago

0.54.0

2 years ago

0.53.4

2 years ago

0.53.3

2 years ago

0.43.0

2 years ago

0.36.2

2 years ago

0.36.1

2 years ago

0.36.0

2 years ago

0.51.0

2 years ago

0.51.1

2 years ago

0.48.0

2 years ago

0.48.1

2 years ago

0.44.0

2 years ago

0.40.2

2 years ago

0.40.0

2 years ago

0.40.1

2 years ago

0.37.1

2 years ago

0.37.0

2 years ago

0.52.1

2 years ago

0.52.0

2 years ago

0.49.0

2 years ago

0.45.0

2 years ago

0.41.0

2 years ago

0.38.0

2 years ago

0.53.2

2 years ago

0.34.0

2 years ago

0.53.0

2 years ago

0.53.1

2 years ago

0.46.0

2 years ago

0.42.0

2 years ago

0.39.1

2 years ago

0.39.0

2 years ago

0.35.0

2 years ago

0.50.1

2 years ago

0.50.0

2 years ago

0.47.0

2 years ago

0.33.0

2 years ago

0.20.0

2 years ago

0.32.8

2 years ago

0.32.7

2 years ago

0.32.6

2 years ago

0.32.5

2 years ago

0.32.4

2 years ago

0.32.3

2 years ago

0.32.2

2 years ago

0.32.1

2 years ago

0.32.9

2 years ago

0.32.0

2 years ago

0.29.0

2 years ago

0.25.3

2 years ago

0.25.2

2 years ago

0.25.1

2 years ago

0.25.0

2 years ago

0.21.0

2 years ago

0.18.1

2 years ago

0.18.2

2 years ago

0.18.3

2 years ago

0.18.0

2 years ago

0.26.3

2 years ago

0.26.2

2 years ago

0.26.1

2 years ago

0.26.0

2 years ago

0.22.1

2 years ago

0.22.0

2 years ago

0.19.0

2 years ago

0.30.0

2 years ago

0.27.1

2 years ago

0.27.0

2 years ago

0.23.0

2 years ago

0.32.10

2 years ago

0.31.3

2 years ago

0.31.2

2 years ago

0.31.1

2 years ago

0.31.0

2 years ago

0.28.0

2 years ago

0.24.0

2 years ago

0.5.10

3 years ago

0.8.5

3 years ago

0.8.4

3 years ago

0.8.6

3 years ago

0.11.0

3 years ago

0.11.1

3 years ago

0.13.0

2 years ago

0.11.2

3 years ago

0.15.0

2 years ago

0.15.1

2 years ago

0.17.0

2 years ago

0.15.2

2 years ago

0.17.1

2 years ago

0.9.0

3 years ago

0.5.4

3 years ago

0.5.3

3 years ago

0.9.2

3 years ago

0.5.6

3 years ago

0.9.1

3 years ago

0.5.5

3 years ago

0.7.0

3 years ago

0.5.2

3 years ago

0.5.1

3 years ago

0.3.3

3 years ago

0.5.8

3 years ago

0.5.7

3 years ago

0.5.9

3 years ago

0.10.1

3 years ago

0.12.0

3 years ago

0.10.2

3 years ago

0.12.1

3 years ago

0.10.3

3 years ago

0.14.0

2 years ago

0.12.2

3 years ago

0.10.4

3 years ago

0.14.1

2 years ago

0.12.3

2 years ago

0.10.5

3 years ago

0.16.0

2 years ago

0.10.6

3 years ago

0.10.7

3 years ago

0.10.8

3 years ago

0.10.0

3 years ago

0.2.1

3 years ago

0.8.1

3 years ago

0.8.0

3 years ago

0.8.3

3 years ago

0.8.2

3 years ago

0.6.1

3 years ago

0.6.0

3 years ago

0.5.0

3 years ago

0.4.0

3 years ago

0.3.0

3 years ago

0.2.0

3 years ago

0.1.0

3 years ago

0.0.14

3 years ago

0.0.13

3 years ago

0.0.12

3 years ago

0.0.11

3 years ago

0.0.10

3 years ago

0.0.9

3 years ago

0.0.6

3 years ago