a2r
Version:
A2R Framework
39 lines (38 loc) • 1.89 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 devSettings_1 = require("../devSettings");
const docker_1 = require("../docker");
const onError_1 = __importDefault(require("./onError"));
const watchFolder_1 = __importDefault(require("./watchFolder"));
const settings_1 = require("../../settings");
const getFileToTouch_1 = __importDefault(require("./getFileToTouch"));
const watchFolders = async (folders, mainServerPath) => {
const devSettings = await (0, devSettings_1.getSettings)();
const { server: { dockerName }, } = devSettings;
const serverDockerServerPath = path_1.default.resolve(settings_1.defaultDockerWorkDir, settings_1.serverPath);
await Promise.all(folders.map(async (folder) => {
const sourcePath = path_1.default.resolve(mainServerPath, folder);
const dockerPath = path_1.default.resolve(serverDockerServerPath, folder);
if (await (0, fs_1.exists)(sourcePath)) {
const onReady = async (watcher) => {
watcher.on('all', async () => {
await (0, docker_1.removeFolderFromDocker)(dockerPath, dockerName);
await (0, docker_1.copyPathToDocker)(sourcePath, dockerPath, dockerName);
await (0, docker_1.touch)((0, getFileToTouch_1.default)('server'), devSettings.server.dockerName);
});
};
const watcherOptions = {
onError: onError_1.default,
onReady,
targetPath: sourcePath,
};
await (0, watchFolder_1.default)(watcherOptions);
}
}));
};
exports.default = watchFolders;