UNPKG

@growing-web/codemod

Version:

@growing-web/codemod for Growing Web Guidelines.

117 lines (110 loc) 3.32 kB
'use strict'; const cac = require('cac'); const colors = require('picocolors'); const consola = require('consola'); const fs = require('fs-extra'); const path = require('node:path'); const getPackages = require('@manypkg/get-packages'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; } const colors__default = /*#__PURE__*/_interopDefaultLegacy(colors); const consola__default = /*#__PURE__*/_interopDefaultLegacy(consola); const fs__default = /*#__PURE__*/_interopDefaultLegacy(fs); const path__default = /*#__PURE__*/_interopDefaultLegacy(path); const name = "@growing-web/codemod"; const version = "0.1.0"; const description = "@growing-web/codemod for Growing Web Guidelines."; const keywords = [ "growing-web", "codemod" ]; const homepage = "https://github.com/growing-web/web-kit#readme"; const bugs = { url: "https://github.com/growing-web/web-kit/issues" }; const repository = { type: "git", url: "git+https://github.com/growing-web/web-kit.git", directory: "packages/codemod" }; const license = "MIT"; const author = "vben"; const main = "./dist/index.cjs"; const module$1 = "./dist/index.mjs"; const types = "./dist/index.d.ts"; const bin = "./bin/codemod.mjs"; const scripts = { build: "unbuild", dev: "unbuild --stub", prepublishOnly: "pnpm run build", prestub: "npm run dev" }; const dependencies = { "@manypkg/get-packages": "^1.1.3", cac: "^6.7.12", consola: "^2.15.3", "fs-extra": "^10.1.0", picocolors: "^1.0.0" }; const pkg = { name: name, version: version, description: description, keywords: keywords, homepage: homepage, bugs: bugs, repository: repository, license: license, author: author, main: main, module: module$1, types: types, bin: bin, scripts: scripts, dependencies: dependencies }; const MONOREPO_CODE_WORKSPACE_FILE = "monorepo.code-workspace"; async function generatorVscodeCodeWorksapceFile(cwd = process.cwd()) { const { packages, root } = await getPackages.getPackages(cwd); const folders = packages.map((pkg) => { return { name: pkg.packageJson.name, path: path__default.relative(root.dir || cwd, pkg.dir) }; }); folders.filter(Boolean); folders.push({ name: "root", path: "." }); return folders; } async function createCodeWorksapceFile(cwd) { const folders = await generatorVscodeCodeWorksapceFile(cwd); fs__default.outputJSONSync(path__default.join(cwd, MONOREPO_CODE_WORKSPACE_FILE), { folders }, { encoding: "utf-8", spaces: 2 }); } const NAME = "codemod"; consola__default.wrapConsole(); async function bootstrap() { const cli = cac.cac(NAME); consola__default.info(`${pkg.name} v${pkg.version}`); cli.command("[type]").usage("ability to create.").action(async (type) => { switch (type) { case "create-code-workspace": await createCodeWorksapceFile(process.cwd()); consola__default.success(colors__default.green(`${MONOREPO_CODE_WORKSPACE_FILE} is created!`)); break; default: consola__default.error(colors__default.red(`Invalid transform choice, pick one of: - create-code-workspace `)); } }); cli.version(pkg.version); cli.usage(NAME); cli.help(); cli.parse(); } bootstrap().catch((err) => { consola__default.error(err); process.exit(1); });