UNPKG

ynab-api-importer

Version:

Import bank transactions into YNAB

51 lines 4.89 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.sync = void 0; const F = __importStar(require("fp-ts/function")); const O = __importStar(require("fp-ts/Option")); const Rx = __importStar(require("rxjs")); const RxOp = __importStar(require("rxjs/operators")); const logger_1 = __importDefault(require("./logger")); const sync = (ynab) => (ynabBudgetID) => (banks) => (accounts) => Rx.from(accounts).pipe(RxOp.flatMap(account => F.pipe(O.fromNullable(banks.get(account.bank)), O.fold(() => { logger_1.default.info("Could not find bank:", account.bank); return Rx.EMPTY; }, ([fetch, _cleanup]) => Rx.of({ account, fetch })))), RxOp.tap(({ account: { id, bank } }) => logger_1.default.info(`Exporting ${bank} - ${id}`)), RxOp.flatMap(({ account: { bank, id, ynabID }, fetch }) => fetch(id, ynabID).then(r => { logger_1.default.info(`Exported ${bank} - ${id} (${r.length})`); return r; })), RxOp.reduce((acc, t) => acc.concat(t), []), RxOp.filter(t => !!t.length), RxOp.flatMap(transactions => ynab.transactions .createTransactions(ynabBudgetID, { transactions, }) .then(r => { logger_1.default.debug(r); }, err => { logger_1.default.info("ERROR", err); })), RxOp.tap(() => logger_1.default.info("Transactions imported"))); exports.sync = sync; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYWNjb3VudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBb0M7QUFDcEMsZ0RBQWtDO0FBQ2xDLHlDQUEyQjtBQUMzQixxREFBdUM7QUFHdkMsc0RBQThCO0FBWXZCLE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQW9CLEVBQUUsRUFBRSxDQUFDLENBQzNELEtBQWUsRUFDZixFQUFFLENBQUMsQ0FBQyxRQUFvQixFQUFFLEVBQUUsQ0FDNUIsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDckIsQ0FBQyxDQUFDLElBQUksQ0FDSixDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ3ZDLENBQUMsQ0FBQyxJQUFJLENBQ0osR0FBRyxFQUFFO0lBQ0gsZ0JBQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xELE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQztBQUNsQixDQUFDLEVBQ0QsQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUNqRCxDQUNGLENBQ0YsRUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQ3JDLGdCQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQ3pDLEVBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQ3hELEtBQUssQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO0lBQ3pCLGdCQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUN0RCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUMsQ0FBQyxDQUNILEVBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBdUIsQ0FBQyxFQUMvRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFFNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUMxQixJQUFJLENBQUMsWUFBWTtLQUNkLGtCQUFrQixDQUFDLFlBQVksRUFBRTtJQUNoQyxZQUFZO0NBQ2IsQ0FBQztLQUNELElBQUksQ0FDSCxDQUFDLENBQUMsRUFBRTtJQUNGLGdCQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUMsRUFDRCxHQUFHLENBQUMsRUFBRTtJQUNKLGdCQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQ0YsQ0FDSixFQUVELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUNyRCxDQUFDO0FBL0NTLFFBQUEsSUFBSSxRQStDYiJ9