a2r
Version:
A2R Framework
44 lines (43 loc) • 2.67 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 apiProxy_1 = require("./apiProxy");
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 settings_2 = require("../../settings");
/**
* Method executed when API is validated after changes are processed
*/
const onApiValidation = async (serverApiPath, // ./server/api
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 serverDockerApiPath = path_1.default.resolve(settings_2.defaultDockerWorkDir, settings_2.serverPath, settings_2.apiPath);
await (0, docker_1.removeFolderFromDocker)(serverDockerApiPath, devSettings.server.dockerName);
await (0, docker_1.copyPathToDocker)(serverApiPath, serverDockerApiPath, devSettings.server.dockerName);
await (0, docker_1.touch)(path_1.default.resolve(settings_2.defaultDockerWorkDir, 'index.ts'), devSettings.server.dockerName);
const mainApiPath = path_1.default.resolve(mainProxyPath, settings_2.apiPath); // ./.a2r/dev-server/proxy/api
await (0, fs_1.emptyFolder)(mainApiPath);
await (0, apiProxy_1.build)(serverApiPath, mainApiPath);
await Promise.all(settings.projects.map(async (project) => {
const projectApiPath = path_1.default.resolve(mainProjectPath, project.path, project.type === 'electron' ? 'renderer' : '', settings_2.projectsInternalPath, settings_2.proxyPath, settings_2.apiPath);
await (0, fs_1.emptyFolder)(projectApiPath);
await (0, fs_1.copyContents)(mainApiPath, projectApiPath);
}));
await Promise.all(devSettings.activeProjects.map(async (project) => {
const dockerModelPath = path_1.default.resolve(settings_2.defaultDockerWorkDir, settings_2.projectsInternalPath, settings_2.proxyPath, settings_2.apiPath);
await (0, docker_1.removeFolderFromDocker)(dockerModelPath, project.dockerName);
await (0, docker_1.copyPathToDocker)(mainApiPath, dockerModelPath, project.dockerName);
}));
}
};
exports.default = onApiValidation;