node-mock-server
Version:
File based Node REST API mock server
171 lines (148 loc) • 2.54 kB
JavaScript
/* eslint no-use-before-define: 0 */
/* eslint block-scoped-var: 0 */
;
var log = require('chip')();
if (!_swaggerLog) {
var _swaggerLog = [];
}
/**
* @function _getDateTime
* @returns {string} dateTime
* @private
*/
function _getDateTime() {
return new Date()
.toISOString()
.replace(/T/, ' ')
.replace(/\..+/, '') + ' GMT+0000';
}
/**
* @function _getTime
* @returns {string} time
* @private
*/
function _getTime() {
return new Date()
.toISOString()
.replace(/T/, ' ')
.replace(/\..+/, '')
.split(' ')[1];
}
/**
* @function _consoleLog
* @param {object} msg
* @param {string} msg.type ENUM(success|warn|error)
* @param {string} msg.msg
* @param {string} msg.time
* @returns {void}
* @private
*/
function _consoleLog(msg) {
var type;
if (process.env.NODE_ENV === 'test') {
return;
}
type = msg.type;
type = (type === 'neutral') ? 'log' : type;
type = (type === 'success') ? 'log' : type;
if (log && log[type]) {
log[type](msg.time + ': ' + _getWithoutHtml(msg.msg));
}
}
/**
* @method _getWithoutHtml
* @param {string} value
* @returns {string}
* @private
*/
function _getWithoutHtml(value) {
if (typeof value !== 'string') {
return '';
}
return value.replace(/<(.|\n)*?>/g, '');
}
/**
* @function _push
* @param {object} msg
* @param {string} msg.type ENUM(neutral|success|warn|error)
* @param {string} msg.msg
* @returns {void}
* @private
*/
function _push(msg) {
var obj = {
type: msg.type || 'neutral',
msg: msg.msg,
dateTime: _getDateTime(),
time: _getTime(),
};
_swaggerLog.push(obj);
_consoleLog(obj);
}
var swaggerLog = {
/**
* @function error
* @param {string} msg
* @returns {void}
* @public
*/
error: function (msg) {
_push({
msg: msg,
type: 'error',
});
},
/**
* @function warn
* @param {string} msg
* @returns {void}
* @public
*/
warn: function (msg) {
_push({
msg: msg,
type: 'warn',
});
},
/**
* @function success
* @param {string} msg
* @returns {void}
* @public
*/
success: function (msg) {
_push({
msg: msg,
type: 'success',
});
},
/**
* @function neutral
* @param {string} msg
* @returns {void}
* @public
*/
neutral: function (msg) {
_push({
msg: msg,
type: 'neutral',
});
},
/**
* @function get
* @returns {Array}
* @public
*/
get: function () {
return _swaggerLog;
},
/**
* @function clear
* @returns {Array}
* @public
*/
clear: function () {
_swaggerLog = [];
},
};
module.exports = swaggerLog;