youzanyun-devtool-worker
Version:
93 lines (92 loc) • 3.82 kB
JavaScript
;
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;