package.src.style.validate_style.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mapbox-gl Show documentation
Show all versions of mapbox-gl Show documentation
A WebGL interactive maps library
The newest version!
// @flow
import validateStyleMin from '../style-spec/validate_style.min';
import {ErrorEvent} from '../util/evented';
import type {Evented} from '../util/evented';
type ValidationError = {
message: string,
line: number,
identifier?: string
};
export type Validator = (Object) => $ReadOnlyArray;
type ValidateStyle = {
(Object, ?Object): $ReadOnlyArray,
source: Validator,
layer: Validator,
light: Validator,
filter: Validator,
paintProperty: Validator,
layoutProperty: Validator
};
export const validateStyle = (validateStyleMin: ValidateStyle);
export const validateSource = validateStyle.source;
export const validateLight = validateStyle.light;
export const validateFilter = validateStyle.filter;
export const validatePaintProperty = validateStyle.paintProperty;
export const validateLayoutProperty = validateStyle.layoutProperty;
export function emitValidationErrors(emitter: Evented, errors: ?$ReadOnlyArray<{message: string, identifier?: string}>): boolean {
let hasErrors = false;
if (errors && errors.length) {
for (const error of errors) {
emitter.fire(new ErrorEvent(new Error(error.message)));
hasErrors = true;
}
}
return hasErrors;
}