maplibre-gl
Version:
BSD licensed community fork of mapbox-gl, a WebGL interactive maps library
43 lines (34 loc) • 1.09 kB
text/typescript
import type {RequestParameters} from './ajax';
/**
* A type of MapLibre resource.
*/
export const enum ResourceType {
Glyphs = 'Glyphs',
Image = 'Image',
Source = 'Source',
SpriteImage = 'SpriteImage',
SpriteJSON = 'SpriteJSON',
Style = 'Style',
Tile = 'Tile',
Unknown = 'Unknown',
}
/**
* This function is used to tranform a request.
* It is used just before executing the relevant request.
*/
export type RequestTransformFunction = (url: string, resourceType?: ResourceType) => RequestParameters | undefined;
export class RequestManager {
_transformRequestFn: RequestTransformFunction;
constructor(transformRequestFn?: RequestTransformFunction) {
this._transformRequestFn = transformRequestFn;
}
transformRequest(url: string, type: ResourceType) {
if (this._transformRequestFn) {
return this._transformRequestFn(url, type) || {url};
}
return {url};
}
setTransformRequest(transformRequest: RequestTransformFunction) {
this._transformRequestFn = transformRequest;
}
}