@friedrich.fschr/epub-parser
Version:
An epub parser which can extract chapter contents from an epub file
148 lines (125 loc) • 2.87 kB
TypeScript
// Type definitions for @friedrich.fschr/epub-parser
export interface EpubFile {
loadChapter(id: string): Promise<EpubProcessedChapter>;
getFileInfo(): EpubFileInfo;
getMetadata(): EpubMetadata;
getManifest(): Record<string, ManifestItem>;
getSpine(): EpubSpine;
getGuide(): EpubGuide;
getCollection(): EpubCollection;
getToc(): EpubToc;
getPageList(): PageList;
getNavList(): NavList;
resolveHref(href: string): EpubResolvedHref | undefined;
destroy(): void;
}
export interface EpubProcessedChapter {
html: string;
css: EpubCssPart[];
}
export interface EpubCssPart {
id: string;
href: string;
}
export interface EpubFileInfo {
fileName: string;
mimetype: string;
}
export interface EpubMetadata {
title: string;
creator: string;
subject: string;
description: string;
publisher: string;
contributor: string;
date: string;
type: string;
format: string;
identifier: string;
source: string;
language: string;
relation: string;
coverage: string;
rights: string;
meta: Record<string, string>[];
}
export interface ManifestItem {
id: string;
href: string;
mediaType: string;
}
export interface EpubGuideReference {
type: string;
title: string;
href: string;
}
export type EpubGuide = EpubGuideReference[];
export interface EpubSpineItem {
id: string;
linear: boolean;
}
export type EpubSpine = EpubSpineItem[];
export interface EpubCollection {
role: string;
metadata?: Record<string, string>;
links: { href: string; title?: string }[];
collections?: EpubCollection[];
}
export interface NavPoint {
id: string;
playOrder: string;
navLabel: string;
content: {
id: string;
src: string;
};
children?: NavPoint[];
}
export type EpubToc = NavPoint[];
export interface PageTarget {
id: string;
value: string;
type: string;
playOrder: string;
content: {
id: string;
src: string;
};
}
export interface PageList {
pageTarget: PageTarget[];
}
export interface NavTarget {
id: string;
value: string;
playOrder: string;
content: {
id: string;
src: string;
};
}
export interface NavList {
navLabel: string;
navTarget: NavTarget[];
}
export interface EpubResolvedHref {
id: string;
selector: string;
}
export function initEpubFile(
epubPath: File,
resourceSaveDir?: string
): Promise<EpubFile>;
export function createFileFromData(
name: string,
data: Uint8Array,
type?: string
): File;
export function loadEpubFromFS(
filePath: string,
readFunction: (path: string) => Promise<Uint8Array>
): Promise<File>;
export function getResourceData(
url: string
): { data: Uint8Array; type: string } | undefined;
export const EPUB_HREF_PREFIX: string;