UNPKG

@tsclean/scaffold

Version:

This CLI creates an initial structure of a project based on clean architecture.

49 lines (46 loc) 1.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ModelsTemplate = void 0; const CommandUtils_1 = require("../commands/CommandUtils"); const constants_1 = require("../utils/constants"); class ModelsTemplate { /** * Metodo para crear el modelo del adaptador de acuero al ORM * * @param param Nombre de la entidad * @param orm Nombre del orm (sequelize, mongo) * @param manager Nombre del gestor de base de datos (mysql, pg, mongoose) * ```typescript * // Model * import { model, Schema } from "mongoose"; * import { UserEntity } from '@/domain/entities/user'; * * const schema = new Schema<UserEntity>({}); * * export const UserModelSchema = model<UserEntity>('users', schema); * ``` */ static getModels(param, orm, manager) { const _name = CommandUtils_1.CommandUtils.capitalizeString(param); switch (orm) { case constants_1.CONSTANTS.MONGO: return `import { model, Schema } from "mongoose"; import { ${_name}Entity } from '@/domain/entities/${param}'; const schema = new Schema<${_name}Entity>({ // Implementation }); export const ${_name}ModelSchema = model<${_name}Entity>('${param}s', schema); `; case constants_1.CONSTANTS.SEQUELIZE: const _manager = CommandUtils_1.CommandUtils.capitalizeString(manager); return `import { Table, Column, Model, Sequelize } from 'sequelize-typescript' import { ${_name}Entity } from "@/domain/entities/${param}"; @Table({ tableName: '${param}s' }) export class ${_name}Model${_manager} extends Model<${_name}Entity> { // Implementation }`; } } } exports.ModelsTemplate = ModelsTemplate; //# sourceMappingURL=ModelsTemplate.js.map