Skip to content

chantouchsek/typeorm-naming-strategy

Repository files navigation

Typeorm naming strategy

ci Latest Version on NPM Software License npm npm

This package provides a few (one, at the moment) useful custom naming strategies. It alliterates the name of columns, relations, and other fields in the database.

For example, using the snake strategy, if you have a model like this:

class User {
  @Column()
  createdAt
}

In the DB the createdAt field will be created_at

Naming strategies available

  • Snake

Installation

It's available as an npm package

npm install typeorm-naming-strategy --save

Or using yarn

yarn add typeorm-naming-strategy

Usage

import { createConnection } from 'typeorm'
// import { SnakeNamingStrategy } from 'typeorm-naming-strategy';
import SnakeNamingStrategy from 'typeorm-naming-strategy'

createConnection({
  // ...
  namingStrategy: new SnakeNamingStrategy(), // Here you'r using the strategy!
})

Alternatively you can use it in combination with a ormconfig.js

// Use require instead of import
// const SnakeNamingStrategy = require("typeorm-naming-strategy").SnakeNamingStrategy
const SnakeNamingStrategy = require('typeorm-naming-strategy')

module.exports = {
  // ...
  namingStrategy: new SnakeNamingStrategy(),
}

Or you can use it in combination with a ormconfig.ts

import SnakeNamingStrategy from 'typeorm-naming-strategy'

module.exports = {
  // ...
  namingStrategy: new SnakeNamingStrategy(),
}

Use with NestJs configuration

import type { MysqlConnectionOptions } from 'typeorm/driver/mysql/MysqlConnectionOptions'
import { registerAs } from '@nestjs/config'
import { SnakeNamingStrategy } from 'typeorm-naming-strategy'

export default registerAs('database', (): MysqlConnectionOptions => ({
  // ...
  namingStrategy: new SnakeNamingStrategy(),
  // ...
}))