Skip to content

web-server-userland/fastify-typeorm-query-runner

Repository files navigation

@web-server-userland/fastify-typeorm-query-runner

CI NPM version js-standard-style NPM size Coverage Status

A plugin for Fastify that adds support for typrorm QueryRunner and Transaction.

Supports Fastify versions 4.x.

Support TypeScript

Install

# npm
npm i @web-server-userland/fastify-typeorm-query-runner

# pnpm
pnpm add @web-server-userland/fastify-typeorm-query-runner

# yarn
yarn add @web-server-userland/fastify-typeorm-query-runner

Usage

const fastify = require('fastify')()

fastify.register(require('@web-server-userland/fastify-typeorm-query-runner'), {
  dataSource: dataSource,
  transaction: true,
  match: request => request.routerPath.startsWith('/v2'),
  respIsError: (respStr) => respStr === '{"status":false}'
})

fastify.get('/', async (req, reply) => {
  console.log(req.queryRunner)
  console.log(req.queryRunner.manager)

  await req.queryRunner.manager.insert();
  
  reply.send({ hello: 'world' })
})

fastify.listen(3000)

Options

  • dataSource(Required): TypeORM dataSource

  • transaction(Optional): Whether to bind the life cycle of a thing to a request. - default: false

    • Receiving requests: opening transaction
    • Return response: close transaction
    • Requesting an error: rolling back transaction
  • match(Optional): Only matching requests will enable the plugin. - default: () => true

    • Receiving requests: opening transaction
    • Return response: close transaction
    • Requesting an error: rolling back transaction
match: request => {
  return request.routerPath.startsWith('/v2')
}
  • respIsError(Optional): When the response matches the condition, it is considered an error - default: () => false
respIsError: (respStr) => {
  return respStr === '{"status":false}'
}

License

Licensed under MIT.