@kasko/quote-calculator-js
TypeScript icon, indicating that this package has built-in type declarations

1.2.3 • Public • Published

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';

// Initiate calculator instance
const calculator = new Calculator();

(async () => {
  // Relative location of xlsx file
  const path = './kasko-demo.xlsx';
  /**
   * This will fill `Field Value` column based on
   * `Input field` name match. It will replace empty
   * fields with `null`.
   */
  const input = {
    duration: 'P5Y',
    policy_start_date: '2018-02-10',
  };
  /**
   * This will fill `Field Value` column based on
   * `Predefined field` name match. It will leave default
   * values as is, only replacing the ones provided in config.
   */
  const config = {
    tax_rate: 0.05
  };

  // Loads xlsx file, parses it and fills input and config values.
  await calculator.init(path, input, config);

  /**
   * To get calculated field `isValid` column.
   *
   * @example output:
   * ```json
   * {
   *   duration: true,
   *   policy_start_date: true
   * }
   * ```
   */
  const validation = calculator.validateInput();

  /**
   * To get calculated output data based on
   * `Quote field` and `Quote value` columns.
   *
   * @example output:
   * ```json
   * {
   *   gross_premium: 30000,
   *   extra_data: {
   *     flow: 'default'
   *   }
   * }
   * ```
   */
  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/.

Readme

Keywords

none

Package Sidebar

Install

npm i @kasko/quote-calculator-js

Weekly Downloads

51

Version

1.2.3

License

UNLICENSED

Unpacked Size

1.8 MB

Total Files

16

Last publish

Collaborators

  • dstabulis
  • matthewwardle
  • a3s
  • tomstumshais
  • ksmelens
  • marcisbee
  • kaskobuild
  • sberlinskis
  • montakasparsone
  • kasko-roberts-sukonovs