UNPKG

astx

Version:

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

101 lines (80 loc) 3.92 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _fsExtra = _interopRequireDefault(require("fs-extra")); var _dedentJs = _interopRequireDefault(require("dedent-js")); var _inquirer = _interopRequireDefault(require("inquirer")); var _templateObject, _templateObject2; var init = { command: 'init [file]', describe: 'create a transform file', builder: function builder(yargs) { return yargs.positional('file', { describe: "name of the transform file to create", type: 'string', "default": 'astx.js' }).option('style', { alias: 's', type: 'string', choices: ['find-replace', 'function'] }); }, handler: function () { var _handler = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref) { var _ref$file, file, style, _yield$inquirer$promp, content; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _ref$file = _ref.file, file = _ref$file === void 0 ? 'astx.js' : _ref$file, style = _ref.style; _context.next = 3; return _fsExtra["default"].pathExists(file); case 3: if (!_context.sent) { _context.next = 6; break; } console.error("Path already exists: ".concat(/^[./]/.test(file) ? file : './' + file)); process.exit(1); case 6: if (style) { _context.next = 12; break; } ; _context.next = 10; return _inquirer["default"].prompt([{ name: 'style', type: 'list', choices: ['find-replace', 'function'] }]); case 10: _yield$inquirer$promp = _context.sent; style = _yield$inquirer$promp.style; case 12: content = style === 'function' ? (0, _dedentJs["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n exports.astx = ({ astx, t, expression, statement, statements, report }) => {\n // example: astx.find`$foo`().replace`$foo`()\n }\n "], ["\n exports.astx = ({ astx, t, expression, statement, statements, report }) => {\n // example: astx.find\\`$foo\\`().replace\\`$foo\\`()\n }\n "]))) : (0, _dedentJs["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n exports.find = `\n\n ` \n\n exports.where = {\n \n }\n\n exports.replace = `\n\n `\n "], ["\n exports.find = \\`\n\n \\` \n\n exports.where = {\n \n }\n\n exports.replace = \\`\n\n \\`\n "]))); _context.next = 15; return _fsExtra["default"].writeFile(file, content, 'utf8'); case 15: console.error("Wrote ".concat(/^[./]/.test(file) ? file : './' + file)); case 16: case "end": return _context.stop(); } } }, _callee); })); function handler(_x) { return _handler.apply(this, arguments); } return handler; }() }; var _default = init; exports["default"] = _default;