@maplibre/maplibre-gl-style-spec
Version:
a specification for maplibre styles
45 lines (40 loc) • 1.21 kB
text/typescript
import {ValidationError} from '../error/validation_error';
import {getType} from '../util/get_type';
import {validateNumber} from './validate_number';
export function validatePadding(options) {
const key = options.key;
const value = options.value;
const type = getType(value);
if (type === 'array') {
if (value.length < 1 || value.length > 4) {
return [
new ValidationError(
key,
value,
`padding requires 1 to 4 values; ${value.length} values found`
)
];
}
const arrayElementSpec = {
type: 'number'
};
let errors = [];
for (let i = 0; i < value.length; i++) {
errors = errors.concat(
options.validateSpec({
key: `${key}[${i}]`,
value: value[i],
validateSpec: options.validateSpec,
valueSpec: arrayElementSpec
})
);
}
return errors;
} else {
return validateNumber({
key,
value,
valueSpec: {}
});
}
}