dogmaql.driver.redis
Version:
Redis driver for DogmaQL (Dogma Query Language).
165 lines (157 loc) • 8.49 kB
JavaScript
;
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;