@accounter/server
Version:
Accounter GraphQL server
45 lines (44 loc) • 1.32 kB
TypeScript
/**
* BKMVDATA.TXT file parsing utilities
*/
import { parseA100, parseB100, parseB110, parseC100, parseD110, parseD120, parseM100, parseZ900 } from '../generator/records/index.js';
export interface ParseError {
lineNumber: number;
recordType: string;
message: string;
line: string;
}
export interface UnknownRecord {
lineNumber: number;
recordType: string;
line: string;
}
export interface ParsedDataRecords {
a100: ReturnType<typeof parseA100> | null;
b100: ReturnType<typeof parseB100>[];
b110: ReturnType<typeof parseB110>[];
c100: ReturnType<typeof parseC100>[];
d110: ReturnType<typeof parseD110>[];
d120: ReturnType<typeof parseD120>[];
m100: ReturnType<typeof parseM100>[];
z900: ReturnType<typeof parseZ900> | null;
}
export interface ParseDataFileResult {
records: ParsedDataRecords;
summary: {
totalLines: number;
parsedRecords: number;
failedRecords: number;
unknownRecords: number;
perType: Record<string, number>;
};
errors: ParseError[];
unknownRecords: UnknownRecord[];
}
/**
* Parses BKMVDATA.TXT file content
*
* @param content - Raw BKMVDATA.TXT file content
* @returns Parsed data structure
*/
export declare function parseDataFile(content: string): ParseDataFileResult;