Skip to content

Chain API

Fluent method-chaining for multi-step calculations.

Import

javascript
import { cadd, csub, cmul, cdiv, cmod, cpow, cidiv } from "a-calc";

Starter Functions

FunctionBehavior
cadd(...nums)Sum all arguments
csub(first, ...rest)First minus rest
cmul(...nums)Multiply all
cdiv(first, ...rest)First divided by rest
cmod(first, ...rest)Sequential modulo
cpow(first, ...rest)Sequential power
cidiv(first, ...rest)Sequential integer division
javascript
cadd(1, 2, 3)(); // "6"
csub(100, 20, 10)(); // "70"
cmul(2, 3, 4)(); // "24"
cdiv(100, 2, 5)(); // "10"

Chain Methods (no c prefix)

.add(), .sub(), .mul(), .div(), .mod(), .pow(), .idiv()

javascript
cadd(10).add(5).mul(2).sub(10)(); // "20"

Output

javascript
cadd(1, 2)(); // "3" (string)
cadd(1000, 234)("=2,"); // "1,234.00"
cmul(0.5, 0.8)("%=2"); // "40.00%"

Error Propagation

javascript
import { set_config } from "a-calc";
set_config({ _error: "-" });

cdiv(100, 0)(); // "-"
cdiv(100, 2).div(0).mul(5)(); // "-"

Type Definition

typescript
type ChainValue = {
  (format?: string): string;
  add(...nums: (number | string)[]): ChainValue;
  sub(...nums: (number | string)[]): ChainValue;
  mul(...nums: (number | string)[]): ChainValue;
  div(...nums: (number | string)[]): ChainValue;
  mod(...nums: (number | string)[]): ChainValue;
  pow(...nums: (number | string)[]): ChainValue;
  idiv(...nums: (number | string)[]): ChainValue;
};

Released under the MIT License