Skip to content

Commit

Permalink
feat(desktop): epub
Browse files Browse the repository at this point in the history
  • Loading branch information
aooiuu committed May 19, 2024
1 parent de7bb24 commit 5c27e1d
Show file tree
Hide file tree
Showing 27 changed files with 2,711 additions and 1,008 deletions.
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ node_modules
*.d.ts
/docs
/dist
packages/epub/
6 changes: 6 additions & 0 deletions main.code-workspace
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,12 @@
{
"path": "./packages/web"
},
{
"path": "./packages/server"
},
{
"path": "./packages/shared"
},
{
"path": "./docs"
}
Expand Down
3 changes: 3 additions & 0 deletions packages/epub/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# README

[epub ](https://github.com/julien-c/epub)
96 changes: 96 additions & 0 deletions packages/epub/epub.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
// Type definitions for epub
// Project: https://github.com/julien-c/epub
// Definitions by: Julien Chaumond <https://github.com/julien-c>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped

/// <reference types="node" />

/**
* new EPub(fname[, imageroot][, linkroot])
* - fname (String): filename for the ebook
* - imageroot (String): URL prefix for images
* - linkroot (String): URL prefix for links
*
* Creates an Event Emitter type object for parsing epub files
*
* var epub = new EPub("book.epub");
* epub.on("end", function () {
* console.log(epub.spine);
* });
* epub.on("error", function (error) { ... });
* epub.parse();
*
* Image and link URL format is:
*
* imageroot + img_id + img_zip_path
*
* So an image "logo.jpg" which resides in "OPT/" in the zip archive
* and is listed in the manifest with id "logo_img" will have the
* following url (providing that imageroot is "/images/"):
*
* /images/logo_img/OPT/logo.jpg
**/
import { EventEmitter } from 'events'

declare class EPub extends EventEmitter {
constructor(epubfile: string, imagewebroot?: string, chapterwebroot?: string)

metadata: EPub.Metadata
manifest: Object
spine: {
toc: { href: string; id: string }
contents: Array<EPub.TocElement>
}
flow: Array<EPub.TocElement>
toc: Array<EPub.TocElement>

parse(options?: EPub.parseOptions): void

getChapter(
chapterId: string,
callback: (error: Error, text: string) => void
): void

getChapterRaw(
chapterId: string,
callback: (error: Error, text: string) => void
): void

getImage(
id: string,
callback: (error: Error, data: Buffer, mimeType: string) => void
): void

getFile(
id: string,
callback: (error: Error, data: Buffer, mimeType: string) => void
): void

hasDRM(): boolean
}

export = EPub

declare namespace EPub {
export interface TocElement {
level: number
order: number
title: string
id: string
href: string
}

export interface Metadata {
creator: string
creatorFileAs: string
title: string
language: string
subject: string
date: string
description: string
}

export interface parseOptions {
xml2jsOptions: object
}
}
Loading

0 comments on commit 5c27e1d

Please sign in to comment.