filesafe/logger.js
Bobby Wibowo 922269181c
More improvements to uploads filtering!
Renamed "orderby" key to "sort" (for sorting uploads).

Fixed non-keyed keyword exclusions not working as expected when
more than one are used at the same time.

Support not specifying "from" date when filtering with range keys
(date and expiry).

Proper logic for NULL values inclusion/exclusion when filtering with
user and/or ip keys.

Improved Help? prompt again!!
Also clarify about timezone differences.

Added logger.debug() function.
Basically a shorthand for console.log(require('util').inspect()).

Rebuilt client asssets and bumped v1 version string.
2020-04-20 01:19:20 +07:00

54 lines
1.2 KiB
JavaScript

const { inspect } = require('util')
const self = {}
// Only show shortened version (time) during development
const short = process.env.NODE_ENV === 'development'
const now = () => {
const time = new Date()
const parsed = {
hours: time.getHours(),
minutes: time.getMinutes(),
seconds: time.getSeconds()
}
if (!short) {
parsed.month = time.getMonth() + 1
parsed.date = time.getDate()
}
// Add leading zeroes and slice
Object.keys(parsed).forEach(key => {
parsed[key] = ('0' + parsed[key]).slice(-2)
})
return (!short ? `${time.getFullYear()}-${parsed.month}-${parsed.date} ` : '') +
`${parsed.hours}:${parsed.minutes}:${parsed.seconds}`
}
const clean = item => {
if (typeof item === 'string') return item
const cleaned = inspect(item, { depth: 0 })
return cleaned
}
const write = (content, options = {}) => {
const stream = options.error ? process.stderr : process.stdout
stream.write(`[${now()}] ${options.prefix || ''}${clean(content)}\n`)
}
self.log = write
self.error = (content, options = {}) => {
options.error = true
write(content, options)
}
self.debug = (...args) => {
for (const arg of args)
console.log(inspect(arg, { depth: Infinity }))
}
module.exports = self