UNPKG

2.34 kBJavaScriptView Raw
1"use strict";
2var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3 if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4 if (ar || !(i in from)) {
5 if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6 ar[i] = from[i];
7 }
8 }
9 return to.concat(ar || Array.prototype.slice.call(from));
10};
11Object.defineProperty(exports, "__esModule", { value: true });
12exports.numberReturnTypeMapping = exports.createFilterFunction = exports.filterFunction = void 0;
13var boolean_filter_function_1 = require("./boolean-filter-function");
14var number_filter_function_1 = require("./number-filter-function");
15var string_filter_function_1 = require("./string-filter-function");
16/**
17 * Build a custom filter function.
18 * @param functionName - the name of the function, e.g., `substring`
19 * @param returnType - the return type of the filter function
20 * @param parameters - the parameter(s) used in the function
21 * @returns An instance of filter function suited for the given return type
22 */
23function filterFunction(functionName, returnType) {
24 var parameters = [];
25 for (var _i = 2; _i < arguments.length; _i++) {
26 parameters[_i - 2] = arguments[_i];
27 }
28 return createFilterFunction.apply(void 0, __spreadArray([functionName, returnType], parameters, false));
29}
30exports.filterFunction = filterFunction;
31// eslint-disable-next-line valid-jsdoc
32/**
33 * @hidden
34 */
35function createFilterFunction(functionName, returnType) {
36 var parameters = [];
37 for (var _i = 2; _i < arguments.length; _i++) {
38 parameters[_i - 2] = arguments[_i];
39 }
40 switch (returnType) {
41 case 'boolean':
42 return new boolean_filter_function_1.BooleanFilterFunction(functionName, parameters);
43 case 'string':
44 return new string_filter_function_1.StringFilterFunction(functionName, parameters);
45 case 'int':
46 case 'double':
47 case 'decimal':
48 return new number_filter_function_1.NumberFilterFunction(functionName, parameters, exports.numberReturnTypeMapping[returnType]);
49 }
50}
51exports.createFilterFunction = createFilterFunction;
52exports.numberReturnTypeMapping = {
53 int: 'Edm.Int32',
54 double: 'Edm.Double',
55 decimal: 'Edm.Decimal'
56};
57//# sourceMappingURL=filter-function.js.map
\No newline at end of file