← back to AbramsOS
lib/plaid-client.js
27 lines
const { Configuration, PlaidApi, PlaidEnvironments, Products, CountryCode } = require('plaid');
function client() {
const env = process.env.PLAID_ENV || 'sandbox';
const clientId = process.env.PLAID_CLIENT_ID;
const secret = process.env.PLAID_SECRET;
if (!clientId || !secret) {
throw new Error('Plaid not configured. Set PLAID_CLIENT_ID + PLAID_SECRET (and optional PLAID_ENV) via /secrets. Sandbox creds are free at https://dashboard.plaid.com.');
}
const cfg = new Configuration({
basePath: PlaidEnvironments[env],
baseOptions: {
headers: { 'PLAID-CLIENT-ID': clientId, 'PLAID-SECRET': secret },
},
});
return new PlaidApi(cfg);
}
const PRODUCTS = [Products.Transactions];
const COUNTRIES = [CountryCode.Us];
function isConfigured() {
return Boolean(process.env.PLAID_CLIENT_ID && process.env.PLAID_SECRET);
}
module.exports = { client, isConfigured, PRODUCTS, COUNTRIES };