UNPKG

zcatalyst-cli

Version:

Command Line Tool for CATALYST

85 lines (84 loc) 3.97 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 logger_1 = require("./util_modules/logger"); const char_1 = require("./util_modules/char"); const ansi_colors_1 = require("ansi-colors"); 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* () { if (latestEvent === undefined) { paused = false; return; } const currentLatestEvent = latestEvent; (0, logger_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; target.compilationError = undefined; target.compilationWarning = undefined; yield (0, languages_1.prepareFunctions)([target]); if (currentLatestEvent.at === latestEvent.at) { latestEvent = undefined; } if (target.compilationError) { target.compilationError.forEach((error) => { console.log(`${(0, ansi_colors_1.red)(char_1.CHAR.error)} Error while compiling function[${target.name}]`); console.log(error); }); } if (target.compilationWarning) { target.compilationWarning.forEach((warn) => { console.warn(`${(0, ansi_colors_1.yellow)(char_1.CHAR.warning)} Warning while compiling function[${target.name}]`); console.warn(warn); }); } if (target.valid) { watcher.emit('compiled'); return; } (0, logger_1.warning)('target [' + target.name + '] is not a valid one reason : ' + target.failure_reason); (0, logger_1.info)('Waiting for correction..'); (0, logger_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, logger_1.debug)(err); (0, logger_1.warning)(`Unable to start watcher for target [${target.name}]. Skipping watch mode.`); res(); }); }); });