diff options
Diffstat (limited to 'lib/epub.js/types/packaging.d.ts')
-rw-r--r-- | lib/epub.js/types/packaging.d.ts | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/lib/epub.js/types/packaging.d.ts b/lib/epub.js/types/packaging.d.ts new file mode 100644 index 0000000..7151956 --- /dev/null +++ b/lib/epub.js/types/packaging.d.ts @@ -0,0 +1,78 @@ +import { SpineItem } from "./section"; + +export interface PackagingObject { + metadata: PackagingMetadataObject, + spine: Array<SpineItem>, + manifest: PackagingManifestObject, + navPath: string, + ncxPath: string, + coverPath: string, + spineNodeIndex: number +} + +export interface PackagingMetadataObject { + title: string, + creator: string, + description: string, + pubdate: string, + publisher: string, + identifier: string, + language: string, + rights: string, + modified_date: string, + layout: string, + orientation: string, + flow: string, + viewport: string, + spread: string +} + +export interface PackagingSpineItem { + idref: string, + properties: Array<string>, + index: number +} + +export interface PackagingManifestItem { + href: string, + type: string, + properties: Array<string> +} + +export interface PackagingManifestObject { + [key: string]: PackagingManifestItem +} + +export default class Packaging { + constructor(packageDocument: XMLDocument); + + manifest: PackagingManifestObject; + navPath: string; + ncxPath: string; + coverPath: string; + spineNodeIndex: number; + spine: Array<PackagingSpineItem>; + metadata: PackagingMetadataObject; + + parse(packageDocument: XMLDocument): PackagingObject; + + load(json: string): PackagingObject; + + destroy(): void; + + private parseMetadata(xml: Node): PackagingMetadataObject; + + private parseManifest(xml: Node): PackagingManifestObject; + + private parseSpine(xml: Node, manifest: PackagingManifestObject): Array<PackagingSpineItem>; + + private findNavPath(manifestNode: Node): string | false; + + private findNcxPath(manifestNode: Node, spineNode: Node): string | false; + + private findCoverPath(packageXml: Node): string; + + private getElementText(xml: Node, tag: string): string + + private getPropertyText(xml: Node, property: string): string +} |