UNPKG

@baqhub/sdk

Version:

The official JavaScript SDK for the BAQ federated app platform.

70 lines (69 loc) 2.38 kB
"use strict"; 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, };