UNPKG

astx

Version:

super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring

94 lines (78 loc) 3.22 kB
#!/usr/bin/env node "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _ipc = require("./ipc"); var _runTransformOnFile = _interopRequireDefault(require("./runTransformOnFile")); var _worker_threads = require("worker_threads"); var parentPort = _worker_threads.parentPort; if (!parentPort) process.exit(1); var abortControllers = new Map(); parentPort.on('message', /*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(message) { var _abortControllers$get, _ref2, seq, file, source, transform, transformFile, config, result, abortController, signal; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.t0 = message.type; _context.next = _context.t0 === 'abort' ? 3 : _context.t0 === 'runTransformOnFile' ? 5 : 24; break; case 3: (_abortControllers$get = abortControllers.get(message.seq)) === null || _abortControllers$get === void 0 ? void 0 : _abortControllers$get.abort(); return _context.abrupt("return"); case 5: _ref2 = message, seq = _ref2.seq, file = _ref2.file, source = _ref2.source, transform = _ref2.transform, transformFile = _ref2.transformFile, config = _ref2.config; _context.prev = 6; abortController = new AbortController(); abortControllers.set(seq, abortController); signal = abortController.signal; _context.next = 12; return (0, _runTransformOnFile["default"])({ file: file, source: source, transform: transform, transformFile: transformFile, config: config, signal: signal, forWorker: true }); case 12: result = _context.sent; _context.next = 19; break; case 15: _context.prev = 15; _context.t1 = _context["catch"](6); parentPort.postMessage({ type: 'error', seq: seq, error: { message: _context.t1.message, stack: _context.t1.stack } }); return _context.abrupt("return"); case 19: _context.prev = 19; abortControllers["delete"](seq); return _context.finish(19); case 22: parentPort.postMessage({ type: 'transformResult', seq: seq, result: (0, _ipc.makeIpcTransformResult)(result) }); return _context.abrupt("return"); case 24: case "end": return _context.stop(); } } }, _callee, null, [[6, 15, 19, 22]]); })); return function (_x) { return _ref.apply(this, arguments); }; }());