UNPKG

3.08 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/spawn.js"],"names":["spawn","command","args","options","trace","console","log","error","otherOptions","join","Promise","resolve","reject","proc","stdout","on","data","res","toString","trim","stderr","code"],"mappings":";;;;;;;;;;;;AAAA;;AACA;;;;AAEO,SAASA,KAAT,CAAeC,OAAf,EAAiD;AAAA,MAAzBC,IAAyB,uEAAlB,EAAkB;AAAA,MAAdC,OAAc,uEAAJ,EAAI;AACtD,uBAMIA,OANJ,CACEC,KADF;AAAA,MACEA,KADF,+BACUC,OAAO,CAACC,GADlB;AAAA,qBAMIH,OANJ,CAEEG,GAFF;AAAA,MAEEA,GAFF,6BAEQD,OAAO,CAACC,GAFhB;AAAA,uBAMIH,OANJ,CAGEI,KAHF;AAAA,MAGEA,KAHF,+BAGUF,OAAO,CAACE,KAHlB;AAAA,MAKKC,YALL,6CAMIL,OANJ;;AAQA,MAAIC,KAAJ,EAAW;AACTA,IAAAA,KAAK,CAAC,KAAD,CAAL;AACAA,IAAAA,KAAK,CAAC,KAAD,EAAQ,4BAAKH,OAAL,EAAcC,IAAI,CAACO,IAAL,CAAU,GAAV,CAAd,CAAR,CAAL;AACD;;AACD,SAAO,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACtC,QAAMC,IAAI,GAAG,0BAAYZ,OAAZ,EAAqBC,IAArB,EAA2BM,YAA3B,CAAb;;AACA,QAAIK,IAAI,CAACC,MAAT,EAAiB;AACfD,MAAAA,IAAI,CAACC,MAAL,CAAYC,EAAZ,CAAe,MAAf,EAAuB,UAACC,IAAD,EAAU;AAC/B,YAAMC,GAAG,GAAGD,IAAI,CAACE,QAAL,GAAgBC,IAAhB,EAAZ;AACA,YAAIb,GAAJ,EAASA,GAAG,CAACW,GAAD,CAAH;AACV,OAHD;AAID;;AACD,QAAIJ,IAAI,CAACO,MAAT,EAAiB;AACfP,MAAAA,IAAI,CAACO,MAAL,CAAYL,EAAZ,CAAe,MAAf,EAAuB,UAACC,IAAD,EAAU;AAC/B,YAAMC,GAAG,GAAGD,IAAI,CAACE,QAAL,GAAgBC,IAAhB,EAAZ;AACA,YAAIZ,KAAJ,EAAWA,KAAK,CAACU,GAAD,CAAL;AACZ,OAHD;AAID;;AACDJ,IAAAA,IAAI,CAACE,EAAL,CAAQ,MAAR,EAAgB,UAACM,IAAD,EAAU;AACxB,UAAIjB,KAAJ,EAAW;AACTA,QAAAA,KAAK,CAAC,MAAD,EAAS,4BAAKH,OAAL,EAAcC,IAAI,CAACO,IAAL,CAAU,GAAV,CAAd,CAAT,EAAwC,qBAAxC,EAA+DY,IAA/D,CAAL;AACAjB,QAAAA,KAAK,CAAC,KAAD,CAAL;AACD;;AACD,UAAI,CAACiB,IAAL,EAAW,OAAOV,OAAO,CAACE,IAAD,CAAd,CALa,CAMxB;;AACA,aAAOD,MAAM,CAAC;AAAEC,QAAAA,IAAI,EAAJA,IAAF;AAAQQ,QAAAA,IAAI,EAAJA;AAAR,OAAD,CAAb;AACD,KARD;AASD,GAvBM,CAAP;AAwBD;;eAEcrB,K","sourcesContent":["import trim from '@lskjs/utils/trimSpaces';\nimport { spawn as nativeSpawn } from 'child_process';\n\nexport function spawn(command, args = [], options = {}) {\n const {\n trace = console.log, // eslint-disable-line no-console\n log = console.log, // eslint-disable-line no-console\n error = console.error, // eslint-disable-line no-console\n // cwd = process.cwd(),\n ...otherOptions\n } = options;\n\n if (trace) {\n trace('>>>');\n trace('>>>', trim(command, args.join(' ')));\n }\n return new Promise((resolve, reject) => {\n const proc = nativeSpawn(command, args, otherOptions);\n if (proc.stdout) {\n proc.stdout.on('data', (data) => {\n const res = data.toString().trim();\n if (log) log(res);\n });\n }\n if (proc.stderr) {\n proc.stderr.on('data', (data) => {\n const res = data.toString().trim();\n if (error) error(res);\n });\n }\n proc.on('exit', (code) => {\n if (trace) {\n trace('<<< ', trim(command, args.join(' ')), '<<< finished, code:', code);\n trace('<<<');\n }\n if (!code) return resolve(proc);\n // eslint-disable-next-line prefer-promise-reject-errors\n return reject({ proc, code });\n });\n });\n}\n\nexport default spawn;\n"],"file":"spawn.js"}
\No newline at end of file