@lmc-eu/spirit-codemods
Version:
Codemods scripts for Spirit Design System packages
44 lines (37 loc) • 2.43 kB
JavaScript
;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;