ts-dev-stack
Version:
Development stack for TypeScript libraries
1 lines • 3.04 kB
Source Map (JSON)
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-dev-stack/packages/ts-dev-stack/src/commands/install.ts"],"sourcesContent":["import path from 'path';\nimport spawn from 'cross-spawn-cb';\nimport Queue from 'queue-cb';\nimport concatWritable from '../lib/concatWritable';\n\nconst RETRY_MAX = 30;\nconst RETRY_DELAY = 2000;\nconst RETRY_ERRORS = /.*(ETARGET|ENOTEMPTY|ENOENT|ECONNRESET).*/;\n\nexport default function command(args, options, callback) {\n const cwd = options.cwd || process.cwd();\n const queue = new Queue(1);\n let count = 1;\n function install(cb) {\n console.log(`npm install${count > 1 ? ` (${count})` : ''}`);\n const cp = spawn.crossSpawn('npm', ['install'].concat(args), { encoding: 'utf8' });\n cp.stdout.pipe(process.stdout);\n cp.stderr.pipe(process.stderr);\n const stderr = cp.stderr.pipe(\n concatWritable((output) => {\n stderr.output = output.toString();\n })\n );\n spawn.worker(cp, { encoding: 'utf8' }, (err) => {\n if (!err) return cb();\n if (!stderr.output.match(RETRY_ERRORS)) return cb(err);\n if (++count > RETRY_MAX) return callback(new Error(`Failed to install ${path.basename(cwd)}`));\n queue.defer((cb) => setTimeout(cb, RETRY_DELAY));\n queue.defer(spawn.bind(null, 'npm', ['cache', 'clean', '-f'], { stdio: 'inherit' }));\n queue.defer(install.bind(null));\n cb();\n });\n }\n queue.defer(install.bind(null));\n queue.await(callback);\n}\n"],"names":["command","RETRY_MAX","RETRY_DELAY","RETRY_ERRORS","args","options","callback","cwd","process","queue","Queue","count","install","cb","console","log","cp","spawn","crossSpawn","concat","encoding","stdout","pipe","stderr","concatWritable","output","toString","worker","err","match","Error","path","basename","defer","setTimeout","bind","stdio","await"],"mappings":";;;;+BASA;;;eAAwBA;;;2DATP;mEACC;8DACA;qEACS;;;;;;AAE3B,IAAMC,YAAY;AAClB,IAAMC,cAAc;AACpB,IAAMC,eAAe;AAEN,SAASH,QAAQI,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IACrD,IAAMC,MAAMF,QAAQE,GAAG,IAAIC,QAAQD,GAAG;IACtC,IAAME,QAAQ,IAAIC,gBAAK,CAAC;IACxB,IAAIC,QAAQ;IACZ,SAASC,QAAQC,EAAE;QACjBC,QAAQC,GAAG,CAAC,AAAC,cAA4C,OAA/BJ,QAAQ,IAAI,AAAC,KAAU,OAANA,OAAM,OAAK;QACtD,IAAMK,KAAKC,qBAAK,CAACC,UAAU,CAAC,OAAO;YAAC;SAAU,CAACC,MAAM,CAACf,OAAO;YAAEgB,UAAU;QAAO;QAChFJ,GAAGK,MAAM,CAACC,IAAI,CAACd,QAAQa,MAAM;QAC7BL,GAAGO,MAAM,CAACD,IAAI,CAACd,QAAQe,MAAM;QAC7B,IAAMA,SAASP,GAAGO,MAAM,CAACD,IAAI,CAC3BE,IAAAA,uBAAc,EAAC,SAACC;YACdF,OAAOE,MAAM,GAAGA,OAAOC,QAAQ;QACjC;QAEFT,qBAAK,CAACU,MAAM,CAACX,IAAI;YAAEI,UAAU;QAAO,GAAG,SAACQ;YACtC,IAAI,CAACA,KAAK,OAAOf;YACjB,IAAI,CAACU,OAAOE,MAAM,CAACI,KAAK,CAAC1B,eAAe,OAAOU,GAAGe;YAClD,IAAI,EAAEjB,QAAQV,WAAW,OAAOK,SAAS,IAAIwB,MAAM,AAAC,qBAAuC,OAAnBC,aAAI,CAACC,QAAQ,CAACzB;YACtFE,MAAMwB,KAAK,CAAC,SAACpB;uBAAOqB,WAAWrB,IAAIX;;YACnCO,MAAMwB,KAAK,CAAChB,qBAAK,CAACkB,IAAI,CAAC,MAAM,OAAO;gBAAC;gBAAS;gBAAS;aAAK,EAAE;gBAAEC,OAAO;YAAU;YACjF3B,MAAMwB,KAAK,CAACrB,QAAQuB,IAAI,CAAC;YACzBtB;QACF;IACF;IACAJ,MAAMwB,KAAK,CAACrB,QAAQuB,IAAI,CAAC;IACzB1B,MAAM4B,KAAK,CAAC/B;AACd"}