UNPKG

ts-dev-stack

Version:

Development stack for TypeScript libraries

1 lines 3.07 kB
{"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":["path","spawn","Queue","concatWritable","RETRY_MAX","RETRY_DELAY","RETRY_ERRORS","command","args","options","callback","cwd","process","queue","count","install","cb","console","log","cp","crossSpawn","concat","encoding","stdout","pipe","stderr","output","toString","worker","err","match","Error","basename","defer","setTimeout","bind","stdio","await"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,WAAW,iBAAiB;AACnC,OAAOC,WAAW,WAAW;AAC7B,OAAOC,oBAAoB,wBAAwB;AAEnD,MAAMC,YAAY;AAClB,MAAMC,cAAc;AACpB,MAAMC,eAAe;AAErB,eAAe,SAASC,QAAQC,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IACrD,MAAMC,MAAMF,QAAQE,GAAG,IAAIC,QAAQD,GAAG;IACtC,MAAME,QAAQ,IAAIX,MAAM;IACxB,IAAIY,QAAQ;IACZ,SAASC,QAAQC,EAAE;QACjBC,QAAQC,GAAG,CAAC,CAAC,WAAW,EAAEJ,QAAQ,IAAI,CAAC,EAAE,EAAEA,MAAM,CAAC,CAAC,GAAG,IAAI;QAC1D,MAAMK,KAAKlB,MAAMmB,UAAU,CAAC,OAAO;YAAC;SAAU,CAACC,MAAM,CAACb,OAAO;YAAEc,UAAU;QAAO;QAChFH,GAAGI,MAAM,CAACC,IAAI,CAACZ,QAAQW,MAAM;QAC7BJ,GAAGM,MAAM,CAACD,IAAI,CAACZ,QAAQa,MAAM;QAC7B,MAAMA,SAASN,GAAGM,MAAM,CAACD,IAAI,CAC3BrB,eAAe,CAACuB;YACdD,OAAOC,MAAM,GAAGA,OAAOC,QAAQ;QACjC;QAEF1B,MAAM2B,MAAM,CAACT,IAAI;YAAEG,UAAU;QAAO,GAAG,CAACO;YACtC,IAAI,CAACA,KAAK,OAAOb;YACjB,IAAI,CAACS,OAAOC,MAAM,CAACI,KAAK,CAACxB,eAAe,OAAOU,GAAGa;YAClD,IAAI,EAAEf,QAAQV,WAAW,OAAOM,SAAS,IAAIqB,MAAM,CAAC,kBAAkB,EAAE/B,KAAKgC,QAAQ,CAACrB,MAAM;YAC5FE,MAAMoB,KAAK,CAAC,CAACjB,KAAOkB,WAAWlB,IAAIX;YACnCQ,MAAMoB,KAAK,CAAChC,MAAMkC,IAAI,CAAC,MAAM,OAAO;gBAAC;gBAAS;gBAAS;aAAK,EAAE;gBAAEC,OAAO;YAAU;YACjFvB,MAAMoB,KAAK,CAAClB,QAAQoB,IAAI,CAAC;YACzBnB;QACF;IACF;IACAH,MAAMoB,KAAK,CAAClB,QAAQoB,IAAI,CAAC;IACzBtB,MAAMwB,KAAK,CAAC3B;AACd"}