UNPKG

@lmc-eu/spirit-codemods

Version:

Codemods scripts for Spirit Design System packages

44 lines (37 loc) 2.43 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/cli.ts var _execa = require('execa'); var _sade = require('sade'); var _sade2 = _interopRequireDefault(_sade); var _zx = require('zx'); // src/helpers/message.ts var errorMessage = (message) => console.error(_zx.chalk.red(message)); var logMessage = (message) => console.log(message); // src/helpers/path.ts var _filedirname = require('filedirname'); var _filedirname2 = _interopRequireDefault(_filedirname); var [_filename, _dirname] = _filedirname2.default.call(void 0, ); // src/cli.ts var packageJson = _zx.fs.readJsonSync(_zx.path.resolve(_dirname, "./package.json")); async function cli(args) { _sade2.default.call(void 0, "spirit-codemods", true).version(packageJson.version).describe(packageJson.description).option("-p, --path", "Path to the code to be transformed").example("-p ./").option("-t, --transformation", "Codemod transformation name to run").example("-t v2/web-react/codemodName").option("-e, --extensions", "Extensions to look for when transforming files, default: ts,tsx,js,jsx").example("-e ts, tsx, js, jsx").option("-i, --ignore", "Ignore files or directories, default: **/node_modules/**").example("-i **/node_modules/**").option("-r, --parser", "Parser to use (babel, ts, tsx, flow), default: tsx").example("--parser babel").action(async ({ path: codePath, transformation, extensions, ignore, parser }) => { const defaultExtensions = "ts,tsx,js,jsx"; const defaultIgnore = "**/node_modules/**"; const defaultParser = "tsx"; if (!codePath || !_zx.fs.existsSync(codePath)) { errorMessage(codePath); errorMessage("Please provide a valid path"); process.exit(1); } if (!transformation) { errorMessage("Please provide a codemod name"); process.exit(1); } const codemodPath = _zx.path.resolve(_dirname, `./transforms/${transformation}.ts`); if (!_zx.fs.existsSync(codemodPath)) { errorMessage("Codemod does not exist"); process.exit(1); } const { stdout } = await _execa.$`jscodeshift --transform ${codemodPath} --extensions ${extensions || defaultExtensions} --ignore-pattern=${ignore || defaultIgnore} --parser=${parser || defaultParser} ${codePath}`; logMessage(stdout); process.exit(0); }).parse(args); } exports.cli = cli;