@ulu/utils
v0.0.34
Published
A collection of helpful utility functions for common JavaScript development and browser DOM manipulation tasks
Maintainers
Readme
@ulu/utils
A lightweight, tree-shakable collection of modern JavaScript (ESM) utility functions. Designed for use in any JavaScript project, with specific helpers for browser and Node.js environments.
Features
This library is split into several modules, so you only import what you need.
array.js: Functions for array manipulation likearrayHas,arrayCreate,removeDuplicates, andfilterInPlace.browser/clipboard.js: A simple promise-basedcopyTextfunction for clipboard interactions.browser/dom.js: Helpers for DOM manipulation, includinggetScrollParent,preventScroll,wasClickOutside, andgetDatasetJson.browser/performance.js: Browser-specific performance utilities likerunAfterFramePaintanddebounceAnimationFrame.browser/print.js: Functions to print HTML content or specific DOM elements.date.js: Helpers for date formatting, likeprettyDate.debug.js: Simple utilities for debugging, such asdebugThrough.json.js: Safe JSON parsing functions.node/fs.js&node/path.js: Helpers for working with file paths in Node.js ES Modules (e.g.,resolveFromUrlDir).number.js: Simple numerical utilities likeisBetween,average, andsum.object.js: Helpers for object validation, likehasRequiredProps.performance.js: Generic performance utilities likedebounceandthrottle.random.js: Functions for generating random values, such asrandomInt,randomString, andrandomArrayItem.regex.js: A collection of common, pre-compiled regular expressions for reuse.string.js: A rich set of string helpers liketruncate,kebabToCamel,titleCase,urlize, andcssDurationToMs.templating.js: Utilities for templating, such asnormalizeClassesfor handling dynamic CSS classes.
Usage
Each module can be imported directly to keep your bundles small.
String Manipulation:
import { truncate, titleCase } from "@ulu/utils/string.js";
const longText = "This is a very long sentence that needs to be shortened.";
console.log(truncate(longText, 20)); // "This is a very long…"
console.log(titleCase("a tale of two cities")); // "A Tale of Two Cities"DOM Interaction:
import { preventScroll } from "@ulu/utils/browser/dom.js";
// Prevent the body from scrolling (e.g., when a modal is open)
const restoreScroll = preventScroll({ preventShift: true });
// Later, to restore scrolling
restoreScroll();