@sap-cloud-sdk/odata-common
Version:
SAP Cloud SDK for JavaScript common functions of OData client generator and OpenAPI clint generator.
46 lines • 1.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.numberReturnTypeMapping = void 0;
exports.filterFunction = filterFunction;
exports.createFilterFunction = createFilterFunction;
const boolean_filter_function_1 = require("./boolean-filter-function");
const number_filter_function_1 = require("./number-filter-function");
const string_filter_function_1 = require("./string-filter-function");
/**
* Build a custom filter function.
* @param functionName - The name of the function, e.g., `substring`.
* @param returnType - The return type of the filter function.
* @param parameters - The parameter(s) used in the function.
* @returns An instance of filter function suited for the given return type.
*/
function filterFunction(functionName, returnType, ...parameters) {
return createFilterFunction(functionName, returnType, ...parameters);
}
/**
* @param functionName - functionName
* @param returnType - returnType
* @param parameters - parameters
* @returns A filter function
* @internal
*/
function createFilterFunction(functionName, returnType, ...parameters) {
switch (returnType) {
case 'boolean':
return new boolean_filter_function_1.BooleanFilterFunction(functionName, parameters);
case 'string':
return new string_filter_function_1.StringFilterFunction(functionName, parameters);
case 'int':
case 'double':
case 'decimal':
return new number_filter_function_1.NumberFilterFunction(functionName, parameters, exports.numberReturnTypeMapping[returnType]);
}
}
/**
* @internal
*/
exports.numberReturnTypeMapping = {
int: 'Edm.Int32',
double: 'Edm.Double',
decimal: 'Edm.Decimal'
};
//# sourceMappingURL=filter-function.js.map