diff --git a/js/v3.test.ts b/js/v3.test.ts index f7217ad..b981915 100644 --- a/js/v3.test.ts +++ b/js/v3.test.ts @@ -14,7 +14,7 @@ import { Cache, BufferPosition, Source, - SourceData, + RangeResponse, VersionMismatch, PMTiles, } from "./v3"; @@ -135,7 +135,7 @@ class TestNodeFileSource implements Source { async getBytes( offset: number, length: number - ): Promise { + ): Promise { const slice = new Uint8Array(this.buffer.slice(offset, offset + length)) .buffer; return {data:slice, etag:this.etag}; diff --git a/js/v3.ts b/js/v3.ts index 5283f3c..c4d2c40 100644 --- a/js/v3.ts +++ b/js/v3.ts @@ -213,7 +213,7 @@ export function findTile(entries: Entry[], tileId: number): Entry | null { return null; } -export interface SourceData { +export interface RangeResponse { data: ArrayBuffer; etag?: string; expires?: string; @@ -227,7 +227,7 @@ export interface Source { offset: number, length: number, signal?: AbortSignal - ) => Promise; + ) => Promise; getKey: () => string; } @@ -243,7 +243,7 @@ export class FileAPISource implements Source { return this.file.name; } - async getBytes(offset: number, length: number): Promise { + async getBytes(offset: number, length: number): Promise { const blob = this.file.slice(offset, offset + length); const a = await blob.arrayBuffer(); return { data: a }; @@ -265,7 +265,7 @@ export class FetchSource implements Source { offset: number, length: number, signal?: AbortSignal - ): Promise { + ): Promise { let controller; if (!signal) { // TODO check this works or assert 206 @@ -392,6 +392,7 @@ export class Cache { async getHeader(source: Source): Promise
{ const cacheKey = source.getKey(); if (this.cache.has(cacheKey)) { + this.cache.get(cacheKey)!.lastUsed = this.counter++; const data = await this.cache.get(cacheKey)!.data; return data as Header; } @@ -545,7 +546,7 @@ export class PMTiles { x: number, y: number, signal?: AbortSignal - ): Promise { + ): Promise { const tile_id = zxyToTileId(z, x, y); const header = await this.cache.getHeader(this.source); @@ -594,7 +595,7 @@ export class PMTiles { x: number, y: number, signal?: AbortSignal - ): Promise { + ): Promise { try { return await this.getZxyAttempt(z, x, y, signal); } catch (e) {