UNPKG

@mapbox/react-native-mapbox-gl

Version:

A Mapbox GL react native module for creating custom maps

52 lines (43 loc) 1.04 kB
import { isBoolean, isNumber, isString } from './index'; export function getFilter (filter) { if (!Array.isArray(filter) || filter.length == 0) { return []; } let flattenedFilter = []; for (let i = 0; i < filter.length; i++) { const item = filter[i]; if (Array.isArray(item)) { flattenedFilter = flattenedFilter.concat(item); } else { flattenedFilter.push(item); } } let filterItems = []; for (let item of flattenedFilter) { const filterItem = new FilterItem(item); filterItems.push(filterItem.toJSON()); } return filterItems; } export class FilterItem { constructor (value) { this.value = value; } getType () { if (isBoolean(this.value)) { return 'boolean'; } else if (isNumber(this.value)) { return 'number'; } else if (isString(this.value)) { return 'string'; } else { throw new Error('FilterItem must be a primitive'); } } toJSON () { return { type: this.getType(), value: this.value, }; } }