@benedictstrube/ui-mapbox
Version:
Interactive, thoroughly customizable maps powered by vector tiles and OpenGL.
22 lines • 980 B
JavaScript
export class ExpressionParser {
static parseJson(json) {
const filterStr = NSString.stringWithString(JSON.stringify(json));
const filterData = filterStr.dataUsingEncoding(NSUTF8StringEncoding);
const filterJson = NSJSONSerialization.JSONObjectWithDataOptionsError(filterData, 1);
const predicateFilter = NSPredicate.predicateWithMGLJSONObject(filterJson);
return predicateFilter;
}
static toJson(filter) {
if (!filter) {
return null;
}
if (!(filter instanceof NSPredicate)) {
throw new Error('Filter must be a NSPredicate.');
}
const expressionObj = filter.mgl_jsonExpressionObject;
const data = NSJSONSerialization.dataWithJSONObjectOptionsError(expressionObj, 0);
const expression = NSString.alloc().initWithDataEncoding(data, NSUTF8StringEncoding);
return JSON.parse(expression);
}
}
//# sourceMappingURL=expression-parser.ios.js.map