UNPKG

alm

Version:

The best IDE for TypeScript

58 lines (57 loc) 2.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var sw = require("../../utils/simpleWorker"); var contract = require("./fileListingContract"); var events_1 = require("../../../common/events"); var workingDir = require("../../disk/workingDir"); var serverExit_1 = require("../../../socket/serverExit"); var chalk = require("chalk"); /** called whenever the list of files we know about is updated */ exports.filePathsUpdated = new events_1.TypedEvent(); /** only starts getting called when the initial file paths listing is completed */ exports.filePathsCompleted = new events_1.TypedEvent(); /** * Incremental and buffered */ exports.fileListingDelta = new events_1.TypedEvent(); var gfileListingDelta = exports.fileListingDelta; var Master; (function (Master) { Master.increment = function (q) { return Promise.resolve({ num: ++q.num }); }; Master.abort = function (q) { console.log(chalk.red(q.errorMessage)); serverExit_1.emitServerExit(); return Promise.resolve({}); }; /** warning, this function is named differently from the event filePathsUpdated for a reason */ Master.fileListUpdated = function (q) { if (q.completed) { exports.filePathsCompleted.emit({ filePaths: q.filePaths, rootDir: workingDir.getProjectRoot(), completed: q.completed }); } exports.filePathsUpdated.emit({ filePaths: q.filePaths, rootDir: workingDir.getProjectRoot(), completed: q.completed }); return Promise.resolve({}); }; Master.fileListingDelta = function (q) { gfileListingDelta.emit(q); return Promise.resolve({}); }; })(Master || (Master = {})); // Ensure that the namespace follows the contract var _checkTypes = Master; // launch worker exports.worker = sw.startWorker({ workerPath: __dirname + '/fileListingWorker', workerContract: contract.worker, masterImplementation: Master, onCrashRestart: function () { start(); } }).worker; function start() { exports.worker.setupWatch({ directory: workingDir.getProjectRoot() }); } exports.start = start;