UNPKG

@mapbox/mapbox-gl-style-spec

Version:

a specification for mapbox gl styles

40 lines (33 loc) 1.02 kB
/* eslint-disable @typescript-eslint/ban-ts-comment */ // @ts-nocheck import migrateToV8 from './migrate/v8'; import migrateToExpressions from './migrate/expressions'; /** * Migrate a Mapbox GL Style to the latest version. * * @private * @alias migrate * @param {object} style a Mapbox GL Style * @returns {Object} a migrated style * @example * var fs = require('fs'); * var migrate = require('mapbox-gl-style-spec').migrate; * var style = fs.readFileSync('./style.json', 'utf8'); * fs.writeFileSync('./style.json', JSON.stringify(migrate(style))); */ export default function (style) { let migrated = false; if (style.version === 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); } // eslint-disable-next-line @typescript-eslint/no-unsafe-return return style; }