Skip to content
This repository was archived by the owner on Feb 10, 2025. It is now read-only.

Commit abeeb05

Browse files
authored
dynamically load GoCardless handlers (#557)
* dynamically load GoCardless handlers * note
1 parent ca480a8 commit abeeb05

File tree

2 files changed

+30
-78
lines changed

2 files changed

+30
-78
lines changed

src/app-gocardless/bank-factory.js

Lines changed: 24 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,29 @@
1-
import AbancaCaglesmm from './banks/abanca_caglesmm.js';
2-
import AbnamroAbnanl2a from './banks/abnamro_abnanl2a.js';
3-
import AmericanExpressAesudef1 from './banks/american_express_aesudef1.js';
4-
import BancsabadellBsabesbb from './banks/bancsabadell_bsabesbbb.js';
5-
import BankinterBkbkesmm from './banks/bankinter_bkbkesmm.js';
6-
import BankOfIrelandB365Bofiie2d from './banks/bank_of_ireland_b365_bofiie2d.js';
7-
import BelfiusGkccbebb from './banks/belfius_gkccbebb.js';
8-
import BerlinerSparkasseBeladebexxx from './banks/berliner_sparkasse_beladebexxx.js';
9-
import BnpBeGebabebb from './banks/bnp_be_gebabebb.js';
10-
import CbcCregbebb from './banks/cbc_cregbebb.js';
11-
import CommerzbankCobadeff from './banks/commerzbank_cobadeff.js';
12-
import DanskebankDabno22 from './banks/danskebank_dabno22.js';
13-
import DirektHeladef1822 from './banks/direkt_heladef1822.js';
14-
import EasybankBawaatww from './banks/easybank_bawaatww.js';
15-
import EntercardSwednokk from './banks/entercard_swednokk.js';
16-
import FortuneoFtnofrp1xxx from './banks/fortuneo_ftnofrp1xxx.js';
17-
import HypeHyeeit22 from './banks/hype_hyeeit22.js';
18-
import IngIngbrobu from './banks/ing_ingbrobu.js';
19-
import IngIngddeff from './banks/ing_ingddeff.js';
20-
import IngPlIngbplpw from './banks/ing_pl_ingbplpw.js';
1+
import fs from 'node:fs';
2+
import path from 'node:path';
3+
import { fileURLToPath } from 'node:url';
4+
215
import IntegrationBank from './banks/integration-bank.js';
22-
import IsyBankItbbitmm from './banks/isybank_itbbitmm.js';
23-
import KbcKredbebb from './banks/kbc_kredbebb.js';
24-
import LhvLhvbee22 from './banks/lhv-lhvbee22.js';
25-
import MbankRetailBrexplpw from './banks/mbank_retail_brexplpw.js';
26-
import NationwideNaiagb21 from './banks/nationwide_naiagb21.js';
27-
import NbgEthngraaxxx from './banks/nbg_ethngraaxxx.js';
28-
import NorwegianXxNorwnok1 from './banks/norwegian_xx_norwnok1.js';
29-
import RevolutRevolt21 from './banks/revolut_revolt21.js';
30-
import SebKortBankAb from './banks/seb_kort_bank_ab.js';
31-
import SebPrivat from './banks/seb_privat.js';
32-
import SandboxfinanceSfin0000 from './banks/sandboxfinance_sfin0000.js';
33-
import SparnordSpnodk22 from './banks/sparnord_spnodk22.js';
34-
import SpkKarlsruheKarsde66 from './banks/spk_karlsruhe_karsde66.js';
35-
import SpkMarburgBiedenkopfHeladef1mar from './banks/spk_marburg_biedenkopf_heladef1mar.js';
36-
import SpkWormsAlzeyRiedMalade51wor from './banks/spk_worms_alzey_ried_malade51wor.js';
37-
import SskDusseldorfDussdeddxxx from './banks/ssk_dusseldorf_dussdeddxxx.js';
38-
import SwedbankHabalv22 from './banks/swedbank_habalv22.js';
39-
import VirginNrnbgb22 from './banks/virgin_nrnbgb22.js';
406

41-
export const banks = [
42-
AbancaCaglesmm,
43-
AbnamroAbnanl2a,
44-
AmericanExpressAesudef1,
45-
BancsabadellBsabesbb,
46-
BankinterBkbkesmm,
47-
BankOfIrelandB365Bofiie2d,
48-
BelfiusGkccbebb,
49-
BerlinerSparkasseBeladebexxx,
50-
BnpBeGebabebb,
51-
CbcCregbebb,
52-
CommerzbankCobadeff,
53-
DanskebankDabno22,
54-
DirektHeladef1822,
55-
EasybankBawaatww,
56-
EntercardSwednokk,
57-
FortuneoFtnofrp1xxx,
58-
HypeHyeeit22,
59-
IngIngbrobu,
60-
IngIngddeff,
61-
IngPlIngbplpw,
62-
IsyBankItbbitmm,
63-
KbcKredbebb,
64-
LhvLhvbee22,
65-
MbankRetailBrexplpw,
66-
NationwideNaiagb21,
67-
NbgEthngraaxxx,
68-
NorwegianXxNorwnok1,
69-
RevolutRevolt21,
70-
SebKortBankAb,
71-
SebPrivat,
72-
SandboxfinanceSfin0000,
73-
SparnordSpnodk22,
74-
SpkKarlsruheKarsde66,
75-
SpkMarburgBiedenkopfHeladef1mar,
76-
SpkWormsAlzeyRiedMalade51wor,
77-
SskDusseldorfDussdeddxxx,
78-
SwedbankHabalv22,
79-
VirginNrnbgb22,
80-
];
7+
const dirname = path.resolve(fileURLToPath(import.meta.url), '..');
8+
const banksDir = path.resolve(dirname, 'banks');
9+
10+
async function loadBanks() {
11+
const bankHandlers = fs
12+
.readdirSync(banksDir)
13+
.filter((filename) => filename.includes('_') && filename.endsWith('.js'));
14+
15+
const imports = await Promise.all(
16+
bankHandlers.map((file) => {
17+
return import(path.resolve(banksDir, file)).then(
18+
(handler) => handler.default,
19+
);
20+
}),
21+
);
22+
23+
return imports;
24+
}
25+
26+
export const banks = await loadBanks();
8127

8228
export default (institutionId) =>
8329
banks.find((b) => b.institutionIds.includes(institutionId)) ||

upcoming-release-notes/557.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
category: Maintenance
3+
authors: [matt-fidd]
4+
---
5+
6+
Dynamically load GoCardless handlers

0 commit comments

Comments
 (0)