Package Exports
- @inglorious/utils
- @inglorious/utils/algorithms
- @inglorious/utils/algorithms/decision-tree.js
- @inglorious/utils/algorithms/decision-tree.test.js
- @inglorious/utils/algorithms/index.js
- @inglorious/utils/algorithms/path-finding.js
- @inglorious/utils/algorithms/path-finding.test.js
- @inglorious/utils/data-structures
- @inglorious/utils/data-structures/array.js
- @inglorious/utils/data-structures/array.test.js
- @inglorious/utils/data-structures/board.js
- @inglorious/utils/data-structures/board.test.js
- @inglorious/utils/data-structures/boolean.js
- @inglorious/utils/data-structures/heap.js
- @inglorious/utils/data-structures/heap.test.js
- @inglorious/utils/data-structures/index.js
- @inglorious/utils/data-structures/object.js
- @inglorious/utils/data-structures/object.test.js
- @inglorious/utils/data-structures/objects.js
- @inglorious/utils/data-structures/objects.test.js
- @inglorious/utils/data-structures/set.js
- @inglorious/utils/data-structures/set.test.js
- @inglorious/utils/data-structures/tree.js
- @inglorious/utils/data-structures/tree.test.js
- @inglorious/utils/functions/function.js
- @inglorious/utils/functions/function.test.js
- @inglorious/utils/functions/functions.js
- @inglorious/utils/functions/functions.test.js
- @inglorious/utils/functions/index.js
- @inglorious/utils/index
- @inglorious/utils/index.js
- @inglorious/utils/math
- @inglorious/utils/math/circle.js
- @inglorious/utils/math/circle.test.js
- @inglorious/utils/math/hitmask.js
- @inglorious/utils/math/hitmask.test.js
- @inglorious/utils/math/index.js
- @inglorious/utils/math/line.js
- @inglorious/utils/math/line.test.js
- @inglorious/utils/math/linear-interpolation.js
- @inglorious/utils/math/numbers.js
- @inglorious/utils/math/numbers.test.js
- @inglorious/utils/math/point.js
- @inglorious/utils/math/point.test.js
- @inglorious/utils/math/quaternion.js
- @inglorious/utils/math/quaternion.test.js
- @inglorious/utils/math/quaternions.js
- @inglorious/utils/math/quaternions.test.js
- @inglorious/utils/math/rectangle.js
- @inglorious/utils/math/rectangle.test.js
- @inglorious/utils/math/rng.js
- @inglorious/utils/math/rng.test.js
- @inglorious/utils/math/segment.js
- @inglorious/utils/math/segment.test.js
- @inglorious/utils/math/statistics.js
- @inglorious/utils/math/statistics.test.js
- @inglorious/utils/math/triangle.js
- @inglorious/utils/math/triangle.test.js
- @inglorious/utils/math/trigonometry.js
- @inglorious/utils/math/trigonometry.test.js
- @inglorious/utils/math/vector.js
- @inglorious/utils/math/vector.test.js
- @inglorious/utils/math/vectors.js
- @inglorious/utils/math/vectors.test.js
- @inglorious/utils/physics/acceleration.js
- @inglorious/utils/physics/friction.js
- @inglorious/utils/physics/friction.test.js
- @inglorious/utils/physics/gravity.js
- @inglorious/utils/physics/gravity.test.js
- @inglorious/utils/physics/index.js
- @inglorious/utils/physics/jump.js
- @inglorious/utils/physics/velocity.js
- @inglorious/utils/v
- @inglorious/utils/v.js
- @inglorious/utils/v.test.js
Readme
Inglorious Utils
A set of general-purpose utility functions designed with functional programming principles in mind. This package is part of the Inglorious Engine monorepo.
Overview
This package provides a collection of pure, composable helper functions to streamline development in any JavaScript or TypeScript project. It embraces a data-oriented and functional approach, operating on plain data structures like objects and arrays.
Installation
npm install @inglorious/utilsUsage
Here are a few examples of how you can use the utilities in this package.
pipe
Compose functions together in a readable, left-to-right sequence.
import { pipe } from "@inglorious/utils/functions/functions"
const add = (a) => (b) => a + b
const multiply = (a) => (b) => a * b
const calculate = pipe(
add(5), // 10 + 5 = 15
multiply(2), // 15 * 2 = 30
add(10), // 30 + 10 = 40
)
const result = calculate(10) // 40Vector Math
Perform vector operations on plain objects.
import { add } from "@inglorious/utils/math/vector.js"
const position = [10, 20]
const velocity = [2, -1]
const newPosition = add(position, velocity)
// => [12, 19]API
This package is designed to be used with subpath imports, which helps with tree-shaking.
@inglorious/utils/algorithms: Utilities for AI algorithms, like decision trees and A*.@inglorious/utils/functions: Utilities for function composition.@inglorious/utils/math: Utilities for math operations.@inglorious/utils/physics: Utilities for calculations on friction, acceleration, and gravity.
License
MIT License - Free and open source
Created by Matteo Antony Mistretta
You're free to use, modify, and distribute this software. See LICENSE for details.
Contributing
We welcome contributions! Please see the root CONTRIBUTING.md file for more details.