jmdict-streaming-parser
Version:
Streaming parser for JMdict and related files.
56 lines • 1.55 kB
TypeScript
/// <reference types="node" />
import { Duplex, DuplexOptions } from "stream";
import { SAXStream } from "sax";
export declare class JmdictTransform extends Duplex implements AsyncIterable<TransformOutputData> {
parser: SAXStream;
entities: Map<string, string>;
private initialChunk;
groupedEntities: ReadonlyMap<string, readonly {
name: string;
value: string;
}[]>;
private hasPassedOpeningTag;
inputStack: InputStartXml[];
outputStack: OutputNode[];
constructor(opts?: DuplexOptions);
_write(chunk: any, encoding: string, callback: (error?: Error | null) => void): void;
_read(): void;
[Symbol.asyncIterator](): AsyncIterableIterator<TransformOutputData>;
}
export interface EntityData {
type: "entity";
data: {
name: string;
value: string;
};
}
export interface MdateData {
type: "mdate";
data: string;
}
export interface NodeData {
type: "node";
data: OutputNode;
}
export interface CommentData {
type: "comment";
data: string;
}
export interface GroupedEntitiesData {
type: "groupedEntities";
data: JmdictTransform["groupedEntities"];
}
export declare type TransformOutputData = EntityData | MdateData | NodeData | CommentData | GroupedEntitiesData;
interface InputStartXml {
type: "start";
name: string;
attrs: AttributeMap;
}
interface AttributeMap {
[key: string]: string;
}
export interface OutputNode {
[key: string]: (string | OutputNode)[] | string;
}
export {};
//# sourceMappingURL=index.d.ts.map