typeorm-naming-strategy
Version:
Custom naming strategies for typeorm
90 lines (65 loc) • 2.57 kB
Markdown
# Typeorm naming strategy
[](https://github.com/chantouchsek/typeorm-naming-strategy/actions/workflows/test.yml)
[](https://npmjs.com/package/typeorm-naming-strategy)
[](LICENSE)
[](https://npmjs.com/package/typeorm-naming-strategy)
[](https://npmjs.com/package/typeorm-naming-strategy)
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:
```typescript
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](https://www.npmjs.com/package/typeorm-naming-strategy)
```sh
npm install typeorm-naming-strategy --save
```
Or using yarn
```sh
yarn add typeorm-naming-strategy
```
## Usage
```ts
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`
```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`
```ts
import SnakeNamingStrategy from 'typeorm-naming-strategy'
module.exports = {
// ...
namingStrategy: new SnakeNamingStrategy(),
}
```
Use with NestJs configuration
```ts
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(),
// ...
}))
```