@jangaba/circle-calculations
v1.0.3
Published
JavaScript library for circle calculations from area, perimeter, radius or diameter
Readme
Circle Calculations
A JavaScript library for calculating circle properties from a single input.
Supported inputs:
radiusdiameterperimeterarea
The library always returns a complete result object with:
radiusdiameterperimeterarea
Installation
npm installUsage
const {
calculateCircle,
fromRadius,
fromDiameter,
fromPerimeter,
fromArea,
} = require('./src/circle');1) Universal function
calculateCircle(input) expects an object with exactly one property:
{ radius: number }{ diameter: number }{ perimeter: number }{ area: number }
Example:
const result = calculateCircle({ radius: 5 });
console.log(result);
// {
// radius: 5,
// diameter: 10,
// perimeter: 31.41592653589793,
// area: 78.53981633974483
// }2) Specialized functions
fromRadius(radius)fromDiameter(diameter)fromPerimeter(perimeter)fromArea(area)
Example:
const a = fromDiameter(10);
const b = fromArea(Math.PI);API
calculateCircle(input)
Input:
input: { radius?: number, diameter?: number, perimeter?: number, area?: number }
Rules:
- The object must contain exactly one supported property.
- The value must be a positive finite number (
> 0).
Output:
{
radius: number;
diameter: number;
perimeter: number;
area: number;
}fromRadius(radius)
Calculates all circle values from a radius.
fromDiameter(diameter)
Calculates all circle values from a diameter.
fromPerimeter(perimeter)
Calculates all circle values from a perimeter.
fromArea(area)
Calculates all circle values from an area.
Validation and errors
The library throws TypeError when:
- input is not an object (for example:
null, array) - 0 or more than 1 supported property is provided
- value is not a number, is
NaN,Infinity, or<= 0
Example:
calculateCircle({}); // TypeError
calculateCircle({ radius: 2, area: 5 }); // TypeError
fromRadius(0); // TypeErrorTests
Run tests:
npm testTest coverage includes:
- calculations from all supported input types
- consistency of output values
- validation errors
Publishing to npm
This project includes a publish script:
npm run publish:npm -- --tag latest --access publicOptions:
--tag <tag>(default:latest)--access <public|restricted>(default:public)--dry-runfor a publish simulation
Examples:
npm run publish:npm -- --dry-run
npm run publish:npm -- --tag nextWhat the script does:
- runs tests
- verifies npm login (
npm whoami) - builds a package tarball (
npm pack) - publishes with
npm publish
