UNPKG

5.41 kBJavaScriptView Raw
1"use strict";
2var __importDefault = (this && this.__importDefault) || function (mod) {
3 return (mod && mod.__esModule) ? mod : { "default": mod };
4};
5Object.defineProperty(exports, "__esModule", { value: true });
6const path_1 = __importDefault(require("path"));
7const module_1 = __importDefault(require("module"));
8const bootstrapper_1 = __importDefault(require("../runner/bootstrapper"));
9const compiler_1 = __importDefault(require("../compiler"));
10const originalRequire = module_1.default.prototype.require;
11class LiveModeBootstrapper extends bootstrapper_1.default {
12 constructor(runner, browserConnectionGateway) {
13 super(browserConnectionGateway);
14 this.runner = runner;
15 }
16 _getTests() {
17 this._mockRequire();
18 return super._getTests()
19 .then(result => {
20 this._restoreRequire();
21 return result;
22 })
23 .catch(err => {
24 this._restoreRequire();
25 compiler_1.default.cleanUp();
26 this.runner.setBootstrappingError(err);
27 });
28 }
29 _mockRequire() {
30 const controller = this.runner.controller;
31 // NODE: we replace the `require` method to add required files to watcher
32 module_1.default.prototype.require = function (filePath) {
33 const filename = module_1.default._resolveFilename(filePath, this, false);
34 if (path_1.default.isAbsolute(filename) || /^\.\.?[/\\]/.test(filename))
35 controller.addFileToWatches(filename);
36 return originalRequire.apply(this, arguments);
37 };
38 }
39 _restoreRequire() {
40 module_1.default.prototype.require = originalRequire;
41 }
42}
43exports.default = LiveModeBootstrapper;
44module.exports = exports.default;
45//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpdmUvYm9vdHN0cmFwcGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQXdCO0FBQ3hCLG9EQUE0QjtBQUM1QiwwRUFBa0Q7QUFDbEQsMkRBQW1DO0FBRW5DLE1BQU0sZUFBZSxHQUFHLGdCQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztBQUVqRCxNQUFNLG9CQUFxQixTQUFRLHNCQUFZO0lBQzNDLFlBQWEsTUFBTSxFQUFFLHdCQUF3QjtRQUN6QyxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN6QixDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVwQixPQUFPLEtBQUssQ0FBQyxTQUFTLEVBQUU7YUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBRXZCLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNULElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUV2QixrQkFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBRW5CLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsWUFBWTtRQUNSLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBRTFDLHlFQUF5RTtRQUN6RSxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsVUFBVSxRQUFRO1lBQ3pDLE1BQU0sUUFBUSxHQUFHLGdCQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUVoRSxJQUFJLGNBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQ3pELFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUcxQyxPQUFPLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxlQUFlO1FBQ1gsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLGVBQWUsQ0FBQztJQUMvQyxDQUFDO0NBQ0o7QUFFRCxrQkFBZSxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IE1vZHVsZSBmcm9tICdtb2R1bGUnO1xuaW1wb3J0IEJvb3RzdHJhcHBlciBmcm9tICcuLi9ydW5uZXIvYm9vdHN0cmFwcGVyJztcbmltcG9ydCBDb21waWxlciBmcm9tICcuLi9jb21waWxlcic7XG5cbmNvbnN0IG9yaWdpbmFsUmVxdWlyZSA9IE1vZHVsZS5wcm90b3R5cGUucmVxdWlyZTtcblxuY2xhc3MgTGl2ZU1vZGVCb290c3RyYXBwZXIgZXh0ZW5kcyBCb290c3RyYXBwZXIge1xuICAgIGNvbnN0cnVjdG9yIChydW5uZXIsIGJyb3dzZXJDb25uZWN0aW9uR2F0ZXdheSkge1xuICAgICAgICBzdXBlcihicm93c2VyQ29ubmVjdGlvbkdhdGV3YXkpO1xuXG4gICAgICAgIHRoaXMucnVubmVyID0gcnVubmVyO1xuICAgIH1cblxuICAgIF9nZXRUZXN0cyAoKSB7XG4gICAgICAgIHRoaXMuX21vY2tSZXF1aXJlKCk7XG5cbiAgICAgICAgcmV0dXJuIHN1cGVyLl9nZXRUZXN0cygpXG4gICAgICAgICAgICAudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Jlc3RvcmVSZXF1aXJlKCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Jlc3RvcmVSZXF1aXJlKCk7XG5cbiAgICAgICAgICAgICAgICBDb21waWxlci5jbGVhblVwKCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnJ1bm5lci5zZXRCb290c3RyYXBwaW5nRXJyb3IoZXJyKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIF9tb2NrUmVxdWlyZSAoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSB0aGlzLnJ1bm5lci5jb250cm9sbGVyO1xuXG4gICAgICAgIC8vIE5PREU6IHdlIHJlcGxhY2UgdGhlIGByZXF1aXJlYCBtZXRob2QgdG8gYWRkIHJlcXVpcmVkIGZpbGVzIHRvIHdhdGNoZXJcbiAgICAgICAgTW9kdWxlLnByb3RvdHlwZS5yZXF1aXJlID0gZnVuY3Rpb24gKGZpbGVQYXRoKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlbmFtZSA9IE1vZHVsZS5fcmVzb2x2ZUZpbGVuYW1lKGZpbGVQYXRoLCB0aGlzLCBmYWxzZSk7XG5cbiAgICAgICAgICAgIGlmIChwYXRoLmlzQWJzb2x1dGUoZmlsZW5hbWUpIHx8IC9eXFwuXFwuP1svXFxcXF0vLnRlc3QoZmlsZW5hbWUpKVxuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuYWRkRmlsZVRvV2F0Y2hlcyhmaWxlbmFtZSk7XG5cblxuICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsUmVxdWlyZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIF9yZXN0b3JlUmVxdWlyZSAoKSB7XG4gICAgICAgIE1vZHVsZS5wcm90b3R5cGUucmVxdWlyZSA9IG9yaWdpbmFsUmVxdWlyZTtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IExpdmVNb2RlQm9vdHN0cmFwcGVyO1xuIl19
\No newline at end of file