@sap-cloud-sdk/odata-common
Version:
SAP Cloud SDK for JavaScript common functions of OData client generator and OpenAPI clint generator.
45 lines • 1.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isOrderable = isOrderable;
exports.asc = asc;
exports.desc = desc;
// eslint-disable-next-line import/no-internal-modules
const link_1 = require("../selectable/link");
const order_1 = require("./order");
/**
* @internal
* Convenience function to check whether a given type is of type {@link Orderable}.
* @typeParam EntityT - Type of the entity to be ordered
* @typeParam DeSerializersT - Type of the (de-)serializers
* @param orderType - Type {@link Orderable} or {@link OrderableInput}.
* @returns Whether the given `orderType` is of type {@link Orderable}.
*/
function isOrderable(orderType) {
return (!!orderType.orderType ||
!!orderType.link);
}
/**
* Create new Order by `orderBy._fieldName` in ascending order.
* @template EntityT - Type of the entity to be ordered.
* @param orderBy - Field or link to be ordered by.
* @returns New order.
*/
function asc(orderBy) {
if (orderBy instanceof link_1.Link) {
return new order_1.Order(orderBy._fieldName);
}
return new order_1.Order(orderBy.fieldPath());
}
/**
* Create new Order by `orderBy._fieldName` in descending order.
* @template EntityT - Type of the entity to be ordered.
* @param orderBy - Field or link to be ordered by.
* @returns New order.
*/
function desc(orderBy) {
if (orderBy instanceof link_1.Link) {
return new order_1.Order(orderBy._fieldName);
}
return new order_1.Order(orderBy.fieldPath(), 'desc');
}
//# sourceMappingURL=orderable.js.map