aboutsummaryrefslogtreecommitdiff
path: root/node_modules/nodemon/lib/config/index.js
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2022-06-04 08:51:01 +0200
committerMinteck <contact@minteck.org>2022-06-04 08:51:01 +0200
commit383285ecd5292bf9a825e05904955b937de84cc9 (patch)
tree0a53b6f02c1604b078044567c03dc1b6c944c8c2 /node_modules/nodemon/lib/config/index.js
downloadequestriadb-383285ecd5292bf9a825e05904955b937de84cc9.tar.gz
equestriadb-383285ecd5292bf9a825e05904955b937de84cc9.tar.bz2
equestriadb-383285ecd5292bf9a825e05904955b937de84cc9.zip
Initial commit
Diffstat (limited to 'node_modules/nodemon/lib/config/index.js')
-rw-r--r--node_modules/nodemon/lib/config/index.js93
1 files changed, 93 insertions, 0 deletions
diff --git a/node_modules/nodemon/lib/config/index.js b/node_modules/nodemon/lib/config/index.js
new file mode 100644
index 0000000..c78c435
--- /dev/null
+++ b/node_modules/nodemon/lib/config/index.js
@@ -0,0 +1,93 @@
+/**
+ * Manages the internal config of nodemon, checking for the state of support
+ * with fs.watch, how nodemon can watch files (using find or fs methods).
+ *
+ * This is *not* the user's config.
+ */
+var debug = require('debug')('nodemon');
+var load = require('./load');
+var rules = require('../rules');
+var utils = require('../utils');
+var pinVersion = require('../version').pin;
+var command = require('./command');
+var rulesToMonitor = require('../monitor/match').rulesToMonitor;
+var bus = utils.bus;
+
+function reset() {
+ rules.reset();
+
+ config.dirs = [];
+ config.options = { ignore: [], watch: [], monitor: [] };
+ config.lastStarted = 0;
+ config.loaded = [];
+}
+
+var config = {
+ run: false,
+ system: {
+ cwd: process.cwd(),
+ },
+ required: false,
+ dirs: [],
+ timeout: 1000,
+ options: {},
+};
+
+/**
+ * Take user defined settings, then detect the local machine capability, then
+ * look for local and global nodemon.json files and merge together the final
+ * settings with the config for nodemon.
+ *
+ * @param {Object} settings user defined settings for nodemon (typically on
+ * the cli)
+ * @param {Function} ready callback fired once the config is loaded
+ */
+config.load = function (settings, ready) {
+ reset();
+ var config = this;
+ load(settings, config.options, config, function (options) {
+ config.options = options;
+
+ if (options.watch.length === 0) {
+ // this is to catch when the watch is left blank
+ options.watch.push('*.*');
+ }
+
+ if (options['watch_interval']) { // jshint ignore:line
+ options.watchInterval = options['watch_interval']; // jshint ignore:line
+ }
+
+ config.watchInterval = options.watchInterval || null;
+ if (options.signal) {
+ config.signal = options.signal;
+ }
+
+ var cmd = command(config.options);
+ config.command = {
+ raw: cmd,
+ string: utils.stringify(cmd.executable, cmd.args),
+ };
+
+ // now run automatic checks on system adding to the config object
+ options.monitor = rulesToMonitor(options.watch, options.ignore, config);
+
+ var cwd = process.cwd();
+ debug('config: dirs', config.dirs);
+ if (config.dirs.length === 0) {
+ config.dirs.unshift(cwd);
+ }
+
+ bus.emit('config:update', config);
+ pinVersion().then(function () {
+ ready(config);
+ }).catch(e => {
+ // this doesn't help testing, but does give exposure on syntax errors
+ console.error(e.stack);
+ setTimeout(() => { throw e; }, 0);
+ });
+ });
+};
+
+config.reset = reset;
+
+module.exports = config;