quote-calculator-js-lib
KASKO Spreadsheet Quote Calculator Lib.
When in doubt, consult documentation!
Requirements
Usage
yarn add @kasko/quote-calculator-js
Example:
import { Calculator } from '@kasko/quote-calculator-js';
const calculator = new Calculator();
(async () => {
const path = './kasko-demo.xlsx';
const input = {
duration: 'P5Y',
policy_start_date: '2018-02-10',
};
const config = {
tax_rate: 0.05
};
await calculator.init(path, input, config);
const validation = calculator.validateInput();
const output = calculator.getOutput();
})()
In case of loading parsed xlsx file as json:
+const workbook = require('./kasko-demo.json');
-const path = './kasko-demo.xlsx';
...
+await calculator.init(workbook, input, config);
-await calculator.init(path, input, config);
Development
Installation
yarn install
Building
yarn build
Developing with real pricing:
First you must edit the development file /index.js
to take correct input and pricing file.
Then run build command.
And finally run:
yarn start
To execute that development file and see the result.
Testing
Single run (of everything):
yarn test
Testing formulas
yarn test:formulas
Testing pricing
yarn test:pricing
Running generic tests
yarn test:generic
Debug UI mode
First make sure to set path to pricing xlsx file in ./debugger/index.tsx
file:
@@ -1,32 +1,19 @@
import { Calculator } from '../packages/calculator/src/calculator';
// @ts-ignore
-import Workbook from '../pricing/baloise-legal-protection.xlsx';
+import Workbook from '../pricing/kasko-demo.xlsx';
import { debuggerApp } from './app';
To start UI run:
yarn debug
Now you can open UI in browser by following the url in terminal. It is possible to update calculator & formula code and see changes in UI.
Debug performance
First make sure to set path to pricing xlsx file in ./trace/trace.ts
file:
@@ -1,32 +1,19 @@
import { Calculator } from '../packages/calculator/src/calculator';
// @ts-ignore
-import Workbook from '../pricing/pricing/fermion-motor.xlsx';
+import Workbook from '../pricing/kasko-demo.xlsx';
import { initTrace, writeTrace } from './utils';
To generate trace run:
yarn trace
This now generated ./trace.json
file in repo root dir. This trace file can now be uploaded (file is not uploaded to any server, instead it's uploaded to browser memory) to chrome://tracing/ or https://ui.perfetto.dev/.