JSPM

  • Created
  • Published
  • Downloads 790
  • Score
    100M100P100Q114953F
  • License MIT

tegg orm decorator

Package Exports

  • @eggjs/tegg-orm-decorator
  • @eggjs/tegg-orm-decorator/package.json

Readme

@eggjs/tegg-orm-decorator

NPM version Known Vulnerabilities npm download Node.js Version

Install

npm i --save @eggjs/tegg-orm-decorator

Define Model

import { Model, Attribute } from '@eggjs/tegg-orm-decorator';
import leoric from 'leoric';

const { DataTypes, Bone } = leoric;

@Model()
export class App extends Bone {
  @Attribute(DataTypes.STRING)
  name: string;
  @Attribute(DataTypes.STRING)
  desc: string;
}

Use Model

import { SingletonProto, Inject } from '@eggjs/tegg';
import { App } from './model/App';

@SingletonProto()
export class AppService {
  @Inject()
  App: typeof App;

  async createApp(data: { name: string; desc: string }): Promise<App> {
    const bone = await this.App.create(data as any);
    return bone as App;
  }

  async findApp(name: string): Promise<App | null> {
    const app = await this.App.findOne({ name });
    return app as App;
  }
}