OpenTSDB utility providing time validation.
OpenTSDB allows three time formats. This library exposes an API to validate time values in accordance with the allowed formats.
For use in Node.js,
$ npm install opentsdb-validate-time
For use in the browser, use browserify.
To create an OpenTSDB time validator,
var validate = require( 'opentsdb-validate-time' );
The validator is exported as a class instance (in Node, as a singleton) and has the following methods...
Validates whether an input string is an absolute date; e.g., 2014/07/18-9:34:42
. An absolute date is formatted according to the following rules:
year
,month
, andday
are separated by/
:year/month/day
- calendar values are separated from temporal values by either a space or
-
:year/month/day-00:00:00
oryear/month/day 00:00:00
- if specified, hour and minutes must be specified together:
00:00
- seconds are optional
validate.absolute( '2014/07/14' );
validate.absolute( '2014/07/14 9:23' );
validate.absolute( '2014/07/18-9:34:42' );
Validates whether an input value is a timestamp. A timestamp may be either in seconds or milliseconds.
var timestamp = Date.now();
validate.timestamp( timestamp );
validate.timestamp( Math.round( timestamp/1000 ) );
Validates whether an input string is a relative time. Relative times have a time unit (ms
, s
, m
, h
, d
, w
, n
, y
) and the suffix -ago
.
validate.relative( '72000ms-ago' );
Note: the unit for months is n
.
Returns an input value's time format.
validate.format( '2014/07/18-9:34:42' );
// returns 'absolute'
validate.format( Date.now() );
// returns 'timestamp'
validate.format( '72000ms-ago' );
// returns 'relative'
validate.format( 'beep' );
// returns undefined
To run the example code from the top-level application directory,
$ node ./examples/index.js
Unit tests use the Mocha test framework with Chai assertions. To run the tests, execute the following command in the top-level application directory:
$ make test
All new feature development should have corresponding unit tests to validate correct functionality.
This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:
$ make test-cov
Istanbul creates a ./reports/coverage
directory. To access an HTML version of the report,
$ make view-cov
Copyright © 2014. Athan Reines.