mharj/creditor-reference

View on GitHub
src/finnish.ts

Summary

Maintainability
A
0 mins
Test Coverage
const multi = [7, 3, 1];

function pad(value: number): number {
    return Math.ceil(value / 10) * 10 - value;
}

export function buildFiReferenceCheckSum(data: number[]): number {
    if (data.length > 19) {
        throw new Error('data too large');
    }
    return pad(
        data
            .reverse()
            .map((value, idx) => multi[idx % 3] * value)
            .reduce((prev, curr) => prev + curr)
    );
}