generated from ztimson/template
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c5207261fa | |||
| c38f149733 | |||
| f5eaf7f764 |
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ztimson/zim-utils",
|
||||
"version": "0.1.0",
|
||||
"version": "0.1.3",
|
||||
"description": "Native, dependency-light ZIM archive reader/searcher and Kiwix catalog downloader for Node.js",
|
||||
"author": "Zak Timson",
|
||||
"license": "MIT",
|
||||
@@ -10,7 +10,7 @@
|
||||
"type": "git",
|
||||
"url": "https://git.zakscode.com/ztimson/zim-utils"
|
||||
},
|
||||
"main": "index.js",
|
||||
"main": "src/index.js",
|
||||
"dependencies": {
|
||||
"@ztimson/utils": "^0.30.7",
|
||||
"lzma1": "^0.3.0",
|
||||
|
||||
@@ -73,8 +73,10 @@ export class ZimManager {
|
||||
/** Resolves a file path or catalog `name` to a local file path. */
|
||||
async #resolveFile(fileOrName) {
|
||||
if (fs.existsSync(fileOrName)) return fileOrName;
|
||||
const joined = path.join(this.#dir, fileOrName);
|
||||
if (fs.existsSync(joined)) return joined;
|
||||
const local = await this.list();
|
||||
const match = local.find(l => l.meta?.name === fileOrName);
|
||||
const match = local.find(l => l.meta?.name === fileOrName || path.basename(l.file) === fileOrName);
|
||||
if (!match) throw new Error(`ZIM not found locally: ${fileOrName}`);
|
||||
return match.file;
|
||||
}
|
||||
|
||||
@@ -206,7 +206,7 @@ export class ZimReader {
|
||||
let dirent = await this.#readDirent(await this.#ptr64(this.#header.urlPtrPos, this.#header.mainPage));
|
||||
dirent = await this.#resolveRedirect(dirent);
|
||||
const data = await this.#getBlob(dirent.cluster, dirent.blob);
|
||||
return {mimetype: this.#mimeTypes[dirent.mimetype] || 'application/octet-stream', data, url: dirent.url};
|
||||
return {mimetype: this.#mimeTypes[dirent.mimetype] || 'application/octet-stream', data, url: dirent.url, namespace: dirent.namespace};
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user