UNPKG

dogmaql.driver.redis

Version:

Redis driver for DogmaQL (Dogma Query Language).

165 lines (157 loc) 8.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.formatRangeFromTime = exports.formatRange = exports.formatInterval = exports.formatEndTime = exports.formatStartTime = exports.formatTime = undefined; var _dogmalang = require("dogmalang"); const moment = _dogmalang.dogma.use(require("moment")); function formatTime(time) { _dogmalang.dogma.paramExpected("time", time, [_dogmalang.datetime, _dogmalang.num]);{ if (_dogmalang.dogma.is(time, _dogmalang.num)) { const $aux15187793582966 = (0, _dogmalang.len)(time = (0, _dogmalang.text)(time));if ($aux15187793582966 == 4) { time += "0101000000"; } else if ($aux15187793582966 == 6) { time += "01000000"; } else if ($aux15187793582966 == 8) { time += "000000"; } else if ($aux15187793582966 == 10) { time += "0000"; } else if ($aux15187793582966 == 12) { time += "00"; } } else { time = moment(time).format("YYYYMMDDhhmmss"); }if ((0, _dogmalang.len)(time) != 14) { _dogmalang.dogma.raise("invalid time format: '%s'.", time); } }return time; }exports.formatTime = formatTime; function formatStartTime(time) { _dogmalang.dogma.paramExpected("time", time, [_dogmalang.text, _dogmalang.num, _dogmalang.datetime]);{ if (_dogmalang.dogma.is(time, _dogmalang.num)) { const $aux15187793588159 = (0, _dogmalang.len)(time = (0, _dogmalang.text)(time));if ($aux15187793588159 == 4) { time += "0101000000"; } else if ($aux15187793588159 == 6) { time += "01000000"; } else if ($aux15187793588159 == 8) { time += "000000"; } else if ($aux15187793588159 == 10) { time += "0000"; } else if ($aux15187793588159 == 12) { time += "00"; } } else if (_dogmalang.dogma.is(time, _dogmalang.text)) { if (time == "today") { time = moment().format("YYYYMMDD000000"); } else if (time == "yesterday") { time = moment().add(-1, "d").format("YYYYMMDD000000"); } else if (_dogmalang.dogma.like(time, "^[0-9]+[mhdwMy] ago$")) { const ago = _dogmalang.dogma.getSlice(RegExp("^([0-9]+)([mhdwMy]) ago$").exec(time), 1, 2);time = moment().add(-_dogmalang.dogma.getItem(ago, 0), _dogmalang.dogma.getItem(ago, 1)).format("YYYYMMDD000000"); } else { _dogmalang.dogma.raise("invalid time format: '%s'.", time); } } else { time = moment(time).format("YYYYMMDDhhmmss"); }if ((0, _dogmalang.len)(time) != 14) { _dogmalang.dogma.raise("invalid time format: '%s'.", time); } }return time; }exports.formatStartTime = formatStartTime; function formatEndTime(time) { _dogmalang.dogma.paramExpected("time", time, [_dogmalang.text, _dogmalang.num, _dogmalang.datetime]);{ if (_dogmalang.dogma.is(time, _dogmalang.num)) { const $aux15187793583079 = (0, _dogmalang.len)(time = (0, _dogmalang.text)(time));if ($aux15187793583079 == 4) { time += "1231235959"; } else if ($aux15187793583079 == 6) { time = moment(time, "YYYYMM").endOf("M").format("YYYYMMDD235959"); } else if ($aux15187793583079 == 8) { time += "235959"; } else if ($aux15187793583079 == 10) { time += "5959"; } else if ($aux15187793583079 == 12) { time += "59"; } } else if (_dogmalang.dogma.is(time, _dogmalang.text)) { if (time == "today") { time = moment().format("YYYYMMDD235959"); } else if (time == "yesterday") { time = moment().add(-1, "d").format("YYYYMMDD235959"); } else if (_dogmalang.dogma.like(time, "^[0-9]+[mhdwMy] ago$")) { const ago = _dogmalang.dogma.getSlice(RegExp("^([0-9]+)([mhdwMy]) ago$").exec(time), 1, 2);time = moment().add(-_dogmalang.dogma.getItem(ago, 0), _dogmalang.dogma.getItem(ago, 1)).format("YYYYMMDD235959"); } else { _dogmalang.dogma.raise("invalid time format: '%s'.", time); } } else { time = moment(time).format("YYYYMMDDhhmmss"); }if ((0, _dogmalang.len)(time) != 14) { _dogmalang.dogma.raise("invalid time format: '%s'.", time); } }return time; }exports.formatEndTime = formatEndTime; function formatInterval(optor, val) { _dogmalang.dogma.paramExpected("optor", optor, _dogmalang.text);_dogmalang.dogma.paramExpected("val", val, [_dogmalang.list, _dogmalang.text, _dogmalang.num, _dogmalang.datetime]);{ let init;let fin;if (optor == "between") { [init, fin] = _dogmalang.dogma.getArrayToUnpack(formatRange(_dogmalang.dogma.getItem(val, 0), _dogmalang.dogma.getItem(val, 1)), 2); } else if (optor == ">") { init = "(" + _dogmalang.dogma.getItem(formatRange(val), 0);fin = "+inf"; } else if (optor == ">=") { init = _dogmalang.dogma.getItem(formatRange(val), 0);fin = "+inf"; } else if (optor == "<") { fin = "(" + _dogmalang.dogma.getItem(formatRange(val), 0);init = "-inf"; } else if (optor == "<=") { fin = _dogmalang.dogma.getItem(formatRange(val), 0);init = "-inf"; } else { [init, fin] = _dogmalang.dogma.getArrayToUnpack(formatRange(val), 2); }return [init, fin]; } }exports.formatInterval = formatInterval; function formatRange(...args) { { return (0, _dogmalang.len)(args) == 1 ? formatRangeFromTime(_dogmalang.dogma.getItem(args, 0)) : [formatStartTime(_dogmalang.dogma.getItem(args, 0)), formatEndTime(_dogmalang.dogma.getItem(args, 1))]; } }exports.formatRange = formatRange; function formatRangeFromTime(time) { let rg = [];_dogmalang.dogma.paramExpected("time", time, [_dogmalang.text, _dogmalang.num, _dogmalang.datetime]);{ if (_dogmalang.dogma.is(time, _dogmalang.num) || _dogmalang.dogma.is(time, _dogmalang.datetime)) { rg = [formatStartTime(time), formatEndTime(time)]; } else { const now = (0, _dogmalang.datetime)();if (time == "today") { rg = [moment(now).format("YYYYMMDD000000"), moment(now).format("YYYYMMDD235959")]; } else if (time == "yesterday") { rg = [moment(now).add(-1, "d").format("YYYYMMDD000000"), moment(now).add(-1, "d").format("YYYYMMDD235959")]; } else if (_dogmalang.dogma.like(time, "^[0-9]+[mhdwMy] ago$")) { rg = [formatStartTime(time), formatEndTime(time)]; } else if (_dogmalang.dogma.like(time, "^last [0-9]+[mhdwMy]$")) { const [i, t] = _dogmalang.dogma.getArrayToUnpack(_dogmalang.dogma.getSlice(RegExp("^last ([0-9]+)([mhdwMy])$").exec(time), 1, 2), 2);if (t == "m") { rg = [moment(now).add(-i, "m").format("YYYYMMDDhhmm00"), moment(now).add(-1, "m").format("YYYYMMDDhhmm59")]; } else if (t == "h") { rg = [moment(now).add(-i, "h").format("YYYYMMDDhh0000"), moment(now).add(-1, "h").format("YYYYMMDDhh5959")]; } else if (t == "d") { rg = [moment(now).add(-i, "d").format("YYYYMMDD000000"), moment(now).add(-1, "d").format("YYYYMMDD235959")]; } else if (t == "w") { rg = [moment(now).add(-i, "w").startOf("w").format("YYYYMMDD000000"), moment(now).add(-1, "w").endOf("w").format("YYYYMMDD235959")]; } else if (t == "M") { rg = [moment(now).add(-i, "M").startOf("M").format("YYYYMMDD000000"), moment(now).add(-1, "M").endOf("M").format("YYYYMMDD235959")]; } else { rg = [moment(now).add(-i, "y").format("YYYY0101000000"), moment(now).add(-1, "y").format("YYYY1231235959")]; } } else if (_dogmalang.dogma.like(time, "^\\[last ([0-9]+)([mhdwMy])\\]$")) { const [i, t] = _dogmalang.dogma.getArrayToUnpack(_dogmalang.dogma.getSlice(RegExp("^\\[last ([0-9]+)([mhdwMy])\\]$").exec(time), 1, 2), 2);const now = (0, _dogmalang.datetime)();const etime = moment(now).format("YYYYMMDDhhmmss");if (t == "m") { rg = [moment(now).add(-i, "m").format("YYYYMMDDhhmmss"), etime]; } else if (t == "h") { rg = [moment(now).add(-i, "h").format("YYYYMMDDhhmmss"), etime]; } else if (t == "d") { rg = [moment(now).add(-i, "d").format("YYYYMMDDhhmmss"), etime]; } else if (t == "w") { rg = [moment(now).add(-i, "w").format("YYYYMMDDhhmmss"), etime]; } else if (t == "M") { rg = [moment(now).add(-i, "M").format("YYYYMMDDhhmmss"), etime]; } else { rg = [moment(now).add(-i, "Y").format("YYYYMMDDhhmmss"), etime]; } } else { _dogmalang.dogma.raise("invalid time format: '%s'.", time); } } }return rg; }exports.formatRangeFromTime = formatRangeFromTime;