ofx-data-extractor
Version:
A module written in TypeScript that provides a utility to extract data from an OFX file in Node.js and Browser
121 lines (89 loc) • 3.15 kB
Markdown
# [ofx-data-extractor](https://www.npmjs.com/package/ofx-data-extractor)
[](https://badge.fury.io/js/ofx-data-extractor)
[![MIT License][license-image]][license-url]
[](https://codecov.io/gh/Fabiopf02/ofx-data-extractor)
[](https://github.com/Fabiopf02/ofx-data-extractor/actions/workflows/release.yml)
`ofx-data-extractor` is a TypeScript library for parsing, normalizing and validating OFX files in Node.js and browser environments.
## Table of Contents
- [Installation](#installation)
- [Quick Start](#quick-start)
- [Node.js](#nodejs)
- [Browser (`fromBlob` is async)](#browser-fromblob-is-async)
- [Main Public API (`Ofx`)](#main-public-api-ofx)
- [Configuration (Extract)](#configuration-extract)
- [Developer Documentation](#developer-documentation)
- [Examples](#examples)
- [License](#license)
## Installation
```bash
npm install ofx-data-extractor
```
```bash
yarn add ofx-data-extractor
```
## Quick Start
```ts
import { Ofx } from 'ofx-data-extractor'
const data = 'OFXHEADER:100\nDATA:OFXSGML\nVERSION:102\n...'
const ofx = new Ofx(data)
const raw = ofx.toJson()
const summary = ofx.getTransactionsSummary()
const normalized = ofx.toNormalized()
const validation = ofx.validate()
```
## Node.js
```ts
import fs from 'fs'
import { Ofx } from 'ofx-data-extractor'
const file = fs.readFileSync('/path/to/file.ofx')
const ofx = Ofx.fromBuffer(file)
console.log(ofx.getTransactionsSummary())
```
## Browser (`fromBlob` is async)
```ts
import { Ofx } from 'ofx-data-extractor'
async function handleFile(event: Event) {
const input = event.target as HTMLInputElement
const file = input.files?.[0]
if (!file) return
const ofx = await Ofx.fromBlob(file)
console.log(ofx.toJson())
}
```
## Main Public API (`Ofx`)
- `new Ofx(data: string, config?: ExtractorConfig)`
- `Ofx.fromBuffer(buffer: Buffer)`
- `Ofx.fromBlob(blob: Blob)`
- `config(options)`
- `getType()`
- `getHeaders()`
- `getBankTransferList()`
- `getCreditCardTransferList()`
- `getTransactionsSummary()`
- `getContent()`
- `toJson()`
- `toNormalized(options?)`
- `validate()`
- `getWarnings()`
## Configuration (Extract)
- `nativeTypes?: boolean`
- `fitId?: 'normal' | 'separated'`
- `formatDate?: string`
- `parserMode?: 'strict' | 'lenient'`
Parser mode:
- `strict` (default): parsing errors throw.
- `lenient`: parsing errors fallback and are collected via `getWarnings()`.
## Developer Documentation
- [API Reference](docs/api.md)
- [Normalization Guide](docs/normalization.md)
- [Validation Guide](docs/validation.md)
- [Recipes](docs/recipes.md)
- [Migration Guide](docs/migration.md)
## Examples
- [Node basic](examples/node-basic.ts)
- [Browser basic](examples/browser-basic.ts)
- [Normalize + validate](examples/normalize-and-validate.ts)
## License
MIT
[license-image]: https://img.shields.io/badge/license-MIT-blue.svg?style=flat
[license-url]: LICENSE