@flekschas/utils
TypeScript icon, indicating that this package has built-in type declarations

0.32.2 • Public • Published

A collection of handy utility functions

NPM Version Build Status File Size Code Style Prettier Docs

This is a collection of utility functions that I keep using across different projects. I primarily created this package for myself so I don't have to re-implement certain functions over and over again, and to have a central place for testing them.

Install

npm install @flekschas/utils --save-dev

Usage

import { debounce } from '@flekschas/utils';

const hi = debounce(() => {
  console.log('I am debounced');
}, 250);

For cherry picking from a specific topic do:

import { debounce } from '@flekschas/utils/timing';

The utility functions are organized by the following topics:

  • animation
  • color
  • conversion
  • dom
  • event
  • functional-programming
  • geometry
  • map
  • math
  • object
  • other
  • sorting
  • string
  • timing
  • type-checking
  • vector

API

See API.md for the API docs.

Why yet another library for utility functions?

Generally, I follow four core goals with this collection:

  1. Reusability
  2. Performance
  3. Simplicity
  4. No dependencies

Whenever a function is reusable in a general context I might add it. When I add a function I will make sure it's performant. Finally, every function should be implement as simple as possible without harming performance. There's always a trade-off between performance and simplicity and my philosophy is the following: if the simple and complex implementation perform roughly the same, I choose the simple implementation. If a slightly more complex implementation is much faster I will favor the complex implementation. In any case, the API should always be simple and easy to understand! Finally, I want my utils functions to have no external and as little as possible internal dependencies. Why? No matter how large this collection becomes as a whole, if you only need one function, you should only ever have to bundle a single function and not a whole forrest of depending helper functions.

Readme

Keywords

Package Sidebar

Install

npm i @flekschas/utils

Weekly Downloads

590

Version

0.32.2

License

MIT

Unpacked Size

408 kB

Total Files

102

Last publish

Collaborators

  • flekschas