Files
bigcapital/packages/server/src/services/FinancialStatements/ProfitLossSheet/ProfitLossSheetBase.ts
2023-02-03 11:57:50 +02:00

31 lines
700 B
TypeScript

import * as R from 'ramda';
import { TOTAL_NODE_TYPES } from './constants';
export const ProfitLossSheetBase = (Base) =>
class extends Base {
/**
*
* @param type
* @param node
* @returns
*/
public isNodeType = R.curry((type: string, node) => {
return node.nodeType === type;
});
protected isNodeTypeIn = R.curry((types: string[], node) => {
return types.indexOf(node.nodeType) !== -1;
});
/**
*
*/
protected findNodeById = R.curry((id, nodes) => {
return this.findNodeDeep(nodes, (node) => node.id === id);
});
isNodeTotal = (node) => {
return this.isNodeTypeIn(TOTAL_NODE_TYPES, node);
}
};