0.65.2 • Published 7 days ago

@dzangolab/fastify-config v0.65.2

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

In a simple repo:

npm install @dzangolab/fastify-config

If using in a monorepo with pnpm:

pnpm add --filter "myrepo" @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";

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

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

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

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

7 days ago

0.65.1

10 days ago

0.65.0

15 days ago

0.64.2

1 month ago

0.64.1

1 month ago

0.64.0

2 months ago

0.63.0

2 months ago

0.62.4

2 months ago

0.62.3

2 months ago

0.62.2

2 months ago

0.62.1

3 months ago

0.62.0

3 months ago

0.61.1

3 months ago

0.61.0

3 months ago

0.59.0

4 months ago

0.60.0

3 months ago

0.58.0

4 months ago

0.57.1

4 months ago

0.57.0

4 months ago

0.56.0

5 months ago

0.55.2

5 months ago

0.55.1

5 months ago

0.55.0

5 months ago

0.54.0

5 months ago

0.53.4

5 months ago

0.53.3

5 months ago

0.43.0

8 months ago

0.36.2

10 months ago

0.36.1

10 months ago

0.36.0

10 months ago

0.51.0

6 months ago

0.51.1

6 months ago

0.48.0

8 months ago

0.48.1

8 months ago

0.44.0

8 months ago

0.40.2

9 months ago

0.40.0

9 months ago

0.40.1

9 months ago

0.37.1

9 months ago

0.37.0

9 months ago

0.52.1

6 months ago

0.52.0

6 months ago

0.49.0

7 months ago

0.45.0

8 months ago

0.41.0

9 months ago

0.38.0

9 months ago

0.53.2

5 months ago

0.34.0

10 months ago

0.53.0

6 months ago

0.53.1

6 months ago

0.46.0

8 months ago

0.42.0

8 months ago

0.39.1

9 months ago

0.39.0

9 months ago

0.35.0

10 months ago

0.50.1

6 months ago

0.50.0

7 months ago

0.47.0

8 months ago

0.33.0

11 months ago

0.20.0

1 year ago

0.32.8

11 months ago

0.32.7

11 months ago

0.32.6

11 months ago

0.32.5

12 months ago

0.32.4

12 months ago

0.32.3

12 months ago

0.32.2

12 months ago

0.32.1

12 months ago

0.32.9

11 months ago

0.32.0

1 year ago

0.29.0

1 year ago

0.25.3

1 year ago

0.25.2

1 year ago

0.25.1

1 year ago

0.25.0

1 year ago

0.21.0

1 year ago

0.18.1

1 year ago

0.18.2

1 year ago

0.18.3

1 year ago

0.18.0

1 year ago

0.26.3

1 year ago

0.26.2

1 year ago

0.26.1

1 year ago

0.26.0

1 year ago

0.22.1

1 year ago

0.22.0

1 year ago

0.19.0

1 year ago

0.30.0

1 year ago

0.27.1

1 year ago

0.27.0

1 year ago

0.23.0

1 year ago

0.32.10

11 months ago

0.31.3

1 year ago

0.31.2

1 year ago

0.31.1

1 year ago

0.31.0

1 year ago

0.28.0

1 year ago

0.24.0

1 year ago

0.5.10

1 year ago

0.8.5

1 year ago

0.8.4

1 year ago

0.8.6

1 year ago

0.11.0

1 year ago

0.11.1

1 year ago

0.13.0

1 year ago

0.11.2

1 year ago

0.15.0

1 year ago

0.15.1

1 year ago

0.17.0

1 year ago

0.15.2

1 year ago

0.17.1

1 year ago

0.9.0

1 year ago

0.5.4

1 year ago

0.5.3

1 year ago

0.9.2

1 year ago

0.5.6

1 year ago

0.9.1

1 year ago

0.5.5

1 year ago

0.7.0

1 year ago

0.5.2

1 year ago

0.5.1

1 year ago

0.3.3

1 year ago

0.5.8

1 year ago

0.5.7

1 year ago

0.5.9

1 year ago

0.10.1

1 year ago

0.12.0

1 year ago

0.10.2

1 year ago

0.12.1

1 year ago

0.10.3

1 year ago

0.14.0

1 year ago

0.12.2

1 year ago

0.10.4

1 year ago

0.14.1

1 year ago

0.12.3

1 year ago

0.10.5

1 year ago

0.16.0

1 year ago

0.10.6

1 year ago

0.10.7

1 year ago

0.10.8

1 year ago

0.10.0

1 year ago

0.2.1

1 year ago

0.8.1

1 year ago

0.8.0

1 year ago

0.8.3

1 year ago

0.8.2

1 year ago

0.6.1

1 year ago

0.6.0

1 year ago

0.5.0

1 year ago

0.4.0

1 year ago

0.3.0

1 year ago

0.2.0

1 year ago

0.1.0

1 year ago

0.0.14

1 year ago

0.0.13

1 year ago

0.0.12

1 year ago

0.0.11

1 year ago

0.0.10

1 year ago

0.0.9

1 year ago

0.0.6

1 year ago