index.js 3.3 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 MAX_BUFFER = 10 * Math.pow(2, 20);
  6. function exec(command, stdout, stderr) {
  7. return new Promise(function (resolve, reject) {
  8. var _a, _b, _c, _d;
  9. try {
  10. var stdoutbuf_1 = "";
  11. var stderrbuf_1 = "";
  12. // EXEC CHILD PROCESS
  13. var p = (0, 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. (_a = p.stdout) === null || _a === void 0 ? void 0 : _a.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. (_b = p.stdout) === null || _b === void 0 ? void 0 : _b.pipe(stdout);
  38. }
  39. // PIPE STDERR
  40. if (typeof stderr === 'function') {
  41. (_c = p.stderr) === null || _c === void 0 ? void 0 : _c.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. (_d = p.stderr) === null || _d === void 0 ? void 0 : _d.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 = (0, child_process_1.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