UNPKG

astx

Version:

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

89 lines (83 loc) 8.83 kB
import runTransformOnFile from './runTransformOnFile.mjs' import { clearCache } from 'babel-parse-wild-code' import astxGlob from './astxGlob.mjs' import { astxCosmiconfig } from './astxCosmiconfig.mjs' export default async function* runTransform({ gitignore, transform: _transform, transformFile, paths: _paths, exclude, fs, cwd = process.cwd(), config, signal, }) { var _transform$finish clearCache() astxCosmiconfig.clearSearchCache() const transform = transformFile ? await import(transformFile) : _transform if (signal !== null && signal !== void 0 && signal.aborted) return if (!transform) throw new Error(`transform or transformFile is required`) let completed = 0, total = 0, globDone = false const progress = () => ({ type: 'progress', completed, total, globDone, }) yield progress() if (signal !== null && signal !== void 0 && signal.aborted) return const paths = _paths !== null && _paths !== void 0 && _paths.length ? _paths : [cwd] for (const include of paths) { for await (const file of astxGlob({ include, exclude, cwd, gitignore, fs, })) { if (signal !== null && signal !== void 0 && signal.aborted) return total++ yield progress() if (signal !== null && signal !== void 0 && signal.aborted) return let transformed try { transformed = await runTransformOnFile({ file, transform, config, signal, fs, }) completed++ yield progress() } catch (error) { if ( error.message === 'aborted' && signal !== null && signal !== void 0 && signal.aborted ) return throw error } if (signal !== null && signal !== void 0 && signal.aborted) return yield { type: 'result', result: transformed, } } } if (signal !== null && signal !== void 0 && signal.aborted) return globDone = true yield progress() if (signal !== null && signal !== void 0 && signal.aborted) return await ((_transform$finish = transform.finish) === null || _transform$finish === void 0 ? void 0 : _transform$finish.call(transform)) } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJydW5UcmFuc2Zvcm1PbkZpbGUiLCJjbGVhckNhY2hlIiwiYXN0eEdsb2IiLCJhc3R4Q29zbWljb25maWciLCJydW5UcmFuc2Zvcm0iLCJnaXRpZ25vcmUiLCJ0cmFuc2Zvcm0iLCJfdHJhbnNmb3JtIiwidHJhbnNmb3JtRmlsZSIsInBhdGhzIiwiX3BhdGhzIiwiZXhjbHVkZSIsImZzIiwiY3dkIiwicHJvY2VzcyIsImNvbmZpZyIsInNpZ25hbCIsImNsZWFyU2VhcmNoQ2FjaGUiLCJhYm9ydGVkIiwiRXJyb3IiLCJjb21wbGV0ZWQiLCJ0b3RhbCIsImdsb2JEb25lIiwicHJvZ3Jlc3MiLCJ0eXBlIiwibGVuZ3RoIiwiaW5jbHVkZSIsImZpbGUiLCJ0cmFuc2Zvcm1lZCIsImVycm9yIiwibWVzc2FnZSIsInJlc3VsdCIsImZpbmlzaCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL3J1blRyYW5zZm9ybS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcnVuVHJhbnNmb3JtT25GaWxlLCB7XG4gIEZzIGFzIFJ1blRyYW5zZm9ybU9uRmlsZUZzLFxufSBmcm9tICcuL3J1blRyYW5zZm9ybU9uRmlsZSdcbmltcG9ydCB7IGNsZWFyQ2FjaGUgfSBmcm9tICdiYWJlbC1wYXJzZS13aWxkLWNvZGUnXG5pbXBvcnQgeyBBc3R4Q29uZmlnIH0gZnJvbSAnLi4vQXN0eENvbmZpZydcbmltcG9ydCBhc3R4R2xvYiBmcm9tICcuL2FzdHhHbG9iJ1xuaW1wb3J0IHsgRnMgYXMgR2xvYkZzIH0gZnJvbSAnLi9nbG9iJ1xuaW1wb3J0IHsgYXN0eENvc21pY29uZmlnIH0gZnJvbSAnLi9hc3R4Q29zbWljb25maWcnXG5pbXBvcnQgeyBUcmFuc2Zvcm0sIFRyYW5zZm9ybVJlc3VsdCB9IGZyb20gJy4uL0FzdHgnXG5pbXBvcnQgR2l0aWdub3JlIGZyb20gJ2dpdGlnbm9yZS1mcydcblxudHlwZSBGcyA9IEdsb2JGcyAmIFJ1blRyYW5zZm9ybU9uRmlsZUZzXG5cbmV4cG9ydCB0eXBlIFByb2dyZXNzID0ge1xuICB0eXBlOiAncHJvZ3Jlc3MnXG4gIGNvbXBsZXRlZDogbnVtYmVyXG4gIHRvdGFsOiBudW1iZXJcbiAgZ2xvYkRvbmU6IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgUnVuVHJhbnNmb3JtT3B0aW9ucyA9IHtcbiAgZ2l0aWdub3JlPzogR2l0aWdub3JlIHwgbnVsbFxuICB0cmFuc2Zvcm0/OiBUcmFuc2Zvcm1cbiAgdHJhbnNmb3JtRmlsZT86IHN0cmluZ1xuICBwYXRocz86IHJlYWRvbmx5IHN0cmluZ1tdXG4gIGV4Y2x1ZGU/OiBzdHJpbmdcbiAgY3dkPzogc3RyaW5nXG4gIGNvbmZpZz86IFBhcnRpYWw8QXN0eENvbmZpZz5cbiAgc2lnbmFsPzogQWJvcnRTaWduYWxcbiAgZnM/OiBGc1xufVxuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiogcnVuVHJhbnNmb3JtKHtcbiAgZ2l0aWdub3JlLFxuICB0cmFuc2Zvcm06IF90cmFuc2Zvcm0sXG4gIHRyYW5zZm9ybUZpbGUsXG4gIHBhdGhzOiBfcGF0aHMsXG4gIGV4Y2x1ZGUsXG4gIGZzLFxuICBjd2QgPSBwcm9jZXNzLmN3ZCgpLFxuICBjb25maWcsXG4gIHNpZ25hbCxcbn06IFJ1blRyYW5zZm9ybU9wdGlvbnMpOiBBc3luY0l0ZXJhYmxlPFxuICB7IHR5cGU6ICdyZXN1bHQnOyByZXN1bHQ6IFRyYW5zZm9ybVJlc3VsdCB9IHwgUHJvZ3Jlc3Ncbj4ge1xuICBjbGVhckNhY2hlKClcbiAgYXN0eENvc21pY29uZmlnLmNsZWFyU2VhcmNoQ2FjaGUoKVxuXG4gIGNvbnN0IHRyYW5zZm9ybSA9IHRyYW5zZm9ybUZpbGUgPyBhd2FpdCBpbXBvcnQodHJhbnNmb3JtRmlsZSkgOiBfdHJhbnNmb3JtXG4gIGlmIChzaWduYWw/LmFib3J0ZWQpIHJldHVyblxuICBpZiAoIXRyYW5zZm9ybSkgdGhyb3cgbmV3IEVycm9yKGB0cmFuc2Zvcm0gb3IgdHJhbnNmb3JtRmlsZSBpcyByZXF1aXJlZGApXG5cbiAgbGV0IGNvbXBsZXRlZCA9IDAsXG4gICAgdG90YWwgPSAwLFxuICAgIGdsb2JEb25lID0gZmFsc2VcblxuICBjb25zdCBwcm9ncmVzcyA9ICgpOiBQcm9ncmVzcyA9PiAoe1xuICAgIHR5cGU6ICdwcm9ncmVzcycsXG4gICAgY29tcGxldGVkLFxuICAgIHRvdGFsLFxuICAgIGdsb2JEb25lLFxuICB9KVxuXG4gIHlpZWxkIHByb2dyZXNzKClcbiAgaWYgKHNpZ25hbD8uYWJvcnRlZCkgcmV0dXJuXG5cbiAgY29uc3QgcGF0aHMgPSBfcGF0aHM/Lmxlbmd0aCA/IF9wYXRocyA6IFtjd2RdXG4gIGZvciAoY29uc3QgaW5jbHVkZSBvZiBwYXRocykge1xuICAgIGZvciBhd2FpdCAoY29uc3QgZmlsZSBvZiBhc3R4R2xvYih7XG4gICAgICBpbmNsdWRlLFxuICAgICAgZXhjbHVkZSxcbiAgICAgIGN3ZCxcbiAgICAgIGdpdGlnbm9yZSxcbiAgICAgIGZzLFxuICAgIH0pKSB7XG4gICAgICBpZiAoc2lnbmFsPy5hYm9ydGVkKSByZXR1cm5cbiAgICAgIHRvdGFsKytcbiAgICAgIHlpZWxkIHByb2dyZXNzKClcbiAgICAgIGlmIChzaWduYWw/LmFib3J0ZWQpIHJldHVyblxuICAgICAgbGV0IHRyYW5zZm9ybWVkXG4gICAgICB0cnkge1xuICAgICAgICB0cmFuc2Zvcm1lZCA9IGF3YWl0IHJ1blRyYW5zZm9ybU9uRmlsZSh7XG4gICAgICAgICAgZmlsZSxcbiAgICAgICAgICB0cmFuc2Zvcm0sXG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIHNpZ25hbCxcbiAgICAgICAgICBmcyxcbiAgICAgICAgfSlcbiAgICAgICAgY29tcGxldGVkKytcbiAgICAgICAgeWllbGQgcHJvZ3Jlc3MoKVxuICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICBpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2Fib3J0ZWQnICYmIHNpZ25hbD8uYWJvcnRlZCkgcmV0dXJuXG4gICAgICAgIHRocm93IGVycm9yXG4gICAgICB9XG4gICAgICBpZiAoc2lnbmFsPy5hYm9ydGVkKSByZXR1cm5cbiAgICAgIHlpZWxkIHsgdHlwZTogJ3Jlc3VsdCcsIHJlc3VsdDogdHJhbnNmb3JtZWQgfVxuICAgIH1cbiAgfVxuICBpZiAoc2lnbmFsPy5hYm9ydGVkKSByZXR1cm5cblxuICBnbG9iRG9uZSA9IHRydWVcbiAgeWllbGQgcHJvZ3Jlc3MoKVxuICBpZiAoc2lnbmFsPy5hYm9ydGVkKSByZXR1cm5cblxuICBhd2FpdCB0cmFuc2Zvcm0uZmluaXNoPy4oKVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxrQkFBUDs7QUFFTyxzQkFGUDtBQUdBLFNBQVNDLFVBQVQsUUFBMkIsdUJBQTNCOztBQUVBLE9BQU9DLFFBQVAsTUFBcUIsWUFBckI7O0FBRUEsU0FBU0MsZUFBVCxRQUFnQyxtQkFBaEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF5QkEsZUFBZSxnQkFBZ0JDLFlBQWhCLENBQTZCO0VBQzFDQyxTQUQwQztFQUUxQ0MsU0FBUyxFQUFFQyxVQUYrQjtFQUcxQ0MsYUFIMEM7RUFJMUNDLEtBQUssRUFBRUMsTUFKbUM7RUFLMUNDLE9BTDBDO0VBTTFDQyxFQU4wQztFQU8xQ0MsR0FBRyxHQUFHQyxPQUFPLENBQUNELEdBQVIsRUFQb0M7RUFRMUNFLE1BUjBDO0VBUzFDQyxNQVQwQyxFQUE3Qjs7O0FBWWI7RUFDQWYsVUFBVTtFQUNWRSxlQUFlLENBQUNjLGdCQUFoQjs7RUFFQSxNQUFNWCxTQUFTLEdBQUdFLGFBQWEsR0FBRyxNQUFNLE9BQU9BLGFBQVAsQ0FBVCxHQUFpQ0QsVUFBaEU7RUFDQSxJQUFJUyxNQUFKLGFBQUlBLE1BQUosZUFBSUEsTUFBTSxDQUFFRSxPQUFaLEVBQXFCO0VBQ3JCLElBQUksQ0FBQ1osU0FBTCxFQUFnQixNQUFNLElBQUlhLEtBQUosQ0FBVyx3Q0FBWCxDQUFOOztFQUVoQixJQUFJQyxTQUFTLEdBQUcsQ0FBaEI7RUFDRUMsS0FBSyxHQUFHLENBRFY7RUFFRUMsUUFBUSxHQUFHLEtBRmI7O0VBSUEsTUFBTUMsUUFBUSxHQUFHLE9BQWlCO0lBQ2hDQyxJQUFJLEVBQUUsVUFEMEI7SUFFaENKLFNBRmdDO0lBR2hDQyxLQUhnQztJQUloQ0MsUUFKZ0MsRUFBakIsQ0FBakI7OztFQU9BLE1BQU1DLFFBQVEsRUFBZDtFQUNBLElBQUlQLE1BQUosYUFBSUEsTUFBSixlQUFJQSxNQUFNLENBQUVFLE9BQVosRUFBcUI7O0VBRXJCLE1BQU1ULEtBQUssR0FBR0MsTUFBTSxTQUFOLElBQUFBLE1BQU0sV0FBTixJQUFBQSxNQUFNLENBQUVlLE1BQVIsR0FBaUJmLE1BQWpCLEdBQTBCLENBQUNHLEdBQUQsQ0FBeEM7RUFDQSxLQUFLLE1BQU1hLE9BQVgsSUFBc0JqQixLQUF0QixFQUE2QjtJQUMzQixXQUFXLE1BQU1rQixJQUFqQixJQUF5QnpCLFFBQVEsQ0FBQztNQUNoQ3dCLE9BRGdDO01BRWhDZixPQUZnQztNQUdoQ0UsR0FIZ0M7TUFJaENSLFNBSmdDO01BS2hDTyxFQUxnQyxFQUFELENBQWpDO0lBTUk7TUFDRixJQUFJSSxNQUFKLGFBQUlBLE1BQUosZUFBSUEsTUFBTSxDQUFFRSxPQUFaLEVBQXFCO01BQ3JCRyxLQUFLO01BQ0wsTUFBTUUsUUFBUSxFQUFkO01BQ0EsSUFBSVAsTUFBSixhQUFJQSxNQUFKLGVBQUlBLE1BQU0sQ0FBRUUsT0FBWixFQUFxQjtNQUNyQixJQUFJVSxXQUFKO01BQ0EsSUFBSTtRQUNGQSxXQUFXLEdBQUcsTUFBTTVCLGtCQUFrQixDQUFDO1VBQ3JDMkIsSUFEcUM7VUFFckNyQixTQUZxQztVQUdyQ1MsTUFIcUM7VUFJckNDLE1BSnFDO1VBS3JDSixFQUxxQyxFQUFELENBQXRDOztRQU9BUSxTQUFTO1FBQ1QsTUFBTUcsUUFBUSxFQUFkO01BQ0QsQ0FWRCxDQVVFLE9BQU9NLEtBQVAsRUFBbUI7UUFDbkIsSUFBSUEsS0FBSyxDQUFDQyxPQUFOLEtBQWtCLFNBQWxCLElBQStCZCxNQUEvQixhQUErQkEsTUFBL0IsZUFBK0JBLE1BQU0sQ0FBRUUsT0FBM0MsRUFBb0Q7UUFDcEQsTUFBTVcsS0FBTjtNQUNEO01BQ0QsSUFBSWIsTUFBSixhQUFJQSxNQUFKLGVBQUlBLE1BQU0sQ0FBRUUsT0FBWixFQUFxQjtNQUNyQixNQUFNLEVBQUVNLElBQUksRUFBRSxRQUFSLEVBQWtCTyxNQUFNLEVBQUVILFdBQTFCLEVBQU47SUFDRDtFQUNGO0VBQ0QsSUFBSVosTUFBSixhQUFJQSxNQUFKLGVBQUlBLE1BQU0sQ0FBRUUsT0FBWixFQUFxQjs7RUFFckJJLFFBQVEsR0FBRyxJQUFYO0VBQ0EsTUFBTUMsUUFBUSxFQUFkO0VBQ0EsSUFBSVAsTUFBSixhQUFJQSxNQUFKLGVBQUlBLE1BQU0sQ0FBRUUsT0FBWixFQUFxQjs7RUFFckIsNEJBQU1aLFNBQVMsQ0FBQzBCLE1BQWhCLHNEQUFNLHVCQUFBMUIsU0FBUyxDQUFmO0FBQ0QifQ==