relution-sdk
Version:
Relution Software Development Kit for TypeScript and JavaScript
65 lines • 7.72 kB
JavaScript
/*
* @file query/Filter.ts
* Relution SDK
*
* Created by Thomas Beckmann on 22.06.2015
* Copyright 2016 M-Way Solutions GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @module query
*/
/** */
;
/**
* all known valid types of filters.
*
* @type {string[]} of all known types of filters.
*/
exports.filterTypes = [
'boolean',
'containsString',
'dateRange',
'doubleRange',
'like',
'logOp',
'longEnum',
'longRange',
'stringEnum',
'string',
'stringMap',
'stringRange',
'null'
];
/**
* checks if a given type value is a valid FilterType value.
*
* @param type value to check.
* @return {boolean} whether type value is valid.
*/
function isFilterType(type) {
return exports.filterTypes.indexOf(type) >= 0;
}
exports.isFilterType = isFilterType;
/**
* checks if an object is a Filter.
*
* @param filter object to check.
* @return {boolean} whether filter is a filter.
*/
function isFilter(filter) {
return filter && isFilterType(filter.type);
}
exports.isFilter = isFilter;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJ5L0ZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0g7O0dBRUc7QUFDSCxNQUFNOztBQW9CTjs7OztHQUlHO0FBQ1UsbUJBQVcsR0FBRztJQUN6QixTQUFTO0lBQ1QsZ0JBQWdCO0lBQ2hCLFdBQVc7SUFDWCxhQUFhO0lBQ2IsTUFBTTtJQUNOLE9BQU87SUFDUCxVQUFVO0lBQ1YsV0FBVztJQUNYLFlBQVk7SUFDWixRQUFRO0lBQ1IsV0FBVztJQUNYLGFBQWE7SUFDYixNQUFNO0NBQ1AsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsc0JBQTZCLElBQVM7SUFDbEMsTUFBTSxDQUFDLG1CQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBRmUsb0JBQVksZUFFM0IsQ0FBQTtBQVNEOzs7OztHQUtHO0FBQ0gsa0JBQXlCLE1BQVc7SUFDbEMsTUFBTSxDQUFDLE1BQU0sSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFGZSxnQkFBUSxXQUV2QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIEBmaWxlIHF1ZXJ5L0ZpbHRlci50c1xuICogUmVsdXRpb24gU0RLXG4gKlxuICogQ3JlYXRlZCBieSBUaG9tYXMgQmVja21hbm4gb24gMjIuMDYuMjAxNVxuICogQ29weXJpZ2h0IDIwMTYgTS1XYXkgU29sdXRpb25zIEdtYkhcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBAbW9kdWxlIHF1ZXJ5XG4gKi9cbi8qKiAqL1xuXG4vKipcbiAqIGtpbmQgb2YgRmlsdGVyIGFzIGRlZmluZWQgYnkgY29ycmVzcG9uZGluZyBKYXZhIG9iamVjdCBtb2RlbC5cbiAqL1xuZXhwb3J0IHR5cGUgRmlsdGVyVHlwZSA9XG4gICdib29sZWFuJyB8XG4gICdjb250YWluc1N0cmluZycgfFxuICAnZGF0ZVJhbmdlJyB8XG4gICdkb3VibGVSYW5nZScgfFxuICAnbGlrZScgfFxuICAnbG9nT3AnIHxcbiAgJ2xvbmdFbnVtJyB8XG4gICdsb25nUmFuZ2UnIHxcbiAgJ3N0cmluZ0VudW0nIHxcbiAgJ3N0cmluZycgfFxuICAnc3RyaW5nTWFwJyB8XG4gICdzdHJpbmdSYW5nZScgfFxuICAnbnVsbCc7XG5cbi8qKlxuICogYWxsIGtub3duIHZhbGlkIHR5cGVzIG9mIGZpbHRlcnMuXG4gKlxuICogQHR5cGUge3N0cmluZ1tdfSBvZiBhbGwga25vd24gdHlwZXMgb2YgZmlsdGVycy5cbiAqL1xuZXhwb3J0IGNvbnN0IGZpbHRlclR5cGVzID0gW1xuICAnYm9vbGVhbicsXG4gICdjb250YWluc1N0cmluZycsXG4gICdkYXRlUmFuZ2UnLFxuICAnZG91YmxlUmFuZ2UnLFxuICAnbGlrZScsXG4gICdsb2dPcCcsXG4gICdsb25nRW51bScsXG4gICdsb25nUmFuZ2UnLFxuICAnc3RyaW5nRW51bScsXG4gICdzdHJpbmcnLFxuICAnc3RyaW5nTWFwJyxcbiAgJ3N0cmluZ1JhbmdlJyxcbiAgJ251bGwnXG5dO1xuXG4vKipcbiAqIGNoZWNrcyBpZiBhIGdpdmVuIHR5cGUgdmFsdWUgaXMgYSB2YWxpZCBGaWx0ZXJUeXBlIHZhbHVlLlxuICpcbiAqIEBwYXJhbSB0eXBlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybiB7Ym9vbGVhbn0gd2hldGhlciB0eXBlIHZhbHVlIGlzIHZhbGlkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGaWx0ZXJUeXBlKHR5cGU6IGFueSk6IHR5cGUgaXMgRmlsdGVyVHlwZSB7XG4gICAgcmV0dXJuIGZpbHRlclR5cGVzLmluZGV4T2YodHlwZSkgPj0gMDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXIge1xuICAvKipcbiAgICoga2luZCBvZiBGaWx0ZXIgYXMgZGVmaW5lZCBieSBjb3JyZXNwb25kaW5nIEphdmEgb2JqZWN0IG1vZGVsLlxuICAgKi9cbiAgdHlwZTogRmlsdGVyVHlwZTtcbn1cblxuLyoqXG4gKiBjaGVja3MgaWYgYW4gb2JqZWN0IGlzIGEgRmlsdGVyLlxuICpcbiAqIEBwYXJhbSBmaWx0ZXIgb2JqZWN0IHRvIGNoZWNrLlxuICogQHJldHVybiB7Ym9vbGVhbn0gd2hldGhlciBmaWx0ZXIgaXMgYSBmaWx0ZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0ZpbHRlcihmaWx0ZXI6IGFueSk6IGZpbHRlciBpcyBGaWx0ZXIge1xuICByZXR1cm4gZmlsdGVyICYmIGlzRmlsdGVyVHlwZShmaWx0ZXIudHlwZSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9nT3BGaWx0ZXIgZXh0ZW5kcyBGaWx0ZXIge1xuICAvKipcbiAgICoga2luZCBvZiBPcGVyYXRpb24gYXMgZGVmaW5lZCBieSBjb3JyZXNwb25kaW5nIEphdmEgb2JqZWN0IG1vZGVsLlxuICAgKlxuICAgKiA8cD5cbiAgICogIC0gYW5kXG4gICAqICAtIG9yXG4gICAqICAtIG5hbmRcbiAgICogIC0gbm9yXG4gICAqIDwvcD5cbiAgICovXG4gIG9wZXJhdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBmaWx0ZXJzIGV2YWx1YXRlZCB3aXRoIGxvZ2ljYWwgb3BlcmF0aW9uIChmaWx0ZXIxIExPR09QIGZpbHRlcjIgTE9HT1AgZmlsdGVyMy4uLikuXG4gICAqL1xuICBmaWx0ZXJzOiBGaWx0ZXJbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWVsZEZpbHRlciBleHRlbmRzIEZpbHRlciB7XG4gIC8qKlxuICAgKiBmaWVsZCBleHByZXNzaW9uIGlkZW50aWZ5aW5nIGxlZnQgaGFuZCBzaWRlIG9mIHRoZSBmaWx0ZXIuXG4gICAqL1xuICBmaWVsZE5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwgb2YgdGhlIGxpYnJhcnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdWVGaWx0ZXI8VD4gZXh0ZW5kcyBGaWVsZEZpbHRlciB7XG4gIHZhbHVlOiBUO1xufVxuXG4vKipcbiAqIGltcGxlbWVudGF0aW9uIGRldGFpbCBvZiB0aGUgbGlicmFyeS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSYW5nZUZpbHRlcjxUPiBleHRlbmRzIEZpZWxkRmlsdGVyIHtcbiAgbWluPzogVDtcbiAgbWF4PzogVDtcbn1cblxuLyoqXG4gKiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwgb2YgdGhlIGxpYnJhcnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW51bUZpbHRlcjxUPiBleHRlbmRzIEZpZWxkRmlsdGVyIHtcbiAgdmFsdWVzOiBUW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9vbGVhbkZpbHRlciBleHRlbmRzIFZhbHVlRmlsdGVyPGJvb2xlYW4+IHtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250YWluc1N0cmluZ0ZpbHRlciBleHRlbmRzIEZpZWxkRmlsdGVyIHtcbiAgY29udGFpbnM6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRlUmFuZ2VGaWx0ZXIgZXh0ZW5kcyBSYW5nZUZpbHRlcjxEYXRlPiB7XG59XG5cbi8qKlxuICogaW1wbGVtZW50YXRpb24gZGV0YWlsIG9mIHRoZSBsaWJyYXJ5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE51bWJlclJhbmdlRmlsdGVyIGV4dGVuZHMgUmFuZ2VGaWx0ZXI8bnVtYmVyPiB7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG91YmxlUmFuZ2VGaWx0ZXIgZXh0ZW5kcyBOdW1iZXJSYW5nZUZpbHRlciB7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9uZ1JhbmdlRmlsdGVyIGV4dGVuZHMgTnVtYmVyUmFuZ2VGaWx0ZXIge1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpa2VGaWx0ZXIgZXh0ZW5kcyBGaWVsZEZpbHRlciB7XG4gIGxpa2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb25nRW51bUZpbHRlciBleHRlbmRzIEVudW1GaWx0ZXI8bnVtYmVyPiB7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nRW51bUZpbHRlciBleHRlbmRzIEVudW1GaWx0ZXI8c3RyaW5nPiB7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nRmlsdGVyIGV4dGVuZHMgVmFsdWVGaWx0ZXI8c3RyaW5nPiB7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nTWFwRmlsdGVyIGV4dGVuZHMgRmllbGRGaWx0ZXIge1xuICBrZXk/OiBzdHJpbmc7XG4gIHZhbHVlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0cmluZ1JhbmdlRmlsdGVyIGV4dGVuZHMgUmFuZ2VGaWx0ZXI8c3RyaW5nPiB7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTnVsbEZpbHRlciBleHRlbmRzIEZpZWxkRmlsdGVyIHtcbiAgaXNOdWxsOiBib29sZWFuO1xufVxuIl19