Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/frouriojs/typeormer
https://github.com/frouriojs/typeormer
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/frouriojs/typeormer
- Owner: frouriojs
- License: mit
- Created: 2020-08-11T16:42:33.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-02-15T06:13:35.000Z (almost 3 years ago)
- Last Synced: 2024-11-03T01:05:39.092Z (about 2 months ago)
- Language: TypeScript
- Size: 562 KB
- Stars: 0
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# TypeORMer
> TypeORM helper
[![npm version](https://img.shields.io/npm/v/typeormer)](https://www.npmjs.com/package/typeormer)
[![Node.js CI](https://github.com/frouriojs/typeormer/workflows/Node.js%20CI/badge.svg?branch=master)](https://github.com/frouriojs/typeormer/actions?query=workflow%3A%22Node.js+CI%22)
[![Codecov](https://img.shields.io/codecov/c/github/frouriojs/typeormer.svg)](https://codecov.io/gh/frouriojs/typeormer)
[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/frouriojs/typeormer.svg)](https://lgtm.com/projects/g/frouriojs/typeormer/context:javascript)
[![License](https://img.shields.io/npm/l/typeormer)](https://github.com/frouriojs/typeormer/blob/master/LICENSE)## Installation
- Using [npm](https://www.npmjs.com/):
```sh
$ npm install typeorm typeormer
```- Using [Yarn](https://yarnpkg.com/):
```sh
$ yarn add typeorm typeormer
```## Usage
`entity/Task.ts`
```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`
```ts
import { EntitySubscriberInterface, EventSubscriber, InsertEvent } from 'typeorm'
import { Task } from '../entity/Task'@EventSubscriber()
export class TaskSubscriber implements EntitySubscriberInterface {
listenTo() {
return Task
}afterInsert(event: InsertEvent) {
console.log(event)
}
}
````ormconfig.ts`
```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`
```json
{
"scripts": {
"migration:generate": "typeorm migration:generate -n Task",
"typeormer": "typeormer"
}
}
````tarminal`
```bash
$ npm run migration:generate # created migration/xxx-Task.ts
$ npm run typeormer # created $orm.ts
````index.ts`
```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](https://github.com/frouriojs/typeormer/blob/master/LICENSE).