generated from ztimson/template
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c5207261fa | |||
| c38f149733 | |||
| f5eaf7f764 |
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ztimson/zim-utils",
|
"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",
|
"description": "Native, dependency-light ZIM archive reader/searcher and Kiwix catalog downloader for Node.js",
|
||||||
"author": "Zak Timson",
|
"author": "Zak Timson",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.zakscode.com/ztimson/zim-utils"
|
"url": "https://git.zakscode.com/ztimson/zim-utils"
|
||||||
},
|
},
|
||||||
"main": "index.js",
|
"main": "src/index.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ztimson/utils": "^0.30.7",
|
"@ztimson/utils": "^0.30.7",
|
||||||
"lzma1": "^0.3.0",
|
"lzma1": "^0.3.0",
|
||||||
|
|||||||
@@ -73,8 +73,10 @@ export class ZimManager {
|
|||||||
/** Resolves a file path or catalog `name` to a local file path. */
|
/** Resolves a file path or catalog `name` to a local file path. */
|
||||||
async #resolveFile(fileOrName) {
|
async #resolveFile(fileOrName) {
|
||||||
if (fs.existsSync(fileOrName)) return 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 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}`);
|
if (!match) throw new Error(`ZIM not found locally: ${fileOrName}`);
|
||||||
return match.file;
|
return match.file;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -206,7 +206,7 @@ export class ZimReader {
|
|||||||
let dirent = await this.#readDirent(await this.#ptr64(this.#header.urlPtrPos, this.#header.mainPage));
|
let dirent = await this.#readDirent(await this.#ptr64(this.#header.urlPtrPos, this.#header.mainPage));
|
||||||
dirent = await this.#resolveRedirect(dirent);
|
dirent = await this.#resolveRedirect(dirent);
|
||||||
const data = await this.#getBlob(dirent.cluster, dirent.blob);
|
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