aboutsummaryrefslogtreecommitdiff
path: root/node_modules/exit/lib/exit.js
diff options
context:
space:
mode:
authorJoel Kronqvist <joel.h.kronqvist@gmail.com>2022-03-05 19:02:27 +0200
committerJoel Kronqvist <joel.h.kronqvist@gmail.com>2022-03-05 19:02:27 +0200
commit5d309ff52cd399a6b71968a6b9a70c8ac0b98981 (patch)
tree360f7eb50f956e2367ef38fa1fc6ac7ac5258042 /node_modules/exit/lib/exit.js
parentb500a50f1b97d93c98b36ed9a980f8188d648147 (diff)
downloadLYLLRuoka-5d309ff52cd399a6b71968a6b9a70c8ac0b98981.tar.gz
LYLLRuoka-5d309ff52cd399a6b71968a6b9a70c8ac0b98981.zip
Added node_modules for the updating to work properly.
Diffstat (limited to 'node_modules/exit/lib/exit.js')
-rw-r--r--node_modules/exit/lib/exit.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/node_modules/exit/lib/exit.js b/node_modules/exit/lib/exit.js
new file mode 100644
index 0000000..2883e05
--- /dev/null
+++ b/node_modules/exit/lib/exit.js
@@ -0,0 +1,41 @@
+/*
+ * exit
+ * https://github.com/cowboy/node-exit
+ *
+ * Copyright (c) 2013 "Cowboy" Ben Alman
+ * Licensed under the MIT license.
+ */
+
+'use strict';
+
+module.exports = function exit(exitCode, streams) {
+ if (!streams) { streams = [process.stdout, process.stderr]; }
+ var drainCount = 0;
+ // Actually exit if all streams are drained.
+ function tryToExit() {
+ if (drainCount === streams.length) {
+ process.exit(exitCode);
+ }
+ }
+ streams.forEach(function(stream) {
+ // Count drained streams now, but monitor non-drained streams.
+ if (stream.bufferSize === 0) {
+ drainCount++;
+ } else {
+ stream.write('', 'utf-8', function() {
+ drainCount++;
+ tryToExit();
+ });
+ }
+ // Prevent further writing.
+ stream.write = function() {};
+ });
+ // If all streams were already drained, exit now.
+ tryToExit();
+ // In Windows, when run as a Node.js child process, a script utilizing
+ // this library might just exit with a 0 exit code, regardless. This code,
+ // despite the fact that it looks a bit crazy, appears to fix that.
+ process.on('exit', function() {
+ process.exit(exitCode);
+ });
+};