a2r
Version:
A2R Framework
48 lines (47 loc) • 3.01 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = __importDefault(require("path"));
const fs_1 = require("@a2r/fs");
const isJest_1 = require("../../tools/isJest");
const settings_1 = require("../settings");
const devSettings_1 = require("../devSettings");
const getProjectPath_1 = __importDefault(require("../getProjectPath"));
const docker_1 = require("../docker");
const getFileToTouch_1 = __importDefault(require("./getFileToTouch"));
const settings_2 = require("../../settings");
/**
* Method executed when API is validated after changes are processed
*/
const onModelValidation = async (serverModelPath, // ./server/model
mainProxyPath) => {
if (!(0, isJest_1.isJest)()) {
const settings = await (0, settings_1.getSettings)();
const devSettings = await (0, devSettings_1.getSettings)();
const mainProjectPath = await (0, getProjectPath_1.default)();
const mainModelPath = path_1.default.resolve(mainProxyPath, settings_2.modelPath); // ./.a2r/dev-server/proxy/model
await (0, fs_1.emptyFolder)(mainModelPath);
await (0, fs_1.copyContents)(serverModelPath, mainModelPath);
const serverDockerModelPath = path_1.default.resolve(settings_2.defaultDockerWorkDir, settings_2.serverPath, settings_2.modelPath);
await (0, docker_1.removeFolderFromDocker)(serverDockerModelPath, devSettings.server.dockerName);
await (0, docker_1.copyPathToDocker)(mainModelPath, serverDockerModelPath, devSettings.server.dockerName);
await (0, docker_1.touch)((0, getFileToTouch_1.default)('server'), devSettings.server.dockerName);
await Promise.all(settings.projects.map(async (project) => {
const projectModelPath = path_1.default.resolve(mainProjectPath, project.path, project.type === 'electron' ? 'renderer' : '', settings_2.projectsInternalPath, settings_2.proxyPath, settings_2.modelPath);
await (0, fs_1.emptyFolder)(projectModelPath);
await (0, fs_1.copyContents)(mainModelPath, projectModelPath);
}));
await Promise.all(devSettings.activeProjects.map(async (project) => {
if (project.type === 'next' && await (0, docker_1.isDockerRunning)(project.dockerName)) {
const dockerModelPath = path_1.default.resolve(settings_2.defaultDockerWorkDir, settings_2.projectsInternalPath, settings_2.proxyPath, settings_2.modelPath);
await (0, docker_1.removeFolderFromDocker)(dockerModelPath, project.dockerName);
await (0, docker_1.copyPathToDocker)(mainModelPath, dockerModelPath, project.dockerName);
await (0, docker_1.touch)((0, getFileToTouch_1.default)(project.type), project.dockerName);
}
}));
// Copy to projects (both project folder and docker)
}
};
exports.default = onModelValidation;