identi-recognition
Version:
identiRecognition
132 lines (109 loc) • 3.15 kB
JavaScript
const codes = require('./codes')
const { validationResult } = require('express-validator')
// _ _ ___ _ ___ ___ _ _ _ ___ _ _ _ _ ___ _____ ___ ___ _ _ ___
// | || | __| | | _ \ __| | | | | | __| | | | \| |/ __|_ _|_ _/ _ \| \| / __|
// | __ | _|| |__| _/ _|| |_| | |__ | _|| |_| | .` | (__ | | | | (_) | .` \__ \
// |_||_|___|____|_| |_| \___/|____| |_| \___/|_|\_|\___| |_| |___\___/|_|\_|___/
// *************** HELPER FUNCIONTS ******************//
function getHeaders(form) {
return new Promise((resolve, reject) => {
form.getLength((err, length) => {
if (err) {
reject(err)
}
let headers = Object.assign({ 'Content-Length': length }, form.getHeaders())
resolve(headers)
})
})
}
function validateIPaddress(ipaddress) {
try {
if (
/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(
ipaddress
)
) {
return true
}
return false
} catch (e) {
console.error('Couldnt validate Ip Address')
return false
}
}
function isNull(value) {
return value === null
}
function isUndefined(value) {
return value === undefined
}
function isObject(value) {
return typeof value === 'object' && value !== null && !Array.isArray(value)
}
function isString(value) {
return typeof value === 'string'
}
function isFunction(value) {
return typeof value === 'function'
}
function isError(value) {
switch (Object.prototype.toString.call(value)) {
case '[object Error]':
return true
case '[object Exception]':
return true
case '[object DOMException]':
return true
default:
return value instanceof Error
}
}
function isNumber(value) {
return !isNaN(parseFloat(value)) && !isNaN(value - 0)
}
function errorHandler(err, _req, res, _next) {
const { status, name, ...data } = err
return res.status(status).send(data)
}
function isValidDate(str) {
const date = new Date(str)
const ans = date instanceof Date && !isNaN(date)
return ans
}
function formatTime(dateChange, diff_time = 5 * 60 * 60 * 1000) {
if (dateChange) {
var date = new Date(dateChange.getTime() + diff_time)
var hour = date.getHours()
hour = (hour < 10 ? '0' : '') + hour
var min = date.getMinutes()
min = (min < 10 ? '0' : '') + min
var sec = date.getSeconds()
sec = (sec < 10 ? '0' : '') + sec
var year = date.getFullYear()
var month = date.getMonth() + 1
month = (month < 10 ? '0' : '') + month
var day = date.getDate()
day = (day < 10 ? '0' : '') + day
return year + '-' + month + '-' + day + ' ' + hour + ':' + min + ':' + sec + ': '
} else {
console.error('No date passed to function')
return false
}
}
// const myDate = '6-26-2012 16:00'
// console.log(isValidDate(myDate))
// console.log(new Date(myDate).getTime())
module.exports = {
getHeaders,
isNull,
isUndefined,
isObject,
isString,
isFunction,
isError,
isNumber,
formatTime,
isValidDate,
errorHandler,
validateIPaddress
}