New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

typeorm-fastify-plugin

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

typeorm-fastify-plugin

An updated fastify-typeorm-plugin for Fastify and Typeorm

latest
Source
npmnpm
Version
3.0.0
Version published
Weekly downloads
2.9K
80.58%
Maintainers
1
Weekly downloads
 
Created
Source

typeorm-fastify-plugin

GitHub Workflow Status NodeJSTypeScript

A Fastify plugin that connects, organizes, and decorates all your database connections to your Fastify server. Uses TypeORM

Install

npm install typeorm-fastify-plugin

Usage

const Fastify = require('fastify');
const dbConn = require('typeorm-fastify-plugin');

const fastify = Fastify();

fastify
	.register(dbConn, {
		host: 'localhost',
		port: 3306,
		type: 'mysql',
		database: 'your_database_name',
		username: 'your_username',
		password: 'your_database_password',
		entities: [Users, Products]
	})
	.ready();

fastify.listen(3000, () => {
	console.log('Listening on port 3000');
});

routes.js

const root = async (fastify, opts) => {
	fastify.get('/', async function (request, reply) {
		const userRepository = fastify.orm.getRepository(Users);
	});
};

Fastify server will be decorated with orm key and available everywhere in your app

You can also pass your connection as connection

Example

const fastify = require('fastify');
const dbConn = require('typeorm-fastify-plugin');
const { DataSource } = require('typeorm');

const connection = new DataSource({
	host: 'localhost',
	port: 3306,
	type: 'mysql',
	database: 'your_database_name',
	username: 'your_username',
	password: 'your_database_password'
});

fastify.register(dbConn, { connection: connection });

Note: You need to install the proper driver as a dependency. For example, if using MySQL, install mysql or mysql2.

With ES6

import Fastify from 'fastify';
import plugin from 'typeorm-fastify-plugin';

const fastify = Fastify();
fastify.register(plugin, {
	/* your config options here */
});

Usage With Multiple Namespaces

Typorm allows you to use multiple DataSource instances across your application globally. It only makes sense that this plugin would enable you to do the same thing. Using a namespace is easy but completely optional.

import Fastify from 'fastify';
import plugin from 'typeorm-fastify-plugin';

const fastify = Fastify();
fastify.register(plugin, {
	namespace: 'postgres1',
	host: 'localhost',
	port: 5432,
	username: 'test',
	password: 'test',
	database: 'test_db',
	type: 'postgres'
});

This is the only way to initialize a "namespaced" instance using this plugin.

The namespace will be available everywhere your fastify server is. For example, to access the namespace declared in the above code: fastify.orm['postgres1'].getRepository()

This is the default behavior of wrapping code in fastify-plugin module;

Logging

You can pass a custom logger or define one of the built-in loggers exposed through TypeORM logging options. If you do not declare a logger and enable Fastify logging, by default a PinoTypeOrm Logger will be used.

import Fastify from 'fastify';
import plugin from 'typeorm-fastify-plugin';

const fastify = Fastify();
fastify.register(plugin, {
	namespace: 'postgres1',
	host: 'localhost',
	port: 5432,
	username: 'test',
	password: 'test',
	database: 'test_db',
	type: 'postgres',
	logger: new YourCustomLoggerHere() || 'simple-console' || 'whatever'
});

Keywords

fastify

FAQs

Package last updated on 14 Oct 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts