Server IP : 185.86.78.101 / Your IP : 216.73.216.124 Web Server : Apache System : Linux 675867-vds-valikoshka1996.gmhost.pp.ua 5.4.0-150-generic #167-Ubuntu SMP Mon May 15 17:35:05 UTC 2023 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /www/wwwroot/mifepriston.org/node_modules/browser-sync-ui/lib/ |
Upload File : |
var fs = require("fs"); var path = require("path"); var Immutable = require("immutable"); /** * Take Browsersync plugins and determine if * any UI is provided by looking at data in the the * modules package.json file * @param plugins * @returns {*} */ module.exports = function (plugins) { return require("immutable") .fromJS(plugins) /** * Exclude the UI */ .filter(function (plugin) { return plugin.get("name") !== "UI"; }) /** * Attempt to retrieve a plugins package.json file */ .map(function (plugin) { var moduleName = plugin.getIn(["opts", "moduleName"]); var pkg = {}; if (!moduleName) { return plugin; } try { pkg = require("immutable").fromJS(require(path.join(moduleName, "package.json"))); } catch (e) { console.error(e); return plugin; } plugin = plugin.set("pkg", pkg); return plugin.set("relpath", path.dirname(require.resolve(moduleName))); }) /** * Try to load markup for each plugin */ .map(function (plugin) { if (!plugin.hasIn(["pkg", "browser-sync:ui"])) { return plugin; } var markup = plugin.getIn(["pkg", "browser-sync:ui", "hooks", "markup"]); if (markup) { plugin = plugin.set("markup", fs.readFileSync(path.resolve(plugin.get("relpath"), markup), "utf8")); } return plugin; }) /** * Load any template files for the plugin */ .map(function (plugin) { if (!plugin.hasIn(["pkg", "browser-sync:ui"])) { return plugin; } return resolveIfPluginHas(["pkg", "browser-sync:ui", "hooks", "templates"], "templates", plugin); }) /** * Try to load Client JS for each plugin */ .map(function (plugin) { if (!plugin.hasIn(["pkg", "browser-sync:ui"])) { return plugin; } return resolveIfPluginHas(["pkg", "browser-sync:ui", "hooks", "client:js"], "client:js", plugin); }); }; /** * If a plugin contains this option path, resolve/read the files * @param {Array} optPath - How to access the collection * @param {String} propName - Key for property access * @param {Immutable.Map} plugin * @returns {*} */ function resolveIfPluginHas(optPath, propName, plugin) { var opt = plugin.getIn(optPath); if (opt.size) { return plugin.set( propName, resolvePluginFiles(opt, plugin.get("relpath")) ); } return plugin; } /** * Read & store a file from a plugin * @param {Array|Immutable.List} collection * @param {String} relPath * @returns {any} */ function resolvePluginFiles (collection, relPath) { return Immutable.fromJS(collection.reduce(function (all, item) { var full = path.join(relPath, item); if (fs.existsSync(full)) { all[full] = fs.readFileSync(full, "utf8"); } return all; }, {})); }