UNPKG

maplibre-gl

Version:

BSD licensed community fork of mapbox-gl, a WebGL interactive maps library

38 lines (31 loc) 1.01 kB
import migrateToV8 from './migrate/v8'; import migrateToExpressions from './migrate/expressions'; import type {StyleSpecification} from './types.g'; /** * Migrate a Mapbox GL Style to the latest version. * * @private * @alias migrate * @param {StyleSpecification} style a MapLibre GL Style * @returns {StyleSpecification} a migrated style * @example * var fs = require('fs'); * var migrate = require('maplibre-gl-style-spec').migrate; * var style = fs.readFileSync('./style.json', 'utf8'); * fs.writeFileSync('./style.json', JSON.stringify(migrate(style))); */ export default function migrate(style: StyleSpecification): StyleSpecification { let migrated = false; if (style.version as any === 7) { style = migrateToV8(style); migrated = true; } if (style.version === 8) { migrated = !!migrateToExpressions(style); migrated = true; } if (!migrated) { throw new Error(`Cannot migrate from ${style.version}`); } return style; }