0.19.2 • Published 7 months ago
@12deg/saas-fastify v0.19.2
@12deg/saas-fastify
A Fastify plugin that provides an easy integration of saas.
Requirements
- @dzangolab/fastify-config
- @dzangolab/fastify-mailer
- @dzangolab/fastify-slonik
- @dzangolab/fastify-user
- slonik
- supertokens-node
Installation
Install with npm:
npm install @dzangolab/fastify-config @dzangolab/fastify-mailer @dzangolab/fastify-slonik @dzangolab/fastify-user slonik supertokens-node @12deg/saas-fastifyInstall with pnpm:
pnpm add --filter "@scope/project" @dzangolab/fastify-config @dzangolab/fastify-mailer @dzangolab/fastify-slonik @dzangolab/fastify-user slonik supertokens-node @12deg/saas-fastifyConfiguration
import { supertokensRecipesConfig } from "@12deg/saas-fastify";
const config: ApiConfig = {
...
saas: {
rootDomain: process.env.APP_ROOT_DOMAIN as string,
mainAppSubdomain: process.env.MAIN_APP_SUBDOMAIN as string || "app",
subdomains: "optional" // "disabled", "optional", "required",
},
user: {
...
supertokens: {
recipes: supertokensRecipesConfig,
}
}
...
};Usage
Register the saas plugin with your Fastify instance:
import saasPlugin, { accountMigrationPlugin } from "@12deg/saas-fastify";
import configPlugin from "@dzangolab/fastify-config";
import mailerPlugin from "@dzangolab/fastify-mailer";
import slonikPlugin, { migrationPlugin } from "@dzangolab/fastify-slonik";
import userPlugin from "@dzangolab/fastify-user";
import Fastify from "fastify";
import config from "./config";
import type { ApiConfig } from "@dzangolab/fastify-config";
import type { FastifyInstance } from "fastify";
const start = async () => {
// Create fastify instance
const fastify = Fastify({
logger: config.logger,
});
// Register fastify-config plugin
await fastify.register(configPlugin, { config });
// Register database plugin
await fastify.register(slonikPlugin, config.slonik);
// Register mailer plugin
await fastify.register(mailerPlugin, config.mailer);
// Register fastify-user plugin
await fastify.register(userPlugin);
// Register saas-fastify plugin
await api.register(saasPlugin);
// Run app database migrations
await fastify.register(migrationPlugin, config.slonik);
// Run accounts database migrations
await api.register(accountMigrationPlugin);
try {
await fastify.listen({
port: 3000,
host: "0.0.0.0",
});
} catch (error) {
fastify.log.error(error);
}
};
start();0.19.2
7 months ago
0.19.1
7 months ago
0.19.0
7 months ago
0.18.1
7 months ago
0.18.0
9 months ago
0.17.1
9 months ago
0.17.0
9 months ago
0.16.2
9 months ago
0.16.1
9 months ago
0.16.0
9 months ago
0.15.0
9 months ago
0.14.0
10 months ago
0.13.0
10 months ago
0.12.0
10 months ago
0.11.1
10 months ago
0.11.0
10 months ago
0.10.0
10 months ago
0.9.0
10 months ago
0.8.2
10 months ago
0.8.1
10 months ago
0.8.0
10 months ago
0.7.0
10 months ago
0.6.0
10 months ago
0.5.0
11 months ago
0.4.0
11 months ago
0.3.4
11 months ago
0.3.3
11 months ago
0.3.2
11 months ago
0.3.1
11 months ago
0.3.0
11 months ago
0.2.1
1 year ago
0.2.0
1 year ago
0.1.0
1 year ago