1.1.8 • Published 10 months ago
billy-herrington-utils v1.1.8
daddy told us not to be ashamed of our utils
<script src="https://unpkg.com/billy-herrington-utils"></script>
<script src="https://unpkg.com/billy-herrington-utils/dist/billy-herrington-utils.umd.js"></script>
<script>
const { Tick } = window.bhutils;
</script>
npm i billy-herrington-utils
A comprehensive collection of utility 🛠️ functions to make dungeon life easier.
Key features:
- String manipulation: Easily parse, sanitize, and convert strings.
- Time and date: Work with time and date values effortlessly.
- DOM manipulation: Interact with DOM elements like a pro.
- Networking: Make HTTP requests and handle data with ease.
- Miscellaneous: A variety of other useful functions for common tasks.
Documentation
Function | Short Explanation | Input Parameters | Example Input/Output or Usage |
---|---|---|---|
stringToWords(s) | Splits a string into an array of words. | s: string | stringToWords("Hello, world!") -> ["hello", "world"] |
sanitizeStr(s) | Sanitizes a string by removing newlines, tabs, and extra spaces. | s: string | sanitizeStr("Hello\nWorld\t") -> hello world |
timeToSeconds(timeStr) | Converts a time string to seconds. | timeStr: string | timeToSeconds("1h30m") -> 5400 |
parseIntegerOr(value, defaultValue) | Parses a string as an integer. | value: string , defaultValue: number | parseIntegerOr("10", 0) -> 10 , parseIntegerOr("abc", 0) -> 0 |
parseDataParams(str) | Parses a string containing data parameters into an object. | str: string | parseDataParams("param1:value1;param2:value2") -> { param1: "value1", param2: "value2" } |
parseCSSUrl(cssUrl) | Extracts the URL from a CSS url() declaration. | cssUrl: string | parseCSSUrl("url('https://example.com/image.jpg')") -> https://example.com/image.jpg |
Observer | A class for observing elements and triggering callbacks when they intersect with the viewport. | N/A | const observer = new Observer((target) => { console.log(target); }); observer.observe(element); |
LazyImgLoader | A class for lazy loading images. | N/A | const lazyLoader = new LazyImgLoader(); lazyLoader.lazify(element, image, imageSrc); |
circularShift(value, max, shift) | Performs a circular shift on a number. | value: number , max: number = 6 , shift: number = 1 | circularShift(5, 10, 2) -> 7 |
parseDom(html) | Parses HTML into a DOM element. | html: string | const element = parseDom("<div>Hello</div>"); |
copyAttributes(target, source) | Copies attributes from one DOM element to another. | target: HTMLElement , source: HTMLElement | copyAttributes(targetElement, sourceElement); |
replaceElementTag(element, tagName) | Replaces a DOM element with a new element of a different tag. | element: HTMLElement , tagName: string | replaceElementTag(element, "span"); |
getAllUniqueParents(elements) | Gets all unique parent elements of a list of elements. | elements: HTMLElement[] | const parents = getAllUniqueParents(elements); |
findNextSibling(element) | Finds the next sibling element of a given element. | element: HTMLElement | const nextSibling = findNextSibling(element); |
waitForElementExists(parent, selector, callback) | Waits for an element to exist within a parent element and then calls a callback. | parent: HTMLElement , selector: string , callback: (element: HTMLElement) => void | waitForElementExists(container, ".target-element", (element) => { ... }); |
watchElementChildrenCount(element, callback) | Watches for changes in the number of children of an element and calls a callback. | element: HTMLElement , callback: (observer: MutationObserver, count: number) => void | watchElementChildrenCount(element, (observer, count) => { ... }); |
watchDomChangesWithThrottle(element, callback, throttle = 1e3, options = { childList: true, subtree: true, attributes: true }) | Watches for DOM changes within an element and calls a callback with throttling. | element: HTMLElement , callback: (mutationList: MutationRecord[]) => void , throttle?: number , options?: MutationObserverInit | watchDomChangesWithThrottle(element, (mutationList) => { ... }); |
downloader(options) | Creates a download button for a video element. | options: { button: string, append?: string, after?: string, cbBefore?: () => void } | downloader({ button: "#download-button" }); |
MOBILE_UA | A constant containing a mobile user agent string. | N/A | console.log(MOBILE_UA); |
fetchWith(url, options) | Fetches data from a URL. | url: string , options: { html?: boolean, mobile?: boolean } | fetchWith("https://api.example.com/data", { html: true }).then((html) => { ... }); |
fetchHtml(url) | Fetches HTML from a URL. | url: string | fetchHtml("https://example.com/page.html").then((html) => { ... }); |
fetchText(url) | Fetches text from a URL. | url: string | fetchText("https://example.com/data.txt").then((text) => { ... }); |
objectToFormData(object) | Converts an object to FormData. | object: object | const formData = objectToFormData({ name: "John", age: 30 }); |
listenEvents(element, events, callback) | Adds event listeners to a DOM element. | element: HTMLElement , events: string[] , callback: (event: Event) => void | listenEvents(element, ["click", "mouseover"], (event) => { ... }); |
Tick(delay, startImmediate = true) | A class for creating interval timers. | delay: number , startImmediate?: boolean | const tick = new Tick(1000, false); tick.start(() => { ... }); |
isMob() | Checks if the current device is a mobile device. | N/A | if (isMob()) { ... } |
computeAsyncOneAtTime(iterable) | Executes asynchronous functions one at a time. | iterable: Iterable<() => Promise<any>> | computeAsyncOneAtTime(asyncFunctions).then((results) => { ... }); |
wait(milliseconds) | Waits for a given number of milliseconds. | milliseconds: number | await wait(1000); |
AsyncPool | A class for managing asynchronous tasks with priorities. | N/A | const spool = new AsyncPool(); spool.push(() => { v: () => fetch(...), p: 1 }); |
chunks(arr, n) | Splits an array into chunks of a given size. | arr: Array<any> , n: number | const chunks = chunks([1, 2, 3, 4, 5], 2); -> [[1, 2], [3, 4], [5]] |
range(start, end) | Creates a range of numbers from start to end (inclusive). | start: number , end: number | const numbers = range(1, 5); -> [1, 2, 3, 4, 5] |
1.1.8
10 months ago
1.1.7
10 months ago
1.1.6
10 months ago
1.1.5
10 months ago
1.1.4
10 months ago
1.1.3
11 months ago
1.1.2
11 months ago
1.1.1
11 months ago
1.1.0
11 months ago
1.0.9
11 months ago
1.0.8
11 months ago
1.0.7
11 months ago
1.0.6
11 months ago
1.0.5
11 months ago
1.0.3
11 months ago
1.0.2
11 months ago
1.0.1
11 months ago
1.0.0
11 months ago