index.js 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. try {
  10. var stdoutbuf_1 = "";
  11. var stderrbuf_1 = "";
  12. // EXEC CHILD PROCESS
  13. var p = child_process_1.exec(command, { maxBuffer: MAX_BUFFER }, function (err, out) {
  14. if (err)
  15. return reject(err);
  16. if (stdoutbuf_1.length > 0 && typeof stdout === 'function')
  17. stdout(stdoutbuf_1);
  18. if (stderrbuf_1.length > 0 && typeof stderr === 'function')
  19. stderr(stderrbuf_1);
  20. resolve(out);
  21. });
  22. // PIPE STDOUT
  23. if (typeof stdout === 'function') {
  24. p.stdout.on("data", function (chunk) {
  25. stdoutbuf_1 += chunk;
  26. var i = -1;
  27. while ((i = stdoutbuf_1.indexOf('\n')) >= 0) {
  28. var line = stdoutbuf_1.substring(0, i);
  29. stdoutbuf_1 = stdoutbuf_1.substring(i + 1);
  30. if (typeof stdout === 'function') {
  31. stdout(line);
  32. }
  33. }
  34. });
  35. }
  36. else if (typeof stdout !== 'undefined') {
  37. p.stdout.pipe(stdout);
  38. }
  39. // PIPE STDERR
  40. if (typeof stderr === 'function') {
  41. p.stderr.on("data", function (chunk) {
  42. stderrbuf_1 += chunk;
  43. var i = -1;
  44. while ((i = stderrbuf_1.indexOf('\n')) >= 0) {
  45. var line = stderrbuf_1.substring(0, i);
  46. stderrbuf_1 = stderrbuf_1.substring(i + 1);
  47. if (typeof stderr === 'function') {
  48. stderr(line);
  49. }
  50. }
  51. });
  52. }
  53. else if (typeof stderr !== 'undefined') {
  54. p.stderr.pipe(stderr);
  55. }
  56. }
  57. catch (err) {
  58. reject(err);
  59. }
  60. });
  61. }
  62. exports.exec = exec;
  63. function spawn(command, args, stdout, stderr) {
  64. return new Promise(function (resolve, reject) {
  65. try {
  66. var p = child_process_2.spawn(command, args);
  67. if (stdout)
  68. p.stdout.pipe(stdout);
  69. if (stderr)
  70. p.stderr.pipe(stderr);
  71. p.on('close', function (code, sig) {
  72. if (!code)
  73. resolve();
  74. else
  75. reject();
  76. });
  77. p.on('error', reject);
  78. p.on('exit', function (code, sig) {
  79. if (!code)
  80. resolve();
  81. else
  82. reject();
  83. });
  84. }
  85. catch (err) {
  86. reject(err);
  87. }
  88. });
  89. }
  90. exports.spawn = spawn;
  91. //# sourceMappingURL=index.js.map