r2-streamer-js
Version:
Readium 2 'streamer' for NodeJS (TypeScript)
63 lines (62 loc) • 2.48 kB
TypeScript
import * as express from "express";
import { OPDSFeed } from "r2-opds-js/dist/es5/src/opds/opds2/opds2";
import { Publication } from "r2-shared-js/dist/es5/src/models/publication";
import { CertificateData } from "../utils/self-signed";
import { IHTTPHeaderNameValue } from "./server-secure";
export interface ServerData extends CertificateData {
urlScheme: string;
urlHost: string;
urlPort: number;
}
export interface IServerOptions {
disableReaders?: boolean;
disableDecryption?: boolean;
disableRemotePubUrl?: boolean;
disableOPDS?: boolean;
enableSignedExpiry?: boolean;
maxPrefetchLinks?: number;
}
export declare const MAX_PREFETCH_LINKS = 10;
export declare class Server {
readonly disableReaders: boolean;
readonly disableDecryption: boolean;
readonly disableRemotePubUrl: boolean;
readonly disableOPDS: boolean;
readonly enableSignedExpiry: boolean;
readonly maxPrefetchLinks: number;
readonly lcpBeginToken = "*-";
readonly lcpEndToken = "-*";
private readonly publications;
private publicationsOPDSfeed;
private publicationsOPDSfeedNeedsUpdate;
private readonly pathPublicationMap;
private creatingPublicationsOPDS;
private readonly opdsJsonFilePath;
private readonly expressApp;
private httpServer;
private httpsServer;
private serverData;
constructor(options?: IServerOptions);
preventRobots(): void;
expressUse(pathf: string, func: express.Handler): void;
expressGet(paths: string[], func: express.Handler): void;
isStarted(): boolean;
isSecured(): boolean;
getSecureHTTPHeader(url: string): IHTTPHeaderNameValue | undefined;
start(port: number, secure: boolean): Promise<ServerData>;
stop(): void;
serverInfo(): ServerData | undefined;
serverUrl(): string | undefined;
setResponseCacheHeaders(res: express.Response, enableCaching: boolean): void;
setResponseCORS(res: express.Response): void;
addPublications(pubs: string[]): string[];
removePublications(pubs: string[]): string[];
getPublications(): string[];
loadOrGetCachedPublication(filePath: string): Promise<Publication>;
isPublicationCached(filePath: string): boolean;
cachedPublication(filePath: string): Publication | undefined;
cachePublication(filePath: string, pub: Publication): void;
uncachePublication(filePath: string): void;
uncachePublications(): void;
publicationsOPDS(): OPDSFeed | undefined;
}