@firela/parser-core
v0.1.1
Published
Pure TypeScript parser core infrastructure for financial file formats
Maintainers
Readme
@firela/parser-core
Core parser interfaces and utilities for financial file formats.
Installation
npm install @firela/parser-corePeer Dependencies
This package requires the following peer dependencies:
npm install chrono-node csv-parse iconv-lite jschardetFeatures
- Parser Interface - Generic
Parser<T>interface withidentify()andparse()methods - CSV Reader - Encoding-aware CSV reading with automatic detection (GBK, UTF-8, etc.)
- Date Parsing - Chinese, ISO, and natural language date parsing via chrono-node
- Amount Parsing - Chinese currency formats and multi-currency support
- Encoding - Automatic encoding detection and conversion
Usage
import { Parser, RawTransaction, parseDate, parseChineseAmount, readCsv } from '@firela/parser-core';
// Parse a date string
const date = parseDate('2024年1月15日');
// => Date object
// Parse a Chinese amount
const amount = parseChineseAmount('¥1,234.56');
// => { amount: Decimal(1234.56), currency: 'CNY' }
// Read CSV with encoding detection
const rows = await readCsv(buffer);
// => string[][]API Reference
Types
Parser<T>- Generic parser interfaceRawTransaction- Parsed transaction without business logicParseResult<T>- Result type with success/error handlingAlipayCustomFields,WeChatCustomFields,BankCustomFields- Parser-specific fields
Utilities
readCsv(buffer: Buffer): Promise<string[][]>- Read CSV with encoding detectionparseDate(input: string): Date | null- Parse various date formatsparseChineseAmount(input: string): ParsedAmount | null- Parse Chinese currency amountsconvertEncoding(buffer: Buffer): Buffer- Convert encoding to UTF-8
License
MIT
