@baqhub/sdk
Version:
The official JavaScript SDK for the BAQ federated app platform.
70 lines (69 loc) • 2.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.QuerySort = exports.QuerySortDirection = exports.QuerySortProperty = void 0;
const jsonpath_plus_1 = require("jsonpath-plus");
const pathHelpers_js_1 = require("./pathHelpers.js");
//
// Model.
//
var QuerySortProperty;
(function (QuerySortProperty) {
QuerySortProperty["CREATED_AT"] = "createdAt";
QuerySortProperty["RECEIVED_AT"] = "receivedAt";
QuerySortProperty["VERSION_CREATED_AT"] = "version.createdAt";
QuerySortProperty["VERSION_RECEIVED_AT"] = "version.receivedAt";
})(QuerySortProperty || (exports.QuerySortProperty = QuerySortProperty = {}));
var QuerySortDirection;
(function (QuerySortDirection) {
QuerySortDirection["ASCENDING"] = "ascending";
QuerySortDirection["DESCENDING"] = "descending";
})(QuerySortDirection || (exports.QuerySortDirection = QuerySortDirection = {}));
//
// I/O.
//
const querySortDirectionMap = {
[QuerySortDirection.ASCENDING]: "asc",
[QuerySortDirection.DESCENDING]: "desc",
};
const querySortDefault = [
QuerySortProperty.VERSION_RECEIVED_AT,
QuerySortDirection.DESCENDING,
];
const querySortSyncDefault = [
QuerySortProperty.VERSION_RECEIVED_AT,
QuerySortDirection.ASCENDING,
];
function querySortToString(querySort) {
const property = (0, pathHelpers_js_1.normalizePath)(querySort[0]);
const direction = querySortDirectionMap[querySort[1]];
return `${property}+${direction}`;
}
function querySortToDirection(querySort) {
return querySort[1];
}
function findDateInRecord(record, querySort) {
switch (querySort[0]) {
case QuerySortProperty.CREATED_AT:
return record.createdAt;
case QuerySortProperty.RECEIVED_AT:
return record.receivedAt;
case QuerySortProperty.VERSION_CREATED_AT:
return record.version?.createdAt;
case QuerySortProperty.VERSION_RECEIVED_AT:
return record.version?.receivedAt;
default: {
const recordValues = (0, jsonpath_plus_1.JSONPath)({
path: querySort[0],
json: record,
});
return recordValues[0];
}
}
}
exports.QuerySort = {
default: querySortDefault,
syncDefault: querySortSyncDefault,
toString: querySortToString,
toDirection: querySortToDirection,
findDateInRecord,
};