awesome-typescript-loader
Version:
Awesome TS loader for webpack
77 lines • 2.61 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments)).next());
});
};
var utils_1 = require('./utils');
var ps = require('ps-node');
function getCheckerRuntimeProcess() {
var opts = {
command: /node/,
arguments: /checker-runtime.js/,
};
return new Promise(function (resolve, reject) {
ps.lookup(opts, function (err, resultList) {
resolve(resultList[0]);
});
});
}
;
function kill(p) {
return new Promise(function (resolve, reject) {
ps.kill(p.pid, resolve);
});
}
;
function sleep(time) {
return new Promise(function (resolve, reject) {
setTimeout(resolve, time);
});
}
;
describe('checker test', function () {
this.timeout(5000);
var fixture = utils_1.fixturePath(['checker', 'to-check.ts']);
var config = utils_1.createConfig({
entry: fixture,
}, {
watch: true,
forkChecker: true,
loaderQuery: {
forkChecker: true
}
});
it('should fork checker in separate process', function () {
return __awaiter(this, void 0, void 0, function* () {
yield utils_1.cleanOutputDir();
var watcher = utils_1.watch(config);
yield watcher.wait();
var pid = yield getCheckerRuntimeProcess();
utils_1.expect(pid).ok;
watcher.close();
yield kill(pid);
});
});
it('should fork only one checker after multiple changes', function () {
return __awaiter(this, void 0, void 0, function* () {
yield utils_1.cleanOutputDir();
var watcher = utils_1.watch(config, function () { });
yield watcher.wait();
var pid = yield getCheckerRuntimeProcess();
utils_1.expect(pid).ok;
var i = 10;
while (i--) {
yield utils_1.touchFile(fixture);
yield sleep(50);
}
yield sleep(2000);
watcher.close();
yield kill(pid);
});
});
});
//# sourceMappingURL=checker.js.map