UNPKG

youzanyun-devtool-worker

Version:

93 lines (92 loc) 3.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const path_1 = tslib_1.__importDefault(require("path")); const download_1 = tslib_1.__importDefault(require("download")); const fs_extra_1 = tslib_1.__importDefault(require("fs-extra")); const spring4js_nodejs_1 = require("spring4js-nodejs"); let IsvPageService = class IsvPageService { constructor() { } async start() { this.tplInfo = { version: '1.0.0', url: 'https://b.yzcdn.cn/youzanyun/diy/isv-page-tpl.tar.gz', }; this.isvPageTplDir = this.configService.getIsvPageTplDir(); } async getIsvPageInfo(projectId) { let project = await this.projectService.getProjectById(projectId); let { proName, proPath } = project; let isvReactPageDir = path_1.default.resolve(proPath, `${proName}-ui/isv-react-page`); let isvVuePageDir = path_1.default.resolve(proPath, `${proName}-ui/isv-vue-page`); let reactExist = await fs_extra_1.default.pathExists(isvReactPageDir); let vueExist = await fs_extra_1.default.pathExists(isvVuePageDir); const result = { reactExist, vueExist, reactPath: isvReactPageDir, vuePath: isvVuePageDir, }; return result; } async initIsvPage(projectId, type) { await this.checkTplUpdated(); let project = await this.projectService.getProjectById(projectId); let { proName, proPath, isJava, isPhp, isNodeJs } = project; let pageDir = path_1.default.resolve(proPath, `${proName}-ui/isv-${type}-page`); await fs_extra_1.default.copy(path_1.default.resolve(this.isvPageTplDir, `${type}-pages`), pageDir); let devOutDir; let configDir; if (isNodeJs) { devOutDir = `../../app/public/${type}`; configDir = "../../config"; } else if (isJava) { devOutDir = `../../${proName}-web/src/main/resources/static/${type}`; configDir = `../../${proName}-web/src/main/resources/fe`; } let config = { "appName": proName, "configDir": configDir || "dist-config", "devOutputDir": devOutDir || "dist-dev", "prodOutputDir": "dist" }; await fs_extra_1.default.writeJson(path_1.default.resolve(pageDir, 'config.json'), config, { spaces: 2 }); } async checkTplUpdated() { let exist = await fs_extra_1.default.pathExists(this.isvPageTplDir); if (exist) { try { let metaInfo = await fs_extra_1.default.readJson(path_1.default.resolve(this.isvPageTplDir, 'meta.json')); if (metaInfo.version == this.tplInfo.version) { return; } } catch (e) { console.log('isv-page升级异常', e); } } await fs_extra_1.default.remove(this.isvPageTplDir); await (0, download_1.default)(this.tplInfo.url, this.isvPageTplDir, { extract: true, strip: 1, }); let guideMetaJson = { version: this.tplInfo.version, downloadTimestamp: Date.now(), downloadUrl: this.tplInfo.url }; await fs_extra_1.default.writeJson(path_1.default.resolve(this.isvPageTplDir, 'meta.json'), guideMetaJson, { spaces: 2 }); } }; tslib_1.__decorate([ (0, spring4js_nodejs_1.Resource)() ], IsvPageService.prototype, "projectService", void 0); tslib_1.__decorate([ (0, spring4js_nodejs_1.Resource)() ], IsvPageService.prototype, "configService", void 0); IsvPageService = tslib_1.__decorate([ (0, spring4js_nodejs_1.Service)() ], IsvPageService); exports.default = IsvPageService;