UNPKG

http-alive

Version:
66 lines (65 loc) 1.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const fs = require('fs'); const CONF_FILE = '.httpalive'; const DEFAULT_CONF = { arbiter: 3000, master: 3001, slave: 3002 }; const PID_FILE = '.httpalive.pid'; const DEFAULT_PID = { arbiter: null, master: null, slave: null }; exports.checkPid = (pid) => { try { process.kill(pid, 0); return true; } catch (e) { return e.code === 'EPERM'; } }; exports.parseConf = () => { let exist = fs.existsSync(CONF_FILE); if (exist) { let data = fs.readFileSync(CONF_FILE, 'utf-8'); return JSON.parse(data); } else { console.log('please edit your config file `.httpalive`'); fs.writeFileSync(CONF_FILE, JSON.stringify(DEFAULT_CONF)); process.exit(0); } return DEFAULT_CONF; }; exports.delay = (wait, fn) => setTimeout(fn, wait); exports.setPid = (type, pid) => { let exist = fs.existsSync(PID_FILE); if (exist) { let data = fs.readFileSync(PID_FILE, 'utf-8'); let j = JSON.parse(data); j[type] = pid; fs.writeFileSync(PID_FILE, JSON.stringify(j)); } else { fs.writeFileSync(PID_FILE, JSON.stringify(DEFAULT_PID)); return exports.setPid(type, pid); } }; exports.getPid = (type) => { let exist = fs.existsSync(PID_FILE); if (exist) { let data = fs.readFileSync(PID_FILE, 'utf-8'); let j = JSON.parse(data); return j[type]; } else { return null; } }; exports.sample = (arr) => { if (arr.length === 1) { return arr[0]; } if (Math.random() > 0.5) { return arr[1]; } else { return arr[0]; } };