ts-dev-stack
Version:
Development stack for TypeScript libraries
1 lines • 4.41 kB
Source Map (JSON)
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-dev-stack/packages/ts-dev-stack/src/runCommand.ts"],"sourcesContent":["import Module from 'module';\nimport path from 'path';\nimport url from 'url';\nimport getopts from 'getopts-compat';\nimport installModule from 'install-module-linked';\nimport resolve from 'resolve';\nimport { loadConfig } from 'tsds-lib';\nimport * as constants from './constants';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst _dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst dist = path.join(_dirname, '..');\nconst nodeModules = path.join(_dirname, '..', '..', 'node_modules');\nconst moduleRegEx = /^[^.\\/]|^\\.[^.\\/]|^\\.\\.[^\\/]/;\n\nfunction run(specifier, args, options, callback) {\n try {\n const mod = _require(specifier);\n const fn = mod.default || mod;\n fn(args, options, callback);\n } catch (err) {\n return callback(err);\n }\n}\n\nexport default function runCommand(name, args, options, callback) {\n const config = loadConfig(options);\n const commands = {\n ...constants.commands,\n ...((config || {}).commands || {}),\n };\n const command = commands[name];\n if (!command) return callback(new Error(`Unrecognized command: ${name} ${args.join(' ')}`));\n const { _, ...opts } = getopts(args, { stopEarly: true, alias: { 'dry-run': 'dr' }, boolean: ['dry-run'] });\n if (opts['dry-run']) return callback();\n const cwd = options.cwd || process.cwd();\n const runOptions = { ...options, cwd, stdio: 'inherit' };\n if (moduleRegEx.test(command)) {\n try {\n resolve.sync(path.join(command, 'package.json'));\n return run(command, args, runOptions, callback);\n } catch (_err) {\n return installModule(command, nodeModules, (err) => {\n console.log(`Module missing: ${command}. ${err ? `Failed install: ${err.message}` : 'Installed'}`);\n err ? callback(err) : run(command, args, runOptions, callback);\n });\n }\n }\n // for relative files, ensure the extension matches\n return run(path.join(dist, 'cjs', command), args, runOptions, callback);\n}\n"],"names":["Module","path","url","getopts","installModule","resolve","loadConfig","constants","_require","require","createRequire","_dirname","dirname","__filename","fileURLToPath","dist","join","nodeModules","moduleRegEx","run","specifier","args","options","callback","mod","fn","default","err","runCommand","name","config","commands","command","Error","_","opts","stopEarly","alias","boolean","cwd","process","runOptions","stdio","test","sync","_err","console","log","message"],"mappings":"AAAA,OAAOA,YAAY,SAAS;AAC5B,OAAOC,UAAU,OAAO;AACxB,OAAOC,SAAS,MAAM;AACtB,OAAOC,aAAa,iBAAiB;AACrC,OAAOC,mBAAmB,wBAAwB;AAClD,OAAOC,aAAa,UAAU;AAC9B,SAASC,UAAU,QAAQ,WAAW;AACtC,YAAYC,eAAe,cAAc;AAEzC,MAAMC,WAAW,OAAOC,YAAY,cAAcT,OAAOU,aAAa,CAAC,YAAYR,GAAG,IAAIO;AAC1F,MAAME,WAAWV,KAAKW,OAAO,CAAC,OAAOC,eAAe,cAAcX,IAAIY,aAAa,CAAC,YAAYZ,GAAG,IAAIW;AACvG,MAAME,OAAOd,KAAKe,IAAI,CAACL,UAAU;AACjC,MAAMM,cAAchB,KAAKe,IAAI,CAACL,UAAU,MAAM,MAAM;AACpD,MAAMO,cAAc;AAEpB,SAASC,IAAIC,SAAS,EAAEC,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IAC7C,IAAI;QACF,MAAMC,MAAMhB,SAASY;QACrB,MAAMK,KAAKD,IAAIE,OAAO,IAAIF;QAC1BC,GAAGJ,MAAMC,SAASC;IACpB,EAAE,OAAOI,KAAK;QACZ,OAAOJ,SAASI;IAClB;AACF;AAEA,eAAe,SAASC,WAAWC,IAAI,EAAER,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IAC9D,MAAMO,SAASxB,WAAWgB;IAC1B,MAAMS,WAAW;QACf,GAAGxB,UAAUwB,QAAQ;QACrB,GAAI,AAACD,CAAAA,UAAU,CAAC,CAAA,EAAGC,QAAQ,IAAI,CAAC,CAAC;IACnC;IACA,MAAMC,UAAUD,QAAQ,CAACF,KAAK;IAC9B,IAAI,CAACG,SAAS,OAAOT,SAAS,IAAIU,MAAM,CAAC,sBAAsB,EAAEJ,KAAK,CAAC,EAAER,KAAKL,IAAI,CAAC,MAAM;IACzF,MAAM,EAAEkB,CAAC,EAAE,GAAGC,MAAM,GAAGhC,QAAQkB,MAAM;QAAEe,WAAW;QAAMC,OAAO;YAAE,WAAW;QAAK;QAAGC,SAAS;YAAC;SAAU;IAAC;IACzG,IAAIH,IAAI,CAAC,UAAU,EAAE,OAAOZ;IAC5B,MAAMgB,MAAMjB,QAAQiB,GAAG,IAAIC,QAAQD,GAAG;IACtC,MAAME,aAAa;QAAE,GAAGnB,OAAO;QAAEiB;QAAKG,OAAO;IAAU;IACvD,IAAIxB,YAAYyB,IAAI,CAACX,UAAU;QAC7B,IAAI;YACF3B,QAAQuC,IAAI,CAAC3C,KAAKe,IAAI,CAACgB,SAAS;YAChC,OAAOb,IAAIa,SAASX,MAAMoB,YAAYlB;QACxC,EAAE,OAAOsB,MAAM;YACb,OAAOzC,cAAc4B,SAASf,aAAa,CAACU;gBAC1CmB,QAAQC,GAAG,CAAC,CAAC,gBAAgB,EAAEf,QAAQ,EAAE,EAAEL,MAAM,CAAC,gBAAgB,EAAEA,IAAIqB,OAAO,EAAE,GAAG,aAAa;gBACjGrB,MAAMJ,SAASI,OAAOR,IAAIa,SAASX,MAAMoB,YAAYlB;YACvD;QACF;IACF;IACA,mDAAmD;IACnD,OAAOJ,IAAIlB,KAAKe,IAAI,CAACD,MAAM,OAAOiB,UAAUX,MAAMoB,YAAYlB;AAChE"}