UNPKG

ibantools-germany

Version:

IBAN Validator and Generator for German Bank Accounts

28 lines (27 loc) 993 B
"use strict"; /** * ibantools-germany * Copyright (c) 2022-2026 Markus Baumer <markus@baumer.dev> * SPDX-License-Identifier: MIT OR MPL-2.0 */ Object.defineProperty(exports, "__esModule", { value: true }); const helper_1 = require("../helper"); exports.default = (number) => { const digits = (0, helper_1.getDigits)(number); const givenCheckDigit = digits.pop(); // Check digit is last digit const transformMatrix = [ [0, 1, 5, 9, 3, 7, 4, 8, 2, 6], [0, 1, 7, 6, 9, 8, 3, 2, 5, 4], [0, 1, 8, 4, 6, 2, 9, 5, 7, 3], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], ]; digits.reverse(); const transformedDigits = digits.map((digit, index) => transformMatrix[index % 4][digit]); const sum = (0, helper_1.calculateSum)(transformedDigits); const sumUnit = (0, helper_1.getUnitFromNumber)(sum); const calculatedCheckDigit = 10 - sumUnit; if (givenCheckDigit === calculatedCheckDigit) { return "VALID"; } return "INVALID"; };