'use strict' exports.encodeHtml = (str) => str.replace(//g, '>') exports.getContext = function (req, res) { return { req: req, res: res } } exports.setAnsiColors = function (ansiHTML) { ansiHTML.setColors({ reset: ['efefef', 'a6004c'], darkgrey: '5a012b', yellow: 'ffab07', green: 'aeefba', magenta: 'ff84bf', blue: '3505a0', cyan: '56eaec', red: '4e053a' }) } exports.waitFor = function * (ms) { return new Promise(function (resolve) { setTimeout(resolve, (ms || 0)) }) } exports.urlJoin = function () { return [].slice.call(arguments).join('/').replace(/\/+/g, '/') } exports.promisifyRouteParams = function (fn) { // If routeParams[route] is an array if (Array.isArray(fn)) { return Promise.resolve(fn) } // If routeParams[route] is a function expecting a callback if (fn.length === 1) { return new Promise((resolve, reject) => { fn(function (err, routeParams) { if (err) { reject(err) } resolve(routeParams) }) }) } let promise = fn() if (!(promise instanceof Promise)) { promise = Promise.resolve(promise) } return promise }