UNPKG

five-server

Version:

Development Server with Live Reload Capability. (Maintained Fork of Live Server)

151 lines 5.84 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.donate = exports.getConfigFile = exports.defaultPHPPath = exports.fileDoesExist = exports.createHttpError = void 0; const colors_1 = require("./colors"); const fs_1 = __importDefault(require("fs")); const msg_1 = require("./msg"); const os_1 = __importDefault(require("os")); const path_1 = __importDefault(require("path")); __exportStar(require("./helpers"), exports); // just a fallback for removing http-errors dependency const createHttpError = (code = 500, msg = 'unknown', _nothing) => { if (code !== 404) msg_1.message.log(`ERROR: ${code} ${msg}`); return { message: msg, code, status: code, statusCode: code, name: code }; }; exports.createHttpError = createHttpError; const fileDoesExist = (path) => { return new Promise(resolve => { fs_1.default.stat(path, (err, stat) => { if (err && err.code === 'ENOENT') { return resolve(false); } else return resolve(true); }); }); }; exports.fileDoesExist = fileDoesExist; const defaultPHPPath = (is_ci = false) => { // is_ci is for macos on github actions for shivammathur/setup-php@v2 // (https://github.com/marketplace/actions/setup-php-action) switch (os_1.default.platform()) { case 'darwin': return is_ci ? '/opt/homebrew/bin/php' : '/usr/local/bin/php'; case 'linux': return '/usr/bin/php'; case 'win32': return 'c:\\tools\\php\\php.exe'; } return ''; }; exports.defaultPHPPath = defaultPHPPath; /** * Get and parse the configFile. * @param configFile Absolute path of configFile, or true, or false. * @param workspace Absolute path to the current workspace. * @returns LiveServerParams */ const getConfigFile = (configFile = true, workspace) => { let options = {}; if (configFile === false) return options; const dirs = []; const files = [ '.fiveserverrc', '.fiveserverrc.json', '.fiveserverrc.js', '.fiveserverrc.cjs', '.fiveserverrc.mjs', 'fiveserver.config.js', 'fiveserver.config.cjs', 'fiveserver.config.mjs', '.live-server.json' ]; if (typeof configFile === 'string') { // TODO: Add support for this files.unshift(configFile); } if (workspace) dirs.push(workspace); dirs.push(path_1.default.resolve()); const homeDir = process.env[process.platform === 'win32' ? 'USERPROFILE' : 'HOME']; if (homeDir) dirs.push(homeDir); dirs.push(process.cwd()); const isJSReg = /\.c?m?js$/; loop: for (const d of dirs) { for (const f of files) { const configPath = path_1.default.join(d, f); if (fs_1.default.existsSync(configPath)) { const isJS = isJSReg.test(path_1.default.extname(configPath)); if (isJS) { try { delete require.cache[configPath]; const config = require(configPath); if (Object.keys(config).length === 0) { msg_1.message.warn(`Config file "${f}" is empty or has issues`); } options = { ...options, ...config }; } catch (err) { msg_1.message.error(err.message, f, false); } } else { const config = fs_1.default.readFileSync(configPath, 'utf8'); try { options = { ...options, ...JSON.parse(config) }; } catch (err) { msg_1.message.error(err.message, f, false); } } if (options.ignorePattern) options.ignorePattern = new RegExp(options.ignorePattern); break loop; } } } // some small adjustments if (options.root) options.root = options.root.replace(/^\/+/, ''); if (options.open === 'true') options.open = true; if (options.open === 'false') options.open = false; if (options.https === 'true') options.https = true; return options; }; exports.getConfigFile = getConfigFile; const donate = () => { // show only 2% of the time if (Math.random() > 0.02) return; msg_1.message.log(''); msg_1.message.log(` ${(0, colors_1.colors)('Thank you for using ', 'gray')}Five Server${(0, colors_1.colors)('!', 'gray')}`); msg_1.message.log(` ${(0, colors_1.colors)('Please consider supporting it on GitHub.', 'gray')}`); msg_1.message.log(''); msg_1.message.log(` ${(0, colors_1.colors)('Donate: https://github.com/sponsors/yandeu', 'yellow')}`); msg_1.message.log(''); }; exports.donate = donate; //# sourceMappingURL=misc.js.map