From 6018d3d547c3f7b9f7c965c201ad7ad023ece7b1 Mon Sep 17 00:00:00 2001 From: Brandon Liu Date: Wed, 1 Jun 2022 10:10:41 +0800 Subject: [PATCH] js: export more classes, root_entries list method --- js/index.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/js/index.ts b/js/index.ts index f575852..17a61a4 100644 --- a/js/index.ts +++ b/js/index.ts @@ -225,7 +225,7 @@ export interface Source { getKey: () => string; } -class FileSource implements Source { +export class FileSource implements Source { file: File; constructor(file: File) { @@ -243,7 +243,7 @@ class FileSource implements Source { } } -class FetchSource implements Source { +export class FetchSource implements Source { url: string; constructor(url: string) { @@ -279,7 +279,7 @@ interface CacheEntry { buffer: Promise; } -class LRUCacheSource implements Source { +export class LRUCacheSource implements Source { entries: Map; maxEntries: number; source: Source; @@ -327,7 +327,7 @@ class LRUCacheSource implements Source { export class PMTiles { source: Source; - constructor(source: any, maxLeaves = 64) { + constructor(source: string | Source, maxLeaves = 64) { if (typeof source === "string") { this.source = new LRUCacheSource(new FetchSource(source), maxLeaves); } else { @@ -356,6 +356,15 @@ export class PMTiles { }; } + async root_entries(): Promise { + const root = await this.fetchRoot(); + let entries = []; + for (var i = 0; i < root.header.root_entries; i++) { + entries.push(parseEntry(root.dir,i)); + } + return entries; + } + async metadata(): Promise { const root = await this.fetchRoot(); const dec = new TextDecoder("utf-8");