@avonjs/avonjs
Version:
A fluent Node.js API generator.
41 lines (40 loc) • 1.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const Orderings_1 = require("../Orderings");
exports.default = (Parent) => {
class ResolvesOrderings extends Parent {
/**
* Get the orders that are available for the given request.
*/
availableOrderings(request) {
return this.resolveOrderings(request)
.concat(this.resolveOrderingsFromFields(request))
.filter((order) => order.authorizedToSee(request));
}
/**
* Get the orders for the given request.
*/
resolveOrderings(request) {
return this.orders(request);
}
/**
* Get the orders from orderable fields for the given request.
*/
resolveOrderingsFromFields(request) {
return request
.resource()
.orderableFields(request)
.map((field) => field.resolveOrdering(request))
.filter((order) => order instanceof Orderings_1.Ordering)
.unique((order) => order.key())
.all();
}
/**
* Get the orders available on the entity.
*/
orders(request) {
return [];
}
}
return ResolvesOrderings;
};