UNPKG

zcatalyst-cli

Version:

Command Line Tool for CATALYST

80 lines (79 loc) 3.7 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const chokidar_1 = require("chokidar"); const languages_1 = require("./shell/prepare/languages"); const index_1 = require("./util_modules/logger/index"); const java_1 = require("./fn-utils/lib/java"); const constants_1 = require("./util_modules/constants"); exports.default = (target) => __awaiter(void 0, void 0, void 0, function* () { return new Promise((res) => { let paused = false; let latestEvent; const watcher = (0, chokidar_1.watch)(target.source, { ignored: [/(^|[\/\\])\../, 'node_modules/**/*', '/**/*.jar', 'catalyst-debug.log'], cwd: target.source, ignoreInitial: true }); watcher.on('next', () => __awaiter(void 0, void 0, void 0, function* () { var _a; if (latestEvent === undefined) { paused = false; return; } const currentLatestEvent = latestEvent; (0, index_1.info)(`\n${currentLatestEvent.evnt} of ${currentLatestEvent.pth} in ${target.name} detected. Preparing your function, please wait...`); watcher.emit('preparing'); target.failure_reason = undefined; target.valid = true; if (target.additionalInfo && 'compilerOut' in target.additionalInfo) { target.additionalInfo.compilerOut = { error: [], warning: [] }; } yield (0, languages_1.prepareFunctions)([target]); if (currentLatestEvent.at === latestEvent.at) { latestEvent = undefined; } ((_a = target.stack) === null || _a === void 0 ? void 0 : _a.startsWith(constants_1.RUNTIME.language.java.value)) && (0, java_1.printCompilationLog)([target]); if (target.valid) { watcher.emit('compiled'); return; } (0, index_1.warning)('target [' + target.name + '] is not a valid one reason : ' + target.failure_reason); (0, index_1.info)('Waiting for correction..'); (0, index_1.info)('\n(To exit, press ^C)'); watcher.emit('next'); })); watcher.on('all', (evnt, pth) => { if ((latestEvent === null || latestEvent === void 0 ? void 0 : latestEvent.at) && Date.now() - latestEvent.at < 1000) { return; } latestEvent = { evnt, pth, at: Date.now() }; if (paused) { return; } paused = true; watcher.emit('next'); }); watcher.on('ready', () => { target.watcher = watcher; res(); }); watcher.on('error', (err) => { (0, index_1.debug)(err); (0, index_1.warning)(`Unable to start watcher for target [${target.name}]. Skipping watch mode.`); res(); }); }); });