dyomedea/src/components/map/uris.ts

27 lines
685 B
TypeScript

import { route } from '../../lib/docuri';
/**
* A [docuri](https://github.com/jo/docuri) route for {@link components/map/types!TileKeyObject}
*
* TODO: update docuri (or write a wrapper) to support datatyping (and formats).
*/
export const tileUri = (rte: any) => {
const r = route('tile/:provider/:zoomLevel(/:x/:y)')(rte);
if (typeof r === 'object') {
return r.x === undefined
? {
provider: r.provider,
zoomLevel: parseInt(r.zoomLevel),
}
: {
provider: r.provider,
zoomLevel: parseInt(r.zoomLevel),
x: parseInt(r.x),
y: parseInt(r.y),
};
}
return r;
};
export default tileUri;