0.19.2 • Published 11 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
11 months ago
0.19.1
12 months ago
0.19.0
12 months ago
0.18.1
12 months ago
0.18.0
1 year ago
0.17.1
1 year ago
0.17.0
1 year ago
0.16.2
1 year ago
0.16.1
1 year ago
0.16.0
1 year ago
0.15.0
1 year ago
0.14.0
1 year ago
0.13.0
1 year ago
0.12.0
1 year ago
0.11.1
1 year ago
0.11.0
1 year ago
0.10.0
1 year ago
0.9.0
1 year ago
0.8.2
1 year ago
0.8.1
1 year ago
0.8.0
1 year ago
0.7.0
1 year ago
0.6.0
1 year ago
0.5.0
1 year ago
0.4.0
1 year ago
0.3.4
1 year ago
0.3.3
1 year ago
0.3.2
1 year ago
0.3.1
1 year ago
0.3.0
1 year ago
0.2.1
1 year ago
0.2.0
1 year ago
0.1.0
1 year ago