jmdict-streaming-parser
Streaming parser for JMdict and related files.
Last updated a year ago by seangenabe .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install jmdict-streaming-parser 
SYNC missed versions from official npm registry.

jmdict-streaming-parser

Streaming parser for JMdict and related files.

API

import { createGunzip } from 'zlib'
import { createReadStream } from 'fs'
import { JmdictTransform } from 'jmdict'
import { pipeline } from 'stream'

// Stream style
pipeline(
  createReadStream("JMdict.gz"),
  createGunzip(),
  new JmdictTransform()
).on('data', data => { console.log(data) })

JmdictTransform

class JmdictTransform extends Duplex

A duplex stream that reads XML data and writes plain objects subject to the rules in § Object structure.

new JmdictTransform(opts?: DuplexOptions)

Object structure

Each result object is transformed from the source XML.

  • Text nodes are transformed into a string value keyed by $text.
    • If the parent XML element only has a text node as its child, the resulting object is collapsed into just a string with the text.
      • This exploits the fact that JMdict does not contain mixed text nodes and XML elements.
    • Text nodes whose sole content is a newline are ignored.
  • XML elements are transformed into an object and appended into an array value in its corresponding parent object where the key is the name of the XML element.
    • Attributes of the element are merged into the object.
  • Children of the root node are streamed as output.
  • Entities are represented by the entity name.

This deliberate generalization is to allow for possible parsing of files similar to the JMdict.

transform.entities

Maps entity names to entity values.

event: mdate

Emits the modification date of the file, if detected. String type.

event: entity

Emits an object containing keys name and value representing entities detected.

Current Tags

  • 3.0.0                                ...           latest (a year ago)

6 Versions

  • 3.0.0                                ...           a year ago
  • 2.0.1                                ...           a year ago
  • 1.0.3                                ...           a year ago
  • 1.0.2                                ...           a year ago
  • 1.0.1                                ...           a year ago
  • 1.0.0                                ...           a year ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 1
Dependencies (1)
Dev Dependencies (3)

Copyright 2014 - 2017 © taobao.org |