guy
Version:
npm dependencies checker
79 lines (65 loc) • 4.02 kB
JavaScript
(function() {
// 'use strict'
// ############################################################################################################
// ### https://day.js.org ###
// H = require './_helpers'
// @_dayjs = require 'dayjs'
// @_timestamp_input_template = 'YYYYMMDD-HHmmssZ'
// @_timestamp_output_template = 'YYYYMMDD-HHmmss[Z]'
// defaults = {}
// #===========================================================================================================
// do =>
// utc = require 'dayjs/plugin/utc'; @_dayjs.extend utc
// relativeTime = require 'dayjs/plugin/relativeTime'; @_dayjs.extend relativeTime
// toObject = require 'dayjs/plugin/toObject'; @_dayjs.extend toObject
// customParseFormat = require 'dayjs/plugin/customParseFormat'; @_dayjs.extend customParseFormat
// duration = require 'dayjs/plugin/duration'; @_dayjs.extend duration
// #===========================================================================================================
// H.types.declare 'guy_dt_valid_dayjs', tests:
// "( @type_of x ) is 'm'": ( x ) -> ( @type_of x ) is 'm'
// "@isa.float x.$y": ( x ) -> @isa.float x.$y
// "@isa.float x.$M": ( x ) -> @isa.float x.$M
// "@isa.float x.$D": ( x ) -> @isa.float x.$D
// "@isa.float x.$W": ( x ) -> @isa.float x.$W
// "@isa.float x.$H": ( x ) -> @isa.float x.$H
// "@isa.float x.$m": ( x ) -> @isa.float x.$m
// "@isa.float x.$s": ( x ) -> @isa.float x.$s
// "@isa.float x.$ms": ( x ) -> @isa.float x.$ms
// #-----------------------------------------------------------------------------------------------------------
// H.types.declare 'guy_dt_timestamp', tests:
// "@isa.text x": ( x ) -> @isa.text x
// "( /^\\d{8}-\\d{6}Z$/ ).test x": ( x ) -> ( /^\d{8}-\d{6}Z$/ ).test x
// #-----------------------------------------------------------------------------------------------------------
// H.types.declare 'guy_dt_now_cfg', tests:
// "@isa.object x": ( x ) -> @isa.object x
// defaults.guy_dt_now_cfg =
// subtract: null
// add: null
// #===========================================================================================================
// # DATETIME
// #-----------------------------------------------------------------------------------------------------------
// @from_now = ( srts ) ->
// return ( @parse srts ).fromNow()
// #-----------------------------------------------------------------------------------------------------------
// @now = ( cfg ) ->
// H.types.validate.guy_dt_now_cfg ( cfg = { defaults.guy_dt_now_cfg..., cfg..., } )
// R = @_dayjs().utc()
// R = R.subtract cfg.subtract... if cfg.subtract?
// R = R.add cfg.add... if cfg.add?
// return R.format @_timestamp_output_template
// #-----------------------------------------------------------------------------------------------------------
// @srts_from_isots = ( isots ) -> ( @_dayjs isots ).utc().format @_timestamp_output_template
// #-----------------------------------------------------------------------------------------------------------
// @parse = ( srts ) ->
// H.types.validate.guy_dt_timestamp srts
// R = ( @_dayjs srts, @_timestamp_input_template ).utc()
// throw new Error "^guy.datetime.dt_parse@1^ #{rpr srts}" unless H.types.isa.guy_dt_valid_dayjs R
// return R
// #-----------------------------------------------------------------------------------------------------------
// @format = ( srts, P... ) ->
// R = @parse srts
// return R.format P...
// #-----------------------------------------------------------------------------------------------------------
// @isots_from_srts = ( srts ) -> ( @parse srts ).format()
}).call(this);
//# sourceMappingURL=datetime.js.map