UNPKG

@avonjs/avonjs

Version:

A fluent Node.js API generator.

41 lines (40 loc) 1.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Filters_1 = require("../Filters"); exports.default = (Parent) => { class ResolvesFilters extends Parent { /** * Get the filters that are available for the given request. */ availableFilters(request) { return this.resolveFilters(request) .concat(this.resolveFiltersFromFields(request)) .filter((filter) => filter.authorizedToSee(request)); } /** * Get the filters for the given request. */ resolveFilters(request) { return this.filters(request); } /** * Get the filters from filterable fields for the given request. */ resolveFiltersFromFields(request) { return request .resource() .filterableFields(request) .map((field) => field.resolveFilter(request)) .filter((filter) => filter instanceof Filters_1.Filter) .unique((filter) => filter.key()) .all(); } /** * Get the filters available on the entity. */ filters(request) { return []; } } return ResolvesFilters; };