typeormer

    0.1.3 • Public • Published

    TypeORMer

    TypeORM helper

    npm version Node.js CI Codecov Language grade: JavaScript License

    Installation

    • Using npm:

      $ npm install typeorm typeormer
    • Using Yarn:

      $ yarn add typeorm typeormer

    Usage

    entity/Task.ts

    import { Entity, PrimaryColumn, Column } from 'typeorm'
    
    @Entity()
    export class Task {
      @PrimaryColumn()
      id: number
    
      @Column({ length: 100 })
      label: string
    
      @Column({ default: false })
      done: boolean
    }

    subscriber/TaskSubscriber.ts

    import { EntitySubscriberInterface, EventSubscriber, InsertEvent } from 'typeorm'
    import { Task } from '../entity/Task'
    
    @EventSubscriber()
    export class TaskSubscriber implements EntitySubscriberInterface<Task> {
      listenTo() {
        return Task
      }
    
      afterInsert(event: InsertEvent<Task>) {
        console.log(event)
      }
    }

    ormconfig.ts

    import { ConnectionOptions } from 'typeorm'
    import dotenv from 'dotenv'
    
    dotenv.config()
    
    const options: ConnectionOptions = {
      type: 'mysql',
      host: process.env.TYPEORM_HOST,
      username: process.env.TYPEORM_USERNAME,
      password: process.env.TYPEORM_PASSWORD,
      database: process.env.TYPEORM_DATABASE,
      port: Number(process.env.TYPEORM_PORT),
      synchronize: false,
      logging: false,
      entities: ['entity/**/*.ts'],
      migrations: ['migration/**/*.ts'],
      cli: {
        migrationsDir: 'migration'
      }
    }
    
    // @ts-ignore
    export = options

    package.json

    {
      "scripts": {
        "migration:generate": "typeorm migration:generate -n Task",
        "typeormer": "typeormer"
      }
    }

    tarminal

    $ npm run migration:generate # created migration/xxx-Task.ts
    $ npm run typeormer # created $orm.ts

    index.ts

    import 'reflect-metadata'
    import { createConnection } from 'typeorm'
    import ormconfig from './ormconfig'
    import options from './$orm'
    
    const connection = await createConnection({
      ...ormconfig,
      ...options
    })

    License

    TypeORMer is licensed under a MIT License.

    Keywords

    Install

    npm i typeormer

    DownloadsWeekly Downloads

    66

    Version

    0.1.3

    License

    MIT

    Unpacked Size

    24.9 kB

    Total Files

    29

    Last publish

    Collaborators

    • avatar