UNPKG

ibantools-germany

Version:

IBAN Validator and Generator for German Bank Accounts

38 lines (37 loc) 1.25 kB
"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"); const method00_1 = require("./method00"); const tenDigits = (number) => { if (number.slice(3, 4) !== "9") { return "INVALID"; } return (0, method00_1.method00Core)(number.slice(3, 10), [2, 1, 2, 1, 2, 1, 2, 1, 2]); }; const nineDigitsVariation1 = (number) => { return (0, method00_1.method00Core)(number, [2, 1, 2, 1, 2, 1, 2, 1, 2]); }; const nineDigitsVariation2 = (number) => { return (0, method00_1.method00Core)(`${number.slice(1, 2)}${number.slice(4, 10)}`, [2, 1, 2, 1, 2, 1, 2, 1, 2]); }; exports.default = (number) => { if (number.length < 6) { return "INVALID"; } const paddedNumber = (0, helper_1.paddedAccountNumber)(number); if (paddedNumber.startsWith("04")) { return "NO_CHECK_DIGIT_CALCULATION"; } if (!paddedNumber.startsWith("0")) { return tenDigits(paddedNumber); } if (nineDigitsVariation1(paddedNumber) === "VALID") { return "VALID"; } return nineDigitsVariation2(paddedNumber); };