UNPKG

@wuapi/generator

Version:
47 lines (46 loc) 1.91 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const plugin_base_1 = require("./plugin_base"); /** * Generate a json repository. */ class RepositoryPlugin extends plugin_base_1.BasePlugin { /** * Returns the description of this plugin. */ getDescription() { return { name: "repository", abbreviation: "r", version: "1.0.0", description: "Generate a Json repository.", arguments: [], }; } process(project, outputDir, args) { new RepositoryProcessor(this, project, outputDir, args).process(); } } exports.default = RepositoryPlugin; class RepositoryProcessor extends plugin_base_1.ProjectProcessor { process() { fs_1.default.mkdirSync(this.rootDir, { recursive: true }); const configFilePath = [this.rootDir, 'list.json'].join(path_1.default.sep); const projectFileName = `project-${this.project.version}.json`; const projectFilePath = [this.rootDir, projectFileName].join(path_1.default.sep); // File let config = (fs_1.default.existsSync(configFilePath)) ? JSON.parse(fs_1.default.readFileSync(configFilePath).toString()) : {}; let newConfig = {}; newConfig.current = this.project.version; newConfig.versions = config?.versions ?? {}; newConfig.versions[this.project.version] = `${this.plugin.getName()}/${projectFileName}`; // Write file fs_1.default.writeFileSync(configFilePath, JSON.stringify(newConfig, undefined, 4)); fs_1.default.writeFileSync(projectFilePath, JSON.stringify(this.project, undefined, 4)); } }