0.84.3 • Published 6 months ago

@dzangolab/fastify-config v0.84.3

Weekly downloads
-
License
MIT
Repository
github
Last release
6 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.81.0

7 months ago

0.78.0

9 months ago

0.82.0

7 months ago

0.79.0

9 months ago

0.76.2

12 months ago

0.76.1

12 months ago

0.76.4

11 months ago

0.76.3

11 months ago

0.76.0

12 months ago

0.80.0

8 months ago

0.80.1

8 months ago

0.77.5

10 months ago

0.77.4

10 months ago

0.77.7

10 months ago

0.77.6

10 months ago

0.77.1

10 months ago

0.77.0

11 months ago

0.77.3

10 months ago

0.77.2

10 months ago

0.75.3

1 year ago

0.75.2

1 year ago

0.75.5

1 year ago

0.75.4

1 year ago

0.75.1

1 year ago

0.83.0

7 months ago

0.84.0

7 months ago

0.84.1

7 months ago

0.84.2

7 months ago

0.84.3

6 months ago

0.75.0

1 year ago

0.74.1

1 year ago

0.74.0

1 year ago

0.70.0

1 year ago

0.67.0

2 years ago

0.67.2

2 years ago

0.67.1

2 years ago

0.71.3

1 year ago

0.71.2

1 year ago

0.71.1

1 year ago

0.71.0

1 year ago

0.68.3

1 year ago

0.68.2

1 year ago

0.68.1

2 years ago

0.68.0

2 years ago

0.72.1

1 year ago

0.72.0

1 year ago

0.69.0

1 year ago

0.73.1

1 year ago

0.73.0

1 year ago

0.66.0

2 years ago

0.65.5

2 years ago

0.65.4

2 years ago

0.65.3

2 years ago

0.65.2

2 years ago

0.65.1

2 years ago

0.65.0

2 years ago

0.64.2

2 years ago

0.64.1

2 years ago

0.64.0

2 years ago

0.63.0

2 years ago

0.62.4

2 years ago

0.62.3

2 years ago

0.62.2

2 years ago

0.62.1

2 years ago

0.62.0

2 years ago

0.61.1

2 years ago

0.61.0

2 years ago

0.59.0

2 years ago

0.60.0

2 years ago

0.58.0

2 years 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

3 years ago

0.32.8

2 years ago

0.32.7

3 years ago

0.32.6

3 years ago

0.32.5

3 years ago

0.32.4

3 years ago

0.32.3

3 years ago

0.32.2

3 years ago

0.32.1

3 years ago

0.32.9

2 years ago

0.32.0

3 years ago

0.29.0

3 years ago

0.25.3

3 years ago

0.25.2

3 years ago

0.25.1

3 years ago

0.25.0

3 years ago

0.21.0

3 years ago

0.18.1

3 years ago

0.18.2

3 years ago

0.18.3

3 years ago

0.18.0

3 years ago

0.26.3

3 years ago

0.26.2

3 years ago

0.26.1

3 years ago

0.26.0

3 years ago

0.22.1

3 years ago

0.22.0

3 years ago

0.19.0

3 years ago

0.30.0

3 years ago

0.27.1

3 years ago

0.27.0

3 years ago

0.23.0

3 years ago

0.32.10

2 years ago

0.31.3

3 years ago

0.31.2

3 years ago

0.31.1

3 years ago

0.31.0

3 years ago

0.28.0

3 years ago

0.24.0

3 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

3 years ago

0.11.2

3 years ago

0.15.0

3 years ago

0.15.1

3 years ago

0.17.0

3 years ago

0.15.2

3 years ago

0.17.1

3 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

3 years ago

0.12.2

3 years ago

0.10.4

3 years ago

0.14.1

3 years ago

0.12.3

3 years ago

0.10.5

3 years ago

0.16.0

3 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