UNPKG

ts-dev-stack

Version:

Development stack for TypeScript libraries

1 lines 4.45 kB
{"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":["runCommand","_require","require","Module","createRequire","_dirname","path","dirname","__filename","url","fileURLToPath","dist","join","nodeModules","moduleRegEx","run","specifier","args","options","callback","mod","fn","default","err","name","config","loadConfig","commands","constants","command","Error","getopts","stopEarly","alias","boolean","_","opts","cwd","process","runOptions","stdio","test","resolve","sync","_err","installModule","console","log","message"],"mappings":";;;;+BAyBA;;;eAAwBA;;;6DAzBL;2DACF;0DACD;oEACI;0EACM;8DACN;uBACO;iEACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE3B,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAC1F,IAAMG,WAAWC,aAAI,CAACC,OAAO,CAAC,OAAOC,eAAe,cAAcC,YAAG,CAACC,aAAa,CAAC,uDAAmBF;AACvG,IAAMG,OAAOL,aAAI,CAACM,IAAI,CAACP,UAAU;AACjC,IAAMQ,cAAcP,aAAI,CAACM,IAAI,CAACP,UAAU,MAAM,MAAM;AACpD,IAAMS,cAAc;AAEpB,SAASC,IAAIC,SAAS,EAAEC,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IAC7C,IAAI;QACF,IAAMC,MAAMnB,SAASe;QACrB,IAAMK,KAAKD,IAAIE,OAAO,IAAIF;QAC1BC,GAAGJ,MAAMC,SAASC;IACpB,EAAE,OAAOI,KAAK;QACZ,OAAOJ,SAASI;IAClB;AACF;AAEe,SAASvB,WAAWwB,IAAI,EAAEP,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IAC9D,IAAMM,SAASC,IAAAA,mBAAU,EAACR;IAC1B,IAAMS,WAAW,mBACZC,WAAUD,QAAQ,EACjB,AAACF,CAAAA,UAAU,CAAC,CAAA,EAAGE,QAAQ,IAAI,CAAC;IAElC,IAAME,UAAUF,QAAQ,CAACH,KAAK;IAC9B,IAAI,CAACK,SAAS,OAAOV,SAAS,IAAIW,MAAM,AAAC,yBAAgCb,OAARO,MAAK,KAAkB,OAAfP,KAAKL,IAAI,CAAC;IACnF,IAAuBmB,WAAAA,IAAAA,sBAAO,EAACd,MAAM;QAAEe,WAAW;QAAMC,OAAO;YAAE,WAAW;QAAK;QAAGC,SAAS;YAAC;SAAU;IAAC,IAAnG,AAAEC,IAAeJ,SAAfI,GAAMC,kCAASL;QAAfI;;IACR,IAAIC,IAAI,CAAC,UAAU,EAAE,OAAOjB;IAC5B,IAAMkB,MAAMnB,QAAQmB,GAAG,IAAIC,QAAQD,GAAG;IACtC,IAAME,aAAa,wCAAKrB;QAASmB,KAAAA;QAAKG,OAAO;;IAC7C,IAAI1B,YAAY2B,IAAI,CAACZ,UAAU;QAC7B,IAAI;YACFa,gBAAO,CAACC,IAAI,CAACrC,aAAI,CAACM,IAAI,CAACiB,SAAS;YAChC,OAAOd,IAAIc,SAASZ,MAAMsB,YAAYpB;QACxC,EAAE,OAAOyB,MAAM;YACb,OAAOC,IAAAA,4BAAa,EAAChB,SAAShB,aAAa,SAACU;gBAC1CuB,QAAQC,GAAG,CAAC,AAAC,mBAA8BxB,OAAZM,SAAQ,MAAyD,OAArDN,MAAM,AAAC,mBAA8B,OAAZA,IAAIyB,OAAO,IAAK;gBACpFzB,MAAMJ,SAASI,OAAOR,IAAIc,SAASZ,MAAMsB,YAAYpB;YACvD;QACF;IACF;IACA,mDAAmD;IACnD,OAAOJ,IAAIT,aAAI,CAACM,IAAI,CAACD,MAAM,OAAOkB,UAAUZ,MAAMsB,YAAYpB;AAChE"}