Chain API
Fluent method-chaining for multi-step calculations.
Import
javascript
import { cadd, csub, cmul, cdiv, cmod, cpow, cidiv } from "a-calc";Starter Functions
| Function | Behavior |
|---|---|
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;
};