UNPKG

@pigeon-posse/pkg-extended-scripts

Version:

Separate scripts from package.json

54 lines (48 loc) 1.59 kB
#!/usr/bin/env node import { Clippium, hideBin } from 'clippium'; import { argv } from 'node:process'; import { d as data, c as config, g as getConfig, p as pkgName, v as version } from './shared/pkg-extended-scripts.BtsJLO9X.mjs'; import color from '@clippium/color'; import { Updater } from '@clippium/updater'; import '@clippium/preset-colored'; const cli = new Clippium(data, config); cli.fn = async (data2) => { const d = cli.validate(data2); if (d.flags.help) { console.log(data2.utils.getHelp()); return; } else if (d.flags.version) { console.log(data2.utils.getVersion()); return; } const config2 = await getConfig(d.flags.input); const key = d.positionals.key || d.commands ? Object.keys(d.commands)[0] : void 0; if (!config2) throw new Error("pes.config.{js,cjs,mjs,cjs,ts,mts} file not found"); if (!key) throw new Error("Script key not found"); if (key in config2) await config2[key](); else throw new Error(`Script "${data2.positionals.key}" not found`); }; const updater = async ({ name, version }) => { const _updater = new Updater({ version, name }); const data = await _updater.get(); if (!data) return; console.log(` \u2551 \u{1F4E6} ${color.bold("Update available")} ${color.dim(data.currentVersion)} \u2192 ${color.green(data.latestVersion)} ${color.italic(`(${data.type})`)} \u2551 Run ${color.cyan(data.packageManager + " i " + name)} to update `); }; const args = hideBin(argv); const run = async () => { await cli.run(args); await updater({ name: pkgName, version }); }; run();