index.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.spawn = exports.exec = void 0;
  4. var child_process_1 = require("child_process");
  5. var child_process_2 = require("child_process");
  6. var MAX_BUFFER = 10 * Math.pow(2, 20);
  7. function exec(command, stdout, stderr) {
  8. return new Promise(function (resolve, reject) {
  9. var stdoutbuf = "";
  10. var stderrbuf = "";
  11. // EXEC CHILD PROCESS
  12. var p = child_process_1.exec(command, { maxBuffer: MAX_BUFFER }, function (err, out) {
  13. if (err)
  14. return reject(err);
  15. if (stdoutbuf.length > 0 && typeof stdout === 'function')
  16. stdout(stdoutbuf);
  17. if (stderrbuf.length > 0 && typeof stderr === 'function')
  18. stderr(stderrbuf);
  19. resolve(out);
  20. });
  21. // PIPE STDOUT
  22. if (typeof stdout === 'function') {
  23. p.stdout.on("data", function (chunk) {
  24. stdoutbuf += chunk;
  25. var i = -1;
  26. while ((i = stdoutbuf.indexOf('\n')) >= 0) {
  27. var line = stdoutbuf.substring(0, i);
  28. stdoutbuf = stdoutbuf.substring(i + 1);
  29. if (typeof stdout === 'function') {
  30. stdout(line);
  31. }
  32. }
  33. });
  34. }
  35. else if (typeof stdout !== 'undefined') {
  36. p.stdout.pipe(stdout);
  37. }
  38. // PIPE STDERR
  39. if (typeof stderr === 'function') {
  40. p.stderr.on("data", function (chunk) {
  41. stderrbuf += chunk;
  42. var i = -1;
  43. while ((i = stderrbuf.indexOf('\n')) >= 0) {
  44. var line = stderrbuf.substring(0, i);
  45. stderrbuf = stderrbuf.substring(i + 1);
  46. if (typeof stderr === 'function') {
  47. stderr(line);
  48. }
  49. }
  50. });
  51. }
  52. else if (typeof stderr !== 'undefined') {
  53. p.stderr.pipe(stderr);
  54. }
  55. });
  56. }
  57. exports.exec = exec;
  58. function spawn(command, args, stdout, stderr) {
  59. return new Promise(function (resolve, reject) {
  60. try {
  61. var p = child_process_2.spawn(command, args);
  62. p.stdout.pipe(stdout);
  63. p.stderr.pipe(stderr);
  64. p.on('close', function (code, sig) {
  65. if (!code)
  66. resolve();
  67. else
  68. reject();
  69. });
  70. p.on('error', reject);
  71. p.on('exit', function (code, sig) {
  72. if (!code)
  73. resolve();
  74. else
  75. reject();
  76. });
  77. }
  78. catch (err) {
  79. console.error(err);
  80. }
  81. });
  82. }
  83. exports.spawn = spawn;
  84. //# sourceMappingURL=index.js.map