https://github.com/trescube/yadbf
The world's greatest streaming-and-error-throwing dBase III parser
https://github.com/trescube/yadbf
Last synced: about 2 months ago
JSON representation
The world's greatest streaming-and-error-throwing dBase III parser
- Host: GitHub
- URL: https://github.com/trescube/yadbf
- Owner: trescube
- License: mit
- Created: 2017-12-11T21:06:16.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-03-28T03:32:16.000Z (about 4 years ago)
- Last Synced: 2025-03-27T07:11:30.844Z (2 months ago)
- Language: JavaScript
- Homepage:
- Size: 301 KB
- Stars: 4
- Watchers: 1
- Forks: 7
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# YADBF (Yet Another DBF parser)
[](https://greenkeeper.io/)
[](https://travis-ci.org/trescube/yadbf)
[](https://coveralls.io/github/trescube/yadbf?branch=master)
[](https://david-dm.org/trescube/yadbf)This project is a streaming DBF parser that throws errors for the slightest transgressions.
It was originally written to support .dbf files found in Esri shapefiles for the [OpenAddresses submit-service](https://github.com/openaddresses/submit-service) but it may work for your .dbf file.
## Requirements
Node.js 8 or higher is required.
## Installation
Using yarn:
```bash
$ yarn add --save yadbf
```In Node.js:
```javascript
const YADBF = require('yadbf');
const fs = require('fs');fs.createReadStream('file.dbf')
.pipe(new YADBF())
.on('header', header => {
console.log(`header: ${JSON.stringify(header, null, 2)}`);
})
.on('data', record => {
console.log(`record: ${JSON.stringify(record, null, 2)}`);
})
.on('end', () => {
console.log('Done!');
})
.on('error', err => {
console.error(`an error was thrown: ${err}`);
});
```## Options
The following options are available and can be passed to the constructor in a single object parameter:
| Name | Type | Description | Default |
| --- | --- | --- | --- |
| `deleted` | boolean | records flagged as deleted should be returned, non-boolean value is treated as "not supplied" | `false` |
| `offset` | integer | number of records to process before emitting | `0` |
| `size` | integer | number of records to emit | `Infinity` |
| `encoding` | string | encoding supported by [iconv-lite](https://github.com/ashtuchkin/iconv-lite/wiki/Supported-Encodings) | `utf-8` |`offset` and `size` are implemented to follow pagination functionality. Errors are thrown if any option value type is not the supported type.
Using the pagination functionality destroys the stream after the records within the requested page have been pushed. For example, if `offset=20` and `size=10` are supplied in `options`, then YADBF will immediately stop processing after the 30th record.
### Notes
Deleted records do not affect operation of `offset` and `size` options. That is, if the entire .dbf contains 2 records, deleted and not deleted, respectively, then `offset` and `size` both set to `1` would output the second record.