UNPKG

testcafe

Version:

Automated browser testing for the modern web development stack.

59 lines 6.95 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const path_1 = __importDefault(require("path")); const util_1 = require("util"); const del_1 = __importDefault(require("del")); const lodash_1 = require("lodash"); const process_1 = require("../../process"); const commands_1 = __importDefault(require("./commands")); const DIRECTORIES_TO_CLEANUP = {}; function addDirectory(dirPath) { if (!DIRECTORIES_TO_CLEANUP[dirPath]) DIRECTORIES_TO_CLEANUP[dirPath] = {}; } async function removeDirectory(dirPath) { if (!DIRECTORIES_TO_CLEANUP[dirPath]) return; let delPromise = DIRECTORIES_TO_CLEANUP[dirPath].delPromise; if (!delPromise) { delPromise = (0, process_1.killBrowserProcess)(path_1.default.basename(dirPath)) .then(() => (0, del_1.default)(dirPath, { force: true })); DIRECTORIES_TO_CLEANUP[dirPath].delPromise = delPromise; } await DIRECTORIES_TO_CLEANUP[dirPath].delPromise; delete DIRECTORIES_TO_CLEANUP[dirPath].delPromise; } async function dispatchCommand(message) { switch (message.command) { case commands_1.default.init: return; case commands_1.default.add: addDirectory(message.path); return; case commands_1.default.remove: addDirectory(message.path); await removeDirectory(message.path); return; } } process.on('message', async (message) => { let error = ''; try { await dispatchCommand(message); } catch (e) { error = (0, util_1.inspect)(e); } process.send({ id: message.id, error }); }); process.on('disconnect', async () => { const removePromises = Object .keys(DIRECTORIES_TO_CLEANUP) .map(dirPath => removeDirectory(dirPath).catch(lodash_1.noop)); await Promise.all(removePromises); process.exit(0); //eslint-disable-line no-process-exit }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3RlbXAtZGlyZWN0b3J5L2NsZWFudXAtcHJvY2Vzcy93b3JrZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsK0JBQStCO0FBQy9CLDhDQUFzQjtBQUN0QixtQ0FBOEI7QUFDOUIsMkNBQW1EO0FBQ25ELDBEQUFrQztBQUdsQyxNQUFNLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztBQUVsQyxTQUFTLFlBQVksQ0FBRSxPQUFPO0lBQzFCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUM7UUFDaEMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQzdDLENBQUM7QUFFRCxLQUFLLFVBQVUsZUFBZSxDQUFFLE9BQU87SUFDbkMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQztRQUNoQyxPQUFPO0lBRVgsSUFBSSxVQUFVLEdBQUcsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBRTVELElBQUksQ0FBQyxVQUFVLEVBQUU7UUFDYixVQUFVLEdBQUcsSUFBQSw0QkFBa0IsRUFBQyxjQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ2xELElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFBLGFBQUcsRUFBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRS9DLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7S0FDM0Q7SUFFRCxNQUFNLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUVqRCxPQUFPLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQztBQUN0RCxDQUFDO0FBRUQsS0FBSyxVQUFVLGVBQWUsQ0FBRSxPQUFPO0lBQ25DLFFBQVEsT0FBTyxDQUFDLE9BQU8sRUFBRTtRQUNyQixLQUFLLGtCQUFRLENBQUMsSUFBSTtZQUNkLE9BQU87UUFDWCxLQUFLLGtCQUFRLENBQUMsR0FBRztZQUNiLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsT0FBTztRQUNYLEtBQUssa0JBQVEsQ0FBQyxNQUFNO1lBQ2hCLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsTUFBTSxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLE9BQU87S0FDZDtBQUNMLENBQUM7QUFFRCxPQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsT0FBTyxFQUFDLEVBQUU7SUFDbEMsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRWYsSUFBSTtRQUNBLE1BQU0sZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ2xDO0lBQ0QsT0FBTyxDQUFDLEVBQUU7UUFDTixLQUFLLEdBQUcsSUFBQSxjQUFPLEVBQUMsQ0FBQyxDQUFDLENBQUM7S0FDdEI7SUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUM1QyxDQUFDLENBQUMsQ0FBQztBQUVILE9BQU8sQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLEtBQUssSUFBSSxFQUFFO0lBQ2hDLE1BQU0sY0FBYyxHQUFHLE1BQU07U0FDeEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1NBQzVCLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBSSxDQUFDLENBQUMsQ0FBQztJQUUxRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFbEMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFDQUFxQztBQUMxRCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgaW5zcGVjdCB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IGRlbCBmcm9tICdkZWwnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBraWxsQnJvd3NlclByb2Nlc3MgfSBmcm9tICcuLi8uLi9wcm9jZXNzJztcbmltcG9ydCBDT01NQU5EUyBmcm9tICcuL2NvbW1hbmRzJztcblxuXG5jb25zdCBESVJFQ1RPUklFU19UT19DTEVBTlVQID0ge307XG5cbmZ1bmN0aW9uIGFkZERpcmVjdG9yeSAoZGlyUGF0aCkge1xuICAgIGlmICghRElSRUNUT1JJRVNfVE9fQ0xFQU5VUFtkaXJQYXRoXSlcbiAgICAgICAgRElSRUNUT1JJRVNfVE9fQ0xFQU5VUFtkaXJQYXRoXSA9IHt9O1xufVxuXG5hc3luYyBmdW5jdGlvbiByZW1vdmVEaXJlY3RvcnkgKGRpclBhdGgpIHtcbiAgICBpZiAoIURJUkVDVE9SSUVTX1RPX0NMRUFOVVBbZGlyUGF0aF0pXG4gICAgICAgIHJldHVybjtcblxuICAgIGxldCBkZWxQcm9taXNlID0gRElSRUNUT1JJRVNfVE9fQ0xFQU5VUFtkaXJQYXRoXS5kZWxQcm9taXNlO1xuXG4gICAgaWYgKCFkZWxQcm9taXNlKSB7XG4gICAgICAgIGRlbFByb21pc2UgPSBraWxsQnJvd3NlclByb2Nlc3MocGF0aC5iYXNlbmFtZShkaXJQYXRoKSlcbiAgICAgICAgICAgIC50aGVuKCgpID0+IGRlbChkaXJQYXRoLCB7IGZvcmNlOiB0cnVlIH0pKTtcblxuICAgICAgICBESVJFQ1RPUklFU19UT19DTEVBTlVQW2RpclBhdGhdLmRlbFByb21pc2UgPSBkZWxQcm9taXNlO1xuICAgIH1cblxuICAgIGF3YWl0IERJUkVDVE9SSUVTX1RPX0NMRUFOVVBbZGlyUGF0aF0uZGVsUHJvbWlzZTtcblxuICAgIGRlbGV0ZSBESVJFQ1RPUklFU19UT19DTEVBTlVQW2RpclBhdGhdLmRlbFByb21pc2U7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRpc3BhdGNoQ29tbWFuZCAobWVzc2FnZSkge1xuICAgIHN3aXRjaCAobWVzc2FnZS5jb21tYW5kKSB7XG4gICAgICAgIGNhc2UgQ09NTUFORFMuaW5pdDpcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSBDT01NQU5EUy5hZGQ6XG4gICAgICAgICAgICBhZGREaXJlY3RvcnkobWVzc2FnZS5wYXRoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSBDT01NQU5EUy5yZW1vdmU6XG4gICAgICAgICAgICBhZGREaXJlY3RvcnkobWVzc2FnZS5wYXRoKTtcbiAgICAgICAgICAgIGF3YWl0IHJlbW92ZURpcmVjdG9yeShtZXNzYWdlLnBhdGgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgIH1cbn1cblxucHJvY2Vzcy5vbignbWVzc2FnZScsIGFzeW5jIG1lc3NhZ2UgPT4ge1xuICAgIGxldCBlcnJvciA9ICcnO1xuXG4gICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZGlzcGF0Y2hDb21tYW5kKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICBlcnJvciA9IGluc3BlY3QoZSk7XG4gICAgfVxuXG4gICAgcHJvY2Vzcy5zZW5kKHsgaWQ6IG1lc3NhZ2UuaWQsIGVycm9yIH0pO1xufSk7XG5cbnByb2Nlc3Mub24oJ2Rpc2Nvbm5lY3QnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVtb3ZlUHJvbWlzZXMgPSBPYmplY3RcbiAgICAgICAgLmtleXMoRElSRUNUT1JJRVNfVE9fQ0xFQU5VUClcbiAgICAgICAgLm1hcChkaXJQYXRoID0+IHJlbW92ZURpcmVjdG9yeShkaXJQYXRoKS5jYXRjaChub29wKSk7XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChyZW1vdmVQcm9taXNlcyk7XG5cbiAgICBwcm9jZXNzLmV4aXQoMCk7IC8vZXNsaW50LWRpc2FibGUtbGluZSBuby1wcm9jZXNzLWV4aXRcbn0pO1xuIl19