Skip to content
forked from webschik/mt940-js

A mt940 isomorphic Javascript parser

License

Notifications You must be signed in to change notification settings

mrefik/mt940-js

This branch is 3 commits ahead of webschik/mt940-js:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

120cae6 · Aug 5, 2024

History

64 Commits
Feb 29, 2020
Jun 26, 2017
Aug 5, 2024
Aug 5, 2024
Aug 2, 2024
Feb 29, 2020
Feb 29, 2020
Feb 29, 2020
Nov 15, 2016
Oct 14, 2018
Feb 29, 2020
Aug 2, 2024
Feb 29, 2020
Feb 29, 2020
Feb 29, 2020

Repository files navigation

mt940-js

Build Status npm npm npm Coverage Status

An isomorphic Javascript library for working with MT940 format

Reading

API

read(buffer, options)

  • buffer {Buffer|ArrayBuffer} - income buffer that contains data of mt940 file.
  • options {ReadOptions}
  • returns Promise with list of Statement.
ReadOptions
  • getTransactionId(transaction, index) - a custom generator for transaction id. By default it's:
/**
* @description version 0.5.x
* @param {Transaction} transaction
* @param {number} index
* @returns {string}
*/
function getTransactionId (transaction, index) {
    return md5(`${ date }${ transaction.description }${ amount }${ transaction.currency }`);
}


/**
* @description version 0.6.x+
* @param {Transaction} transaction
* @param {number} index
* @returns {string}
*/
function getTransactionId (transaction, index) {
    return md5(JSON.strinfigy(transaction));
}

Node.js environment

import * as mt940 from 'mt940-js';
import fs from 'fs';

fs.readFile('/path/to/your/mt940/file', (error, buffer) => {
    mt940.read(buffer).then((statements) => {
        //
    });
});

Browser environment

Reading a local file

<input type="file" onchange="onFileSelected(this.files[0])"/>
import * as mt940 from 'mt940-js';

function onFileSelected (file) {
    const reader = new FileReader();
    
    reader.onload = () => {
        mt940.read(reader.result).then((statements) => {
            // List of the Statements
        });
    };
    reader.readAsArrayBuffer(file);
}

Reading a remote file

import * as mt940 from 'mt940-js';

fetch('/url/to/mt940/file')
    .then((response) => response.arrayBuffer())
    .then((buffer) => {
        mt940.read(buffer).then((statements) => {
            // List of the Statements
        });
    });

Writing

Coming soon

Supported MT940 tags

  • :20:
  • :21:
  • :25:
  • :28(C):
  • :60(M|F):
  • :61:
  • :62(M|F):
  • :64:
  • :65:
  • :86:

Related links

JS

mt940 specification

About

A mt940 isomorphic Javascript parser

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 51.8%
  • JavaScript 48.2%