2023-03-28 11:53:29 +03:00

59 lines
2.0 KiB
TypeScript

import type { Process } from '../types';
import { useProcessContext } from './common';
import * as addProduct from '@/process/add-product';
import * as bonuses from '@/process/bonuses';
import * as calculate from '@/process/calculate';
import * as configurator from '@/process/configurator';
import * as createKP from '@/process/create-kp';
import * as fingap from '@/process/fingap';
import * as gibdd from '@/process/gibdd';
import * as insurance from '@/process/insurance';
import * as leadOpportunity from '@/process/lead-opportunity';
import * as leasingObject from '@/process/leasing-object';
import * as leasingWithoutKasko from '@/process/leasing-without-kasko';
import * as loadKP from '@/process/load-kp';
import * as payments from '@/process/payments';
import * as price from '@/process/price';
import * as recalc from '@/process/recalc';
import * as subsidy from '@/process/subsidy';
import * as subsidyImportProgram from '@/process/subsidy-import-program';
import * as supplierAgent from '@/process/supplier-agent';
import * as usedPl from '@/process/used-pl';
type Config = {
prune: string[];
};
function useProcess({ reactions }: Process, config?: Config) {
const context = useProcessContext();
Object.keys(reactions).forEach((name) => {
if (!config?.prune.includes(name)) {
const injector = reactions[name];
injector(context);
}
});
}
export function useReactions(config: Config) {
useProcess(leadOpportunity, config);
useProcess(loadKP, config);
useProcess(calculate, config);
useProcess(supplierAgent, config);
useProcess(price, config);
useProcess(fingap, config);
useProcess(leasingWithoutKasko, config);
useProcess(subsidy, config);
useProcess(leasingObject, config);
useProcess(configurator, config);
useProcess(createKP, config);
useProcess(bonuses, config);
useProcess(usedPl, config);
useProcess(subsidyImportProgram, config);
useProcess(payments, config);
useProcess(gibdd, config);
useProcess(addProduct, config);
useProcess(insurance, config);
useProcess(recalc, config);
}