date-goggles
v1.0.1
Published
see numeric timestamps in text as dates
Downloads
4
Readme
date-goggles
Our work involves lots of numeric timestamps in JSON. This leads to a lot of log output like:
[2020-04-01 18:32:22 TrackedEntityActivityRecordAPI] INFO calling historian.putData: { '_org/5/Employees/148':
{ t: [ 1585777672134, 1585778400000 ],
v: [ 'Stuffing', null ],
beginTime: 1585777672134,
Which can be tedious to debug because numeric timestamps are inscrutable. date-goggles
helps by searching for numbers that
seem to be timestamps and converting them to Dates
:
[2020-04-01 18:32:22 TrackedEntityActivityRecordAPI] INFO calling historian.putData: { '_org/5/Employees/148':
{ t: [ 4/1/2020, 4:47:52 PM, 4/1/2020, 5:00:00 PM ],
v: [ 'Stuffing', null ],
beginTime: 4/1/2020, 4:47:52 PM,
Table of Contents
Node.js API
dateGoggles(input, options)
Transforms the output with format(parse(input, options), options)
.
See parse
and format
for options
documentation.
parse(input, options)
Parses input text.
Arguments
input: string
(required)
The input to parse.
options.unit
('milliseconds' | 'seconds'
, optional)
The timestamp unit. If omitted, tries to guess based upon the input or numeric options.min
/options.max
.
options.min
(number | Date | null | undefined
, optional)
Numbers found in the input less than this will not be considered timestamps.
If you pass null
, no lower bound is used. If undefined
or omitted, defaults to 10 years ago.
options.max
(number | Date | null | undefined
, optional)
Numbers found in the input greater than this will not be considered timestamps.
If you pass null
, there's no upper bound. If undefined
or omitted, defaults to 5 years into the future.
Returns: Array<string | Date>
The input split up in to substrings in which no timestamps were found, and timestamps
converted to Date
s.
format(ast, options)
Formats a parsed AST.
Arguments
ast: Array<string | Date>
(required)
The AST output of parse
.
options.formatDate
((date: Date) => string
, optional)
Customizes how Date
s are formatted.
Returns: string
The formatted output.
CLI
The CLI is pretty basic and doesn't have any options to customize output right now,
it just parses file arguments or stdin and outputs using date.toLocaleString()
:
date-goggles app1.log app2.log
OR
some-command | date-goggles