Spaces:
Sleeping
Sleeping
File size: 1,182 Bytes
e7b2eb4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | // @flow
import {getArrayBuffer, ResourceType} from '../util/ajax';
import parseGlyphPBF from './parse_glyph_pbf';
import type {StyleGlyph} from './style_glyph';
import type {RequestManager} from '../util/mapbox';
import type {Callback} from '../types/callback';
export default function (fontstack: string,
range: number,
urlTemplate: string,
requestManager: RequestManager,
callback: Callback<{[_: number]: StyleGlyph | null}>) {
const begin = range * 256;
const end = begin + 255;
const request = requestManager.transformRequest(
requestManager.normalizeGlyphsURL(urlTemplate)
.replace('{fontstack}', fontstack)
.replace('{range}', `${begin}-${end}`),
ResourceType.Glyphs);
getArrayBuffer(request, (err: ?Error, data: ?ArrayBuffer) => {
if (err) {
callback(err);
} else if (data) {
const glyphs = {};
for (const glyph of parseGlyphPBF(data)) {
glyphs[glyph.id] = glyph;
}
callback(null, glyphs);
}
});
}
|