index.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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 MAX_BUFFER = 10 * Math.pow(2, 20);
  6. function exec(command, stdout, stderr) {
  7. return new Promise(function (resolve, reject) {
  8. try {
  9. var stdoutbuf_1 = "";
  10. var stderrbuf_1 = "";
  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_1.length > 0 && typeof stdout === 'function')
  16. stdout(stdoutbuf_1);
  17. if (stderrbuf_1.length > 0 && typeof stderr === 'function')
  18. stderr(stderrbuf_1);
  19. resolve(out);
  20. });
  21. // PIPE STDOUT
  22. if (typeof stdout === 'function') {
  23. p.stdout.on("data", function (chunk) {
  24. stdoutbuf_1 += chunk;
  25. var i = -1;
  26. while ((i = stdoutbuf_1.indexOf('\n')) >= 0) {
  27. var line = stdoutbuf_1.substring(0, i);
  28. stdoutbuf_1 = stdoutbuf_1.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_1 += chunk;
  42. var i = -1;
  43. while ((i = stderrbuf_1.indexOf('\n')) >= 0) {
  44. var line = stderrbuf_1.substring(0, i);
  45. stderrbuf_1 = stderrbuf_1.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. catch (err) {
  57. reject(err);
  58. }
  59. });
  60. }
  61. exports.exec = exec;
  62. function spawn(command, args, stdout, stderr) {
  63. return new Promise(function (resolve, reject) {
  64. try {
  65. var p = child_process_1.spawn(command, args);
  66. if (stdout)
  67. p.stdout.pipe(stdout);
  68. if (stderr)
  69. p.stderr.pipe(stderr);
  70. p.on('close', function (code, sig) {
  71. if (!code)
  72. resolve();
  73. else
  74. reject();
  75. });
  76. p.on('error', reject);
  77. p.on('exit', function (code, sig) {
  78. if (!code)
  79. resolve();
  80. else
  81. reject();
  82. });
  83. }
  84. catch (err) {
  85. reject(err);
  86. }
  87. });
  88. }
  89. exports.spawn = spawn;
  90. //# sourceMappingURL=index.js.map