UNPKG

@notadd/cli

Version:

notadd core none dependence

193 lines (187 loc) 6.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CreateCommand = void 0; const tslib_1 = require("tslib"); const cli_core_1 = require("@notadd/cli-core"); const core_1 = require("@notadd/core"); const fs_extra_1 = require("fs-extra"); const path_1 = require("path"); const toPascalCase = (str) => str.split('-').reduce((res, part) => res + part[0].toUpperCase() + part.substr(1), ''); /** * 生成命令 */ let CreateCommand = class CreateCommand { constructor(logger) { this.logger = logger; } /** * 自动生成组件模板 * @param name */ async createComponent(name) { if (!name) { this.logger.log(`name参数不能为空`); return; } const template = `import { Module } from '@notadd/core'; @Module({ providers: [], imports: [], controllers: [] }) export class ${toPascalCase(name)}Module { } `; const path = path_1.join(process.cwd(), `${name}.module.ts`); if (fs_extra_1.existsSync(path)) { this.logger.log(`文件已存在:${path}`); } else { fs_extra_1.writeFileSync(path, template); } } /** * 自动生成module模板 * @param name * notadd cm/demoModule?i=2 --name2=demo2 */ async createModule(name, name2) { if (!name) { this.logger.log(`name参数不能为空`); return; } const template = `import { Module } from '@notadd/core'; @Module({ providers: [], imports: [], controllers: [] }) export class ${toPascalCase(name)}Module { } `; const path = path_1.join(process.cwd(), `${name}.module.ts`); if (fs_extra_1.existsSync(path)) { this.logger.log(`文件已存在:${path}`); } else { fs_extra_1.writeFileSync(path, template); } } /** * 自动生成service模板 * @param name */ async createService(name) { if (!name) { this.logger.log(`name参数不能为空`); return; } const template = `import { Injectable } from '@notadd/core'; @Injectable() export class ${toPascalCase(name)}Service { } `; const path = path_1.join(process.cwd(), `${name}.service.ts`); if (fs_extra_1.existsSync(path)) { this.logger.log(`文件已存在:${path}`); } else { fs_extra_1.writeFileSync(path, template); } } /** * 自动生成Entity模板 * @param name */ async createEntity(name) { if (!name) { this.logger.log(`name参数不能为空`); return; } const template = `import { Entity, PrimaryGeneratedColumn } from '@notadd/typeorm'; @Entity() export class ${toPascalCase(name)}Entity { @PrimaryGeneratedColumn() id: number; } `; const path = path_1.join(process.cwd(), `${name}.entity.ts`); if (fs_extra_1.existsSync(path)) { this.logger.log(`文件已存在:${path}`); } else { fs_extra_1.writeFileSync(path, template); } } /** * 自动生成controller模板 * @param name */ async createController(name) { if (!name) { this.logger.log(`name参数不能为空`); return; } const template = `import { Controller, Query, Args, EntityService } from '@notadd/core'; @Controller() export class ${toPascalCase(name)}Controller { constructor(private entityService: EntityService ){} @Query() async ${name}(@Args('entity') entity: ${toPascalCase(name)}Input): Promise<${toPascalCase(name)}Output> { return {} as ${toPascalCase(name)}Output; } } export interface ${toPascalCase(name)}Input { } export interface ${toPascalCase(name)}Output { } `; const path = path_1.join(process.cwd(), `${name}.controller.ts`); if (fs_extra_1.existsSync(path)) { this.logger.log(`文件已存在:${path}`); } else { fs_extra_1.writeFileSync(path, template); } } }; tslib_1.__decorate([ cli_core_1.Command('cp/:name'), tslib_1.__param(0, core_1.Param('name')), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [String]), tslib_1.__metadata("design:returntype", Promise) ], CreateCommand.prototype, "createComponent", null); tslib_1.__decorate([ cli_core_1.Command('cm/:path'), tslib_1.__param(0, core_1.Param('path')), tslib_1.__param(1, core_1.Args('name2')), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [String, String]), tslib_1.__metadata("design:returntype", Promise) ], CreateCommand.prototype, "createModule", null); tslib_1.__decorate([ cli_core_1.Command(`cs/:name`), tslib_1.__param(0, core_1.Param('name')), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [String]), tslib_1.__metadata("design:returntype", Promise) ], CreateCommand.prototype, "createService", null); tslib_1.__decorate([ cli_core_1.Command('ce/:name'), tslib_1.__param(0, core_1.Param('name')), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [String]), tslib_1.__metadata("design:returntype", Promise) ], CreateCommand.prototype, "createEntity", null); tslib_1.__decorate([ cli_core_1.Command('cc/:name'), tslib_1.__param(0, core_1.Param('name')), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [String]), tslib_1.__metadata("design:returntype", Promise) ], CreateCommand.prototype, "createController", null); CreateCommand = tslib_1.__decorate([ core_1.Controller(), tslib_1.__metadata("design:paramtypes", [core_1.Logger]) ], CreateCommand); exports.CreateCommand = CreateCommand;