UNPKG

astx

Version:

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

599 lines (495 loc) 15.7 kB
'use strict' var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault') Object.defineProperty(exports, '__esModule', { value: true, }) exports['default'] = runTransform var _regenerator = _interopRequireDefault(require('@babel/runtime/regenerator')) var _typeof2 = _interopRequireDefault(require('@babel/runtime/helpers/typeof')) var _awaitAsyncGenerator2 = _interopRequireDefault( require('@babel/runtime/helpers/awaitAsyncGenerator') ) var _wrapAsyncGenerator2 = _interopRequireDefault( require('@babel/runtime/helpers/wrapAsyncGenerator') ) var _runTransformOnFile = _interopRequireDefault( require('./runTransformOnFile') ) var _babelParseWildCode = require('babel-parse-wild-code') var _astxGlob = _interopRequireDefault(require('./astxGlob')) var _astxCosmiconfig = require('./astxCosmiconfig') function _createForOfIteratorHelper(o, allowArrayLike) { var it = (typeof Symbol !== 'undefined' && o[Symbol.iterator]) || o['@@iterator'] if (!it) { if ( Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || (allowArrayLike && o && typeof o.length === 'number') ) { if (it) o = it var i = 0 var F = function F() {} return { s: F, n: function n() { if (i >= o.length) return { done: true, } return { done: false, value: o[i++], } }, e: function e(_e) { throw _e }, f: F, } } throw new TypeError( 'Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.' ) } var normalCompletion = true, didErr = false, err return { s: function s() { it = it.call(o) }, n: function n() { var step = it.next() normalCompletion = step.done return step }, e: function e(_e2) { didErr = true err = _e2 }, f: function f() { try { if (!normalCompletion && it['return'] != null) it['return']() } finally { if (didErr) throw err } }, } } function _unsupportedIterableToArray(o, minLen) { if (!o) return if (typeof o === 'string') return _arrayLikeToArray(o, minLen) var n = Object.prototype.toString.call(o).slice(8, -1) if (n === 'Object' && o.constructor) n = o.constructor.name if (n === 'Map' || n === 'Set') return Array.from(o) if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen) } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i] } return arr2 } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== 'function') return null var cacheBabelInterop = new WeakMap() var cacheNodeInterop = new WeakMap() return (_getRequireWildcardCache = function _getRequireWildcardCache( nodeInterop ) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop })(nodeInterop) } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj } if ( obj === null || ((0, _typeof2['default'])(obj) !== 'object' && typeof obj !== 'function') ) { return { default: obj, } } var cache = _getRequireWildcardCache(nodeInterop) if (cache && cache.has(obj)) { return cache.get(obj) } var newObj = {} var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor for (var key in obj) { if (key !== 'default' && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc) } else { newObj[key] = obj[key] } } } newObj['default'] = obj if (cache) { cache.set(obj, newObj) } return newObj } function _asyncIterator(iterable) { var method, async, sync, retry = 2 for ( 'undefined' != typeof Symbol && ((async = Symbol.asyncIterator), (sync = Symbol.iterator)); retry--; ) { if (async && null != (method = iterable[async])) return method.call(iterable) if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable)) ;(async = '@@asyncIterator'), (sync = '@@iterator') } throw new TypeError('Object is not async iterable') } function AsyncFromSyncIterator(s) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + ' is not an object.')) var done = r.done return Promise.resolve(r.value).then(function (value) { return { value: value, done: done, } }) } return ( (AsyncFromSyncIterator = function AsyncFromSyncIterator(s) { ;(this.s = s), (this.n = s.next) }), (AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation( this.n.apply(this.s, arguments) ) }, return: function _return(value) { var ret = this.s['return'] return void 0 === ret ? Promise.resolve({ value: value, done: !0, }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)) }, throw: function _throw(value) { var thr = this.s['return'] return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)) }, }), new AsyncFromSyncIterator(s) ) } function runTransform(_x) { return _runTransform.apply(this, arguments) } function _runTransform() { _runTransform = (0, _wrapAsyncGenerator2['default'])( /*#__PURE__*/ _regenerator['default'].mark(function _callee(_ref) { var _transform$finish var gitignore, _transform, transformFile, _paths, exclude, fs, _ref$cwd, cwd, config, signal, transform, completed, total, globDone, progress, paths, _iterator2, _step2, include, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, file, transformed return _regenerator['default'].wrap( function _callee$(_context) { while (1) { switch ((_context.prev = _context.next)) { case 0: ;(gitignore = _ref.gitignore), (_transform = _ref.transform), (transformFile = _ref.transformFile), (_paths = _ref.paths), (exclude = _ref.exclude), (fs = _ref.fs), (_ref$cwd = _ref.cwd), (cwd = _ref$cwd === void 0 ? process.cwd() : _ref$cwd), (config = _ref.config), (signal = _ref.signal) ;(0, _babelParseWildCode.clearCache)() _astxCosmiconfig.astxCosmiconfig.clearSearchCache() if (!transformFile) { _context.next = 9 break } _context.next = 6 return (0, _awaitAsyncGenerator2['default'])( Promise.resolve(''.concat(transformFile)).then(function (s) { return _interopRequireWildcard(require(s)) }) ) case 6: _context.t0 = _context.sent _context.next = 10 break case 9: _context.t0 = _transform case 10: transform = _context.t0 if (!(signal !== null && signal !== void 0 && signal.aborted)) { _context.next = 13 break } return _context.abrupt('return') case 13: if (transform) { _context.next = 15 break } throw new Error('transform or transformFile is required') case 15: ;(completed = 0), (total = 0), (globDone = false) progress = function progress() { return { type: 'progress', completed: completed, total: total, globDone: globDone, } } _context.next = 19 return progress() case 19: if (!(signal !== null && signal !== void 0 && signal.aborted)) { _context.next = 21 break } return _context.abrupt('return') case 21: paths = _paths !== null && _paths !== void 0 && _paths.length ? _paths : [cwd] _iterator2 = _createForOfIteratorHelper(paths) _context.prev = 23 _iterator2.s() case 25: if ((_step2 = _iterator2.n()).done) { _context.next = 82 break } include = _step2.value _iteratorAbruptCompletion = false _didIteratorError = false _context.prev = 29 _iterator = _asyncIterator( (0, _astxGlob['default'])({ include: include, exclude: exclude, cwd: cwd, gitignore: gitignore, fs: fs, }) ) case 31: _context.next = 33 return (0, _awaitAsyncGenerator2['default'])(_iterator.next()) case 33: if ( !(_iteratorAbruptCompletion = !(_step = _context.sent).done) ) { _context.next = 64 break } file = _step.value if (!(signal !== null && signal !== void 0 && signal.aborted)) { _context.next = 37 break } return _context.abrupt('return') case 37: total++ _context.next = 40 return progress() case 40: if (!(signal !== null && signal !== void 0 && signal.aborted)) { _context.next = 42 break } return _context.abrupt('return') case 42: transformed = void 0 _context.prev = 43 _context.next = 46 return (0, _awaitAsyncGenerator2['default'])( (0, _runTransformOnFile['default'])({ file: file, transform: transform, config: config, signal: signal, fs: fs, }) ) case 46: transformed = _context.sent completed++ _context.next = 50 return progress() case 50: _context.next = 57 break case 52: _context.prev = 52 _context.t1 = _context['catch'](43) if ( !( _context.t1.message === 'aborted' && signal !== null && signal !== void 0 && signal.aborted ) ) { _context.next = 56 break } return _context.abrupt('return') case 56: throw _context.t1 case 57: if (!(signal !== null && signal !== void 0 && signal.aborted)) { _context.next = 59 break } return _context.abrupt('return') case 59: _context.next = 61 return { type: 'result', result: transformed, } case 61: _iteratorAbruptCompletion = false _context.next = 31 break case 64: _context.next = 70 break case 66: _context.prev = 66 _context.t2 = _context['catch'](29) _didIteratorError = true _iteratorError = _context.t2 case 70: _context.prev = 70 _context.prev = 71 if ( !(_iteratorAbruptCompletion && _iterator['return'] != null) ) { _context.next = 75 break } _context.next = 75 return (0, _awaitAsyncGenerator2['default'])( _iterator['return']() ) case 75: _context.prev = 75 if (!_didIteratorError) { _context.next = 78 break } throw _iteratorError case 78: return _context.finish(75) case 79: return _context.finish(70) case 80: _context.next = 25 break case 82: _context.next = 87 break case 84: _context.prev = 84 _context.t3 = _context['catch'](23) _iterator2.e(_context.t3) case 87: _context.prev = 87 _iterator2.f() return _context.finish(87) case 90: if (!(signal !== null && signal !== void 0 && signal.aborted)) { _context.next = 92 break } return _context.abrupt('return') case 92: globDone = true _context.next = 95 return progress() case 95: if (!(signal !== null && signal !== void 0 && signal.aborted)) { _context.next = 97 break } return _context.abrupt('return') case 97: _context.next = 99 return (0, _awaitAsyncGenerator2['default'])( (_transform$finish = transform.finish) === null || _transform$finish === void 0 ? void 0 : _transform$finish.call(transform) ) case 99: case 'end': return _context.stop() } } }, _callee, null, [ [23, 84, 87, 90], [29, 66, 70, 80], [43, 52], [71, , 75, 79], ] ) }) ) return _runTransform.apply(this, arguments) }