0.0.7 • Published 11 months ago
@e22m4u/js-repository-decorators v0.0.7
@e22m4u/js-repository-decorators
TypeScript декораторы для @e22m4u/js-repository
Установка
npm install @e22m4u/js-repository-decoratorsПоддержка декораторов
Для включения поддержки декораторов, добавьте указанные
ниже опции в файл tsconfig.json вашего проекта.
{
"emitDecoratorMetadata": true,
"experimentalDecorators": true
}Пример
import {
model,
property,
relation,
getModelDefinitionFromClass,
} from '@e22m4u/js-repository-decorators';
import {DataType} from '@e22m4u/js-repository';
import {RelationType} from '@e22m4u/js-repository';
@model({
tableName: 'myUserTable',
datasource: 'myDatasource',
})
class User {
@property({
type: DataType.STRING,
primaryKey: true,
})
id!: string;
@property({
type: DataType.STRING,
required: true,
})
name!: string;
@property({
type: DataType.STRING,
default: '',
})
roleId!: string;
@relation({
type: RelationType.BELONGS_TO,
model: 'Role',
})
role?: object;
}
const modelDef = getModelDefinitionFromClass(User);
// {
// "name": "User",
// "tableName": "myUserTable",
// "datasource": "myDatasource",
// "properties": {
// "id": {
// "type": "string",
// "primaryKey": true,
// },
// "name": {
// "type": "string",
// "required": true,
// },
// "roleId": {
// "type": "string",
// "default": "",
// },
// },
// "relations": {
// "role": {
// "type": "belongsTo",
// "model": "Role"
// },
// },
// },Тесты
npm run testЛицензия
MIT