UNPKG

ts-ignore

Version:
119 lines (90 loc) 9.98 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); require("core-js/modules/es.symbol.description"); require("core-js/modules/es.array.iterator"); require("core-js/modules/es.array.map"); require("core-js/modules/es.array.splice"); require("core-js/modules/es.object.values"); require("core-js/modules/es.promise"); require("core-js/modules/es.string.match"); require("core-js/modules/es.string.split"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _execa = _interopRequireDefault(require("execa")); var _runtime = require("babel-plugin-ts-optchain/lib/runtime"); var _fsExtra = _interopRequireDefault(require("fs-extra")); var _ora = _interopRequireDefault(require("ora")); var _path = _interopRequireDefault(require("path")); var _pkgDir = _interopRequireDefault(require("pkg-dir")); var _command = require("@oclif/command"); var _bluebird = require("bluebird"); const rootPath = _pkgDir.default.sync(process.cwd()) || process.cwd(); class TSIgnore extends _command.Command { run() { return (0, _asyncToGenerator2.default)(function* () { const spinner = (0, _ora.default)(); spinner.start('finding errors'); const files = {}; const lines = (yield (0, _execa.default)('tsc', ['--noEmit'], { cwd: rootPath }).catch(err => { if (err.stdout) return err; throw err; })).stdout.split('\n'); spinner.start('fixing errors'); let count = 0; yield (0, _bluebird.mapSeries)(lines, /*#__PURE__*/ function () { var _ref = (0, _asyncToGenerator2.default)(function* (line) { const _ref2 = line.match(/(.+\.tsx?)\((\d+),\d+\): error TS\d{4}: /) || [null, null, null], _ref3 = (0, _slicedToArray2.default)(_ref2, 3), filePath = _ref3[1], lineNumber = _ref3[2]; if (!filePath) return; if (!(filePath in files)) { files[filePath] = { count: 0, lines: (yield _fsExtra.default.readFile(filePath)).toString().split('\n'), path: _path.default.resolve(process.cwd(), filePath) }; } ++count; const file = files[filePath]; const padding = (0, _runtime.oc)(file.lines[Number(lineNumber) + file.count - 1].match(/^ */), [], [''])[0].length; file.lines.splice(Number(lineNumber) + file.count - 1, 0, `${Array(padding).fill(' ').join('')}// @ts-ignore`); ++file.count; }); return function (_x) { return _ref.apply(this, arguments); }; }()); yield Promise.all(Object.values(files).map( /*#__PURE__*/ function () { var _ref4 = (0, _asyncToGenerator2.default)(function* (file) { yield _fsExtra.default.writeFile(file.path, file.lines.join('\n')); }); return function (_x2) { return _ref4.apply(this, arguments); }; }())); spinner.succeed(`fixed ${count} errors`); })(); } } exports.default = TSIgnore; TSIgnore.description = 'ignore typescript errors'; TSIgnore.flags = { help: _command.flags.help({ char: 'h' }), version: _command.flags.version({ char: 'v' }) }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6WyJyb290UGF0aCIsInBrZ0RpciIsInN5bmMiLCJwcm9jZXNzIiwiY3dkIiwiVFNJZ25vcmUiLCJDb21tYW5kIiwicnVuIiwic3Bpbm5lciIsInN0YXJ0IiwiZmlsZXMiLCJsaW5lcyIsImNhdGNoIiwiZXJyIiwic3Rkb3V0Iiwic3BsaXQiLCJjb3VudCIsImxpbmUiLCJtYXRjaCIsImZpbGVQYXRoIiwibGluZU51bWJlciIsImZzIiwicmVhZEZpbGUiLCJ0b1N0cmluZyIsInBhdGgiLCJyZXNvbHZlIiwiZmlsZSIsInBhZGRpbmciLCJOdW1iZXIiLCJsZW5ndGgiLCJzcGxpY2UiLCJBcnJheSIsImZpbGwiLCJqb2luIiwiUHJvbWlzZSIsImFsbCIsIk9iamVjdCIsInZhbHVlcyIsIm1hcCIsIndyaXRlRmlsZSIsInN1Y2NlZWQiLCJkZXNjcmlwdGlvbiIsImZsYWdzIiwiaGVscCIsImNoYXIiLCJ2ZXJzaW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQVlBLE1BQU1BLFFBQVEsR0FBR0MsZ0JBQU9DLElBQVAsQ0FBWUMsT0FBTyxDQUFDQyxHQUFSLEVBQVosS0FBOEJELE9BQU8sQ0FBQ0MsR0FBUixFQUEvQzs7QUFFZSxNQUFNQyxRQUFOLFNBQXVCQyxnQkFBdkIsQ0FBK0I7QUFRdENDLEVBQUFBLEdBQU4sR0FBWTtBQUFBO0FBQ1YsWUFBTUMsT0FBTyxHQUFHLG1CQUFoQjtBQUNBQSxNQUFBQSxPQUFPLENBQUNDLEtBQVIsQ0FBYyxnQkFBZDtBQUNBLFlBQU1DLEtBQVksR0FBRyxFQUFyQjtBQUNBLFlBQU1DLEtBQUssR0FBRyxPQUFPLG9CQUFNLEtBQU4sRUFBYSxDQUFDLFVBQUQsQ0FBYixFQUEyQjtBQUFFUCxRQUFBQSxHQUFHLEVBQUVKO0FBQVAsT0FBM0IsRUFBOENZLEtBQTlD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IGZyb20gJ2V4ZWNhJztcbmltcG9ydCB7IG9jIH0gZnJvbSAndHMtb3B0Y2hhaW4ubWFjcm8nO1xuaW1wb3J0IGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCBvcmEgZnJvbSAnb3JhJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHBrZ0RpciBmcm9tICdwa2ctZGlyJztcbmltcG9ydCB7IENvbW1hbmQsIGZsYWdzIH0gZnJvbSAnQG9jbGlmL2NvbW1hbmQnO1xuaW1wb3J0IHsgbWFwU2VyaWVzIH0gZnJvbSAnYmx1ZWJpcmQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGUge1xuICBjb3VudDogbnVtYmVyO1xuICBsaW5lczogc3RyaW5nW107XG4gIHBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlcyB7XG4gIFtrZXk6IHN0cmluZ106IEZpbGU7XG59XG5cbmNvbnN0IHJvb3RQYXRoID0gcGtnRGlyLnN5bmMocHJvY2Vzcy5jd2QoKSkgfHwgcHJvY2Vzcy5jd2QoKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVFNJZ25vcmUgZXh0ZW5kcyBDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID0gJ2lnbm9yZSB0eXBlc2NyaXB0IGVycm9ycyc7XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIGhlbHA6IGZsYWdzLmhlbHAoeyBjaGFyOiAnaCcgfSksXG4gICAgdmVyc2lvbjogZmxhZ3MudmVyc2lvbih7IGNoYXI6ICd2JyB9KVxuICB9O1xuXG4gIGFzeW5jIHJ1bigpIHtcbiAgICBjb25zdCBzcGlubmVyID0gb3JhKCk7XG4gICAgc3Bpbm5lci5zdGFydCgnZmluZGluZyBlcnJvcnMnKTtcbiAgICBjb25zdCBmaWxlczogRmlsZXMgPSB7fTtcbiAgICBjb25zdCBsaW5lcyA9IChhd2FpdCBleGVjYSgndHNjJywgWyctLW5vRW1pdCddLCB7IGN3ZDogcm9vdFBhdGggfSkuY2F0Y2goXG4gICAgICBlcnIgPT4ge1xuICAgICAgICBpZiAoZXJyLnN0ZG91dCkgcmV0dXJuIGVycjtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgICkpLnN0ZG91dC5zcGxpdCgnXFxuJyk7XG4gICAgc3Bpbm5lci5zdGFydCgnZml4aW5nIGVycm9ycycpO1xuICAgIGxldCBjb3VudCA9IDA7XG4gICAgYXdhaXQgbWFwU2VyaWVzKGxpbmVzLCBhc3luYyAobGluZTogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBbLCBmaWxlUGF0aCwgbGluZU51bWJlcl0gPSBsaW5lLm1hdGNoKFxuICAgICAgICAvKC4rXFwudHN4PylcXCgoXFxkKyksXFxkK1xcKTogZXJyb3IgVFNcXGR7NH06IC9cbiAgICAgICkgfHwgW251bGwsIG51bGwsIG51bGxdO1xuICAgICAgaWYgKCFmaWxlUGF0aCkgcmV0dXJuO1xuICAgICAgaWYgKCEoZmlsZVBhdGggaW4gZmlsZXMpKSB7XG4gICAgICAgIGZpbGVzW2ZpbGVQYXRoXSA9IHtcbiAgICAgICAgICBjb3VudDogMCxcbiAgICAgICAgICBsaW5lczogKGF3YWl0IGZzLnJlYWRGaWxlKGZpbGVQYXRoKSkudG9TdHJpbmcoKS5zcGxpdCgnXFxuJyksXG4gICAgICAgICAgcGF0aDogcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIGZpbGVQYXRoKVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgKytjb3VudDtcbiAgICAgIGNvbnN0IGZpbGUgPSBmaWxlc1tmaWxlUGF0aF07XG4gICAgICBjb25zdCBwYWRkaW5nOiBudW1iZXIgPSBvYyhcbiAgICAgICAgZmlsZS5saW5lc1tOdW1iZXIobGluZU51bWJlcikgKyBmaWxlLmNvdW50IC0gMV0ubWF0Y2goL14gKi8pXG4gICAgICApKFsnJ10pWzBdLmxlbmd0aDtcbiAgICAgIGZpbGUubGluZXMuc3BsaWNlKFxuICAgICAgICBOdW1iZXIobGluZU51bWJlcikgKyBmaWxlLmNvdW50IC0gMSxcbiAgICAgICAgMCxcbiAgICAgICAgYCR7QXJyYXkocGFkZGluZylcbiAgICAgICAgICAuZmlsbCgnICcpXG4gICAgICAgICAgLmpvaW4oJycpfS8vIEB0cy1pZ25vcmVgXG4gICAgICApO1xuICAgICAgKytmaWxlLmNvdW50O1xuICAgIH0pO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgT2JqZWN0LnZhbHVlcyhmaWxlcykubWFwKGFzeW5jIChmaWxlOiBGaWxlKSA9PiB7XG4gICAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShmaWxlLnBhdGgsIGZpbGUubGluZXMuam9pbignXFxuJykpO1xuICAgICAgfSlcbiAgICApO1xuICAgIHNwaW5uZXIuc3VjY2VlZChgZml4ZWQgJHtjb3VudH0gZXJyb3JzYCk7XG4gIH1cbn1cbiJdfQ==