
Security News
The Hidden Blast Radius of the Axios Compromise
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.
typeorm-fastify-plugin
Advanced tools
A Fastify plugin that connects, organizes, and decorates all your database connections to your Fastify server. Uses TypeORM
npm install typeorm-fastify-plugin
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);
});
};
orm key and available everywhere in your appYou can also pass your connection as connection
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.
import Fastify from 'fastify';
import plugin from 'typeorm-fastify-plugin';
const fastify = Fastify();
fastify.register(plugin, {
/* your config options here */
});
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;
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'
});
FAQs
An updated fastify-typeorm-plugin for Fastify and Typeorm
The npm package typeorm-fastify-plugin receives a total of 2,464 weekly downloads. As such, typeorm-fastify-plugin popularity was classified as popular.
We found that typeorm-fastify-plugin demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

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.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.