0.65.2 • Published 5 days ago

@dzangolab/fastify-slonik v0.65.2

Weekly downloads
-
License
MIT
Repository
github
Last release
5 days ago

@dzangolab/fastify-slonik

A Fastify plugin that provides an easy integration of slonik in a fastify API.

The plugin is a thin wrapper around the fastify-slonik plugin.

The plugin also includes logic to run migrations via @dzangolab/postgres-migrations which is forked from postgres-migrations.

Requirements

  • @dzangolab/fastify-config
  • slonik

Installation

In a simple repo:

npm install @dzangolab/fastify-slonik slonik

If using in a monorepo with pnpm:

pnpm add --filter "myrepo" @dzangolab/fastify-slonik slonik

Usage

Add a slonik block to your config:

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

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

dotenv.config();

const config: ApiConfig = {
  ...
  slonik: {
    db: {
      databaseName: process.env.DB_NAME as string,
      host: process.env.DB_HOST as string,
      password: process.env.DB_PASSWORD as string,
      port: parse(process.env.DB_PORT, 5432) as number,
      username: process.env.DB_USER as string,
    },
    migrations: {
      development: parse(
        process.env.MIGRATIONS_DEVELOPMENT_FOLDER,
        "migrations"
      ) as string,
      production: parse(
        process.env.MIGRATIONS_PRODUCTION_FOLDER,
        "apps/api/build/migrations"
      ) as string,
    },
  },
  ...
};

export default config;

Register the plugin with your Fastify instance:

import configPlugin from "@dzangolab/fastify-config";
import slonikPlugin, { migrationPlugin } from "@dzangolab/fastify-slonik";
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 });

// Register fastify-slonik plugin
fastify.register(slonikPlugin);

// Run database migrations
await api.register(migrationPlugin);

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

Note: migrationPlugin should be registered after all the plugins.

Configuration

db

AttributeTypeDescription
databasestringThe name of the database to connect to.
hoststringThe database's host.
passwordstringThe password for connecting to the database.
portnumberThe database's port.
usernamestringThe username for connecting to the database.

migrations

Paths to the migrations files. You can specify 1 path per environment. Currently the only environments supported are: development andproduction.

The path must be relative to node.js process.cwd().

0.65.2

5 days ago

0.65.1

8 days ago

0.65.0

13 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

3 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.19.0

1 year 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

12 months ago

0.30.0

1 year ago

0.29.0

1 year ago

0.27.1

1 year ago

0.25.3

1 year ago

0.27.0

1 year ago

0.25.2

1 year ago

0.25.1

1 year ago

0.25.0

1 year ago

0.23.0

1 year ago

0.32.10

11 months 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.31.3

1 year ago

0.31.2

1 year ago

0.18.0

1 year ago

0.31.1

1 year ago

0.31.0

1 year ago

0.26.3

1 year ago

0.28.0

1 year ago

0.26.2

1 year ago

0.26.1

1 year ago

0.26.0

1 year ago

0.24.0

1 year ago

0.22.1

1 year ago

0.22.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.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.8.1

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