- prototype
Converts most of the functions of Bijou.js to prototype functions. Note that you have to call this function to add the prototypes.
- _temp :
Object
Bijou.js source documentation. In the
Bijou
namespace you will find the documentation for all of the functions in Bijou.js, if you have any questions, suggestions or bug reports pleast make an issue (here)[https://github.com/bijou-js/bijou.js/issues/new/choose]. Best of luck! Thanks for using Bijou.js! --Explosion--
- array :
object
The array namespace of Bijou.js
- color :
object
The color namespace of Bijou.js
- date :
object
The date namespace of Bijou.js, containing functions to format dates, do math with them and more!
- element :
object
The element namespace of Bijou.js, containing functions to create elements from query selectors, enable custom right click options, test if an element is on screen, replace the text of an element without altering it's styling, and much more!
- event :
object
The event namespace of Bijou.js, containing functions to listen and dispatch events, such as scroll stop, outside click, and multiple event listeners.
- function :
object
The function namespace of Bijou.js, containing functions to work with functions themselves, such as debouncing, throttling, memoizing, currying, timing and much more!
- math :
object
The math namespace of Bijou.js, containing functions to validate credit card numbers, animate with JavaScript, generate unique id's and much more!
- object :
object
The object namespace of Bijou.js, for stuff like flattening nested objects, cloning, merging, and even listening to changes to objects!
- string :
object
The string namespace of Bijou.js, containing functions to map strings, remove accents from strings, speak text, syntax highlight JS, HTML and CSS and much more!
- utility :
object
The utility namespace of Bijou.js, containing utilities to do many things, such as playing audio, fetching JSON, preloading images and much more.
- node()
Tests if the user is using Node.js or not and throws an error in specific functions (that require the DOM) if they are.
- averageByFn ⇒
Number
- eachCallback :
function
- replaceTextCallback ⇒
String
- eventListenersCallback ⇒
undefined
- sortTableCallback ⇒
String
- scrollStopCallback ⇒
undefined
- juxtCallback ⇒
Array.<array>
- spreadCallback ⇒
any
- listenCallback ⇒
undefined
- mapObjKeysCallback ⇒
String
- mapObjValuesCallback ⇒
any
- animateNumCallback ⇒
Number
- animateCallback ⇒
undefined
- mapCallback :
function
- manipulateVideoStreamFunction ⇒
Object
Converts most of the functions of Bijou.js to prototype functions. Note that you have to call this function to add the prototypes.
Kind: global variable
Param | Type | Description |
---|---|---|
options | Object |
The options to use, supports overwrite (boolean of whether to overwrite existing prototypes), and try, (boolean for whether to wrap in a try..catch) |
Bijou.js source documentation. In the Bijou
namespace you will find the documentation for all of the functions in Bijou.js, if you have any questions, suggestions or bug reports pleast make an issue (here)[https://github.com/bijou-js/bijou.js/issues/new/choose]. Best of luck! Thanks for using Bijou.js! --Explosion--
Kind: global variable
Author: Explosion-Scratch, GrahamSH-LLK, Bijou.js contributors
array : object
The array namespace of Bijou.js
Kind: global namespace
- array :
object
- .exports.count(arr) ⇒
Object
- .exports.arrayDiff(a1, a2) ⇒
Array
|String
- .exports.diff(text1, text2) ⇒
Array.<Array.<number>>
- .exports.remove(array, item)
- .exports.spliceArrayBuffer(arr, start, end, [endian]) ⇒
Number
- .exports.flatten(array, [level]) ⇒
Array
- .exports.nFlatten(arr) ⇒
Array
- .exports.contains(array, item) ⇒
Boolean
- .exports.shuffleArray(array) ⇒
Array
- .exports.splice(array, index, item, [remove]) ⇒
String
|Array
- .exports.unionArrays(x, y) ⇒
Array
- .exports.averageBy(arr, fn) ⇒
Number
- .exports.uniqueArray(array) ⇒
Array
- .exports.each(array, callback) ⇒
Array.<any>
- .exports.count(arr) ⇒
Counts the items in an array, returning a separate count for each object.
Kind: static method of array
Param | Type | Description |
---|---|---|
arr | Array |
The array to count items in. |
Example
_$.count(['a', 'b', 'c', 'd', 'e', 'f'])//{'a': 1, 'b': 1, 'c': 1, 'd': 1, 'e': 1, 'f': 1}
//But if you have multiple items:
_$.count(['a', 'a', b', 'b', 'c', 'd', 'e']);//{'a': 2, 'b': 2, 'c': 1, 'd': 1, 'e': 1}
Returns the difference between two arrays or strings.
Kind: static method of array
Returns: Array
| String
- The difference between two arrays or strings.
Param | Type | Description |
---|---|---|
a1 | Array | String |
The first array or string |
a2 | Array | String |
The 2nd array or string. |
Example
console.log(_$.arrayDiff(['a', 'b'], ['a', 'b', 'c', 'd'])); // ["c", "d"]
Gets the difference between two strings.
Kind: static method of array
Returns: Array.<Array.<number>>
- An array of arrays, each array in the main array contains 2 numbers, the start and then end of the difference.
Param | Type | Description |
---|---|---|
text1 | String |
The 1st text to compare |
text2 | String |
The 2nd text to compare with the 1st one. |
Example
console.log(_$.diff("hello earthlings", "hello world"); // [[6,8],[9,16]]
Removes an item from the array specified.
Kind: static method of array
Param | Type | Description |
---|---|---|
array | Array |
The array to remove the item from. |
item | * |
The item to remove. |
Example
console.log(_$.remove([5, 4, 3, 2, 1], 4)); // [5, 3, 2, 1]
Splices an ArrayBuffer.
Kind: static method of array
Returns: Number
- The hex representation of part of the ArrayBuffer.
Param | Type | Default | Description |
---|---|---|---|
arr | ArrayBuffer | Buffer |
The ArrayBuffer to splice. | |
start | Number |
The start index. | |
end | Number |
The end index. | |
[endian] | Boolean |
false |
Whether to use big endian or not. |
Flattens an array level
times.
Kind: static method of array
Returns: Array
- The flattened array.
Param | Type | Default | Description |
---|---|---|---|
array | Array |
The array to flatten. | |
[level] | Number |
1 |
The number of iterations to flatten it. |
Example
console.log(_$.flatten(['a', 'b', ['c', 'd']])); // ['a', 'b', 'c', 'd'];
Flattens an array recursively.
Kind: static method of array
Returns: Array
- The flattened array.
Param | Type | Description |
---|---|---|
arr | Array |
The array to flatten. |
Example
console.log(_$.nFlatten([5,[[9,4],0],[7,6]])); // [5,9,4,0,6,7]
Returns whether the specified array or string contains the item given.
Kind: static method of array
Returns: Boolean
- True or false depending on if the array contains that item.
Param | Type | Description |
---|---|---|
array | Array |
The array to test with. |
item | String |
The item to see if the array contains. |
Example
console.log(_$.contains([1,2,3,4,5], 3)); // true
Shuffles an array
Kind: static method of array
Returns: Array
- The shuffled array.
Param | Type | Description |
---|---|---|
array | Array |
The array to shuffle. |
Example
let array = [1,2,3,4,5];
console.log(_$.shuffleArray(array)); // e.g. [2,4,1,5,3]
Splice but also for strings
Kind: static method of array
Returns: String
| Array
- the spliced array or string
Param | Type | Default | Description |
---|---|---|---|
array | String | Array |
The array or string to operate on | |
index | Number |
The index to splice | |
item | * |
The item | |
[remove] | Number |
0 |
How many to remove. |
Example
console.log(_$.splice("hello earthlings", 5, " puny")); // "hello puny earthlings"
Joins two arrays together and removes duplicate items.
Kind: static method of array
Returns: Array
- The joined array from the two other arrays.
Param | Type | Description |
---|---|---|
x | Array |
The first array to join. |
y | Array |
The second array to join. |
Example
console.log(_$.unionArrays([1,2,3,4], [4,5,6])); // [1,2,3,4,5,6]
averageBy
Kind: static method of array
Returns: Number
- The average of the array.
Param | Type | Description |
---|---|---|
arr | Array.<number> |
The array to average |
fn | averageByFn |
The function to apply to each item of the array. |
Example
Logs the average of the first 4 square numbers:
console.log(_$.averageBy([1,2,3,4], (v) => v ** 2)); // 7.5
Removes duplicates from an array
Kind: static method of array
Returns: Array
- The array with no duplicates.
Param | Type | Description |
---|---|---|
array | Array |
The array to remove duplicates from. |
Example
console.log(_$.uniqueArray([1,1,2,3,4,4,4,5,6)); // [1,2,3,4,5,6]
For each item in an array, run a callback with it.
Kind: static method of array
Returns: Array.<any>
- The array passed at the beginning.
Param | Type | Description |
---|---|---|
array | Array | String | Number |
The array, string or number to run the callback with. |
callback | eachCallback |
The callback function to run on the array items. |
Example
_$.each(new Array(6), (array_item, i) => console.log(i));
// 0
// 1
// 2
// 3
// 4
// 5
color : object
The color namespace of Bijou.js
Kind: global namespace
- color :
object
- .exports.rgbToHex(rgb) ⇒
String
- .exports.hexToRGB(hex) ⇒
String
- .exports.blendColors(color1, color2, [percent]) ⇒
String
- .exports.randomColor() ⇒
String
- .exports.lightenColor(col, amt) ⇒
String
- .exports.lightOrDark(color) ⇒
Object
- .exports.rgbToHex(rgb) ⇒
Converts a rgb(a) color to hex.
Kind: static method of color
Returns: String
- The hex color.
Param | Type | Description |
---|---|---|
rgb | String |
The string of RGB colors. |
Example
console.log(_$.rgbToHex("rgb(255,255,255)")); // "#ffffff"
Converts a hex code to a RGB color.
Kind: static method of color
Returns: String
- The RGB color converted from the hex code.
Param | Type | Description |
---|---|---|
hex | String |
The hex code to convert. |
Example
console.log(_$.rgbToHex("#ffffff")); // "rgb(255,255,255)"
Blends two colors through additive blending by a percentage.
Kind: static method of color
Returns: String
- The blended color (A hex code).
Param | Type | Default | Description |
---|---|---|---|
color1 | String |
The hex code of the first color to be blended | |
color2 | String |
The hex code of the second color to be blended. | |
[percent] | Number |
50 |
A number between 0 and 100 of the percentage to blend the two colors, 0 being completely the first color and 100 being completely the second color. |
Example
console.log(_$.blendColors("#ffffff", "#000000", 80)); // #333333
Generates a random hex color.
Kind: static method of color
Returns: String
- A random Hex color
Example
console.log(_$.randomColor()); // e.g. #5bf462
Lighten or darken a color by a certain amount
Kind: static method of color
Returns: String
- The color lightened.
Param | Type | Description |
---|---|---|
col | String |
The color to lighten/darken |
amt | Number |
The amount to lighten the color (out of 255). |
Example
_$.lightenColor("#000000", 50); // #323232
Tests if a color is light or dark and returns an object representation.
Kind: static method of color
Returns: Object
- An object that represents if the color is light or dark and how much. The object key "hsp" represents a value out of 255 of how light the color is and the object's key "lightOrDark" is a string (Either "light" or "dark") of whether the color is light or dark.
Param | Type | Description |
---|---|---|
color | string |
The hex color to test. |
Example
if (_$.lightOrDark("#333333").lightOrDark === 'dark'){
document.querySelector("DIV").style.color = "white";
} else {
document.querySelector("DIV").style.color = "black";
}
date : object
The date namespace of Bijou.js, containing functions to format dates, do math with them and more!
Kind: global namespace
- date :
object
- .exports.dayName([date], [locale]) ⇒
String
- .exports.formatMilliseconds(ms) ⇒
String
- .exports.addMinutesToDate(date, n) ⇒
Date
- .exports.isDateValid(...val) ⇒
Boolean
- .exports.addDaysToDate(date, n) ⇒
Date
- .exports.dayName([date], [locale]) ⇒
Returns the name of the weekday from the Date object specified.
Kind: static method of date
Returns: String
- The day name from the date.
Param | Type | Default | Description |
---|---|---|---|
[date] | Date |
new Date() |
The date object to use. |
[locale] | String |
en-US |
The locale to use. |
Example
console.log(_$.dayName)); // e.g. "Friday"
Formats a number of milliseconds
Kind: static method of date
Returns: String
- The string of formatted milliseconds.
Param | Type | Description |
---|---|---|
ms | Number | String |
The number of milliseconds to format to a string. |
Example
console.log(_$.formatMilliseconds(1324765128475)); // "1 century, 7 years, 2 days, 22 hours, 18 minutes, 48 seconds, 475 milliseconds"
Adds a certain number of minutes to a date object.
Kind: static method of date
Returns: Date
- The date with minutes added.
Param | Type | Description |
---|---|---|
date | Date | string |
The date to add minutes to. |
n | Number |
How many minutes to add to the date. |
Example
_$.addMinutesToDate(new Date(), 4);//Create a date 4 minutes from now.
Validates a date from a string.
Kind: static method of date
Returns: Boolean
- Returns if the date is valid or not.
Param | Type | Description |
---|---|---|
...val | any |
The arguments of the date to validate. |
Example
_$.isDateValid('December 17, 1995 03:24:00'); // true
_$.isDateValid('1995-12-17T03:24:00'); // true
_$.isDateValid('1995-12-17 T03:24:00'); // false
_$.isDateValid('Duck'); // false
_$.isDateValid(1995, 11, 17); // true
_$.isDateValid(1995, 11, 17, 'Duck'); // false
_$.isDateValid({}); // false
Adds a specified number of days to a date.
Kind: static method of date
Returns: Date
- The date with the specified number of days added.
Param | Type | Description |
---|---|---|
date | Date |
The date to add days to |
n | Number |
How many days to add to the date. |
element : object
The element namespace of Bijou.js, containing functions to create elements from query selectors, enable custom right click options, test if an element is on screen, replace the text of an element without altering it's styling, and much more!
Kind: global namespace
- element :
object
- .exports.ripple(el, obj) ⇒
HTMLElement
- .exports.elementReady([parent], selector) ⇒
Promise
- .exports.elementContains(parent, child) ⇒
Boolean
- .exports.parents(el) ⇒
Array.<HTMLElement>
- .exports.getImages([el], [includeDuplicates]) ⇒
Array
- .exports.renderElement(param, container) ⇒
HTMLElement
- .exports.create(querySelector, [content]) ⇒
- .exports.context() ⇒
Array.<HTMLElement>
- .exports.inView(el) ⇒
Boolean
- .exports.inPartialView(el) ⇒
Boolean
- .exports.replaceText(el, callback) ⇒
HTMLElement
- .exports.textNodes(el) ⇒
Array
- .exports.querySelector(elem) ⇒
String
- .exports.removeComments(el) ⇒
HTMLElement
- .exports.parseHTML(string, [mimeType]) ⇒
HTMLDocument
- .exports.drag(dragHandle, dragTarget) ⇒
Element
- .exports.addEventListeners(element, events, handler, [useCapture], [args]) ⇒
Element
- .exports.sortTable(element, [cellVal]) ⇒
HTMLTableElement
- .exports.sortTableBy(th, ascending) ⇒
HTMLTableElement
- .exports.addStyles(el, styles) ⇒
Object
- .exports.createElement(str) ⇒
Element
- .exports.compStyle(el, prop) ⇒
String
- .exports.elementSiblings(n) ⇒
Array.<Element>
- .exports.disableRightClick(el) ⇒
HTMLElement
- .exports.inlineCSS(el) ⇒
Object
- .exports.attributes(el) ⇒
Array.<object>
- .exports.observeMutations(element, callback, options) ⇒
MutationObserver
- .exports.tilt(el, x, y, [perspective], [amount]) ⇒
String
- .exports.fullScreen(element) ⇒
Promise
- .exports.replaceSelection(replacementText) ⇒
Range
- .exports.ripple(el, obj) ⇒
Applies a material design ripple effect to the element specified. Works best with buttons and similar elements. This comes from my GitHub repo here: https://github.com/explosion-scratch/ripple
Kind: static method of element
Returns: HTMLElement
- The HTML element that the ripple effect was applied to. (The same one passed in the first param).
Param | Type | Default | Description |
---|---|---|---|
el | HTMLElement |
The element to apply the ripple effect to. | |
obj | Object |
The object with (optional) time, color, opacity and event parameters for controlling the ripple effect. If these are not present the effect relies on data-* attributes, and then defaults and look good in general. | |
[obj.time] | Number |
1000 |
The time in milliseconds the ripple should take. |
[obj.color] | String |
"currentColor" |
The color of the ripple effect. |
[obj.opacity] | Number |
.3 |
The opacity of the ripple effect. |
[obj.event] | String |
"mousedown" |
The event to listen for to trigger the ripple effect. |
Example
_$.each(document.querySelectorAll("button"), _$.ripple)
//Accepts attributes too!
// data-time: The time in milliseconds that it takes the ripple to fade away
// data-color: A CSS color that the ripple should have as it's color
// data-opacity: The starting opacity of the ripple effect.
// data-event: The event to listen for to apply the ripple.
Waits for an element satisfying selector to exist, then resolves promise with the element.
Kind: static method of element
Returns: Promise
- A promise resolved when the element exists.
Param | Type | Default | Description |
---|---|---|---|
[parent] | HTMLElement |
document.documentElement |
The parent element to watch. |
selector | String |
The querySelector to watch for. |
Example
_$.elementReady("#text").then((e) => e.remove());//Wait for an element with an ID of "text" then removes it.
Tests if an element is a child element of another element.
Kind: static method of element
Returns: Boolean
- If the element is a child or not
Param | Type | Description |
---|---|---|
parent | HTMLElement |
The parent element to test. |
child | HTMLElement |
The child element to test. |
Example
_$.elementContains(document.querySelector("#container"), document.querySelector("#img"));//If the element with an id of "img" is inside the #container element this will return true, otherwise it will return false
Example
//Note that the easiest way to do this would be to use _$.onOutsideClick(), but this is another way that demonstrates the use of this function.
//Listen for a click outside of an element (in this case the div#popup element) then remove the popup element.
document.querySelector("div#popup").addEventListener("click", (e) => {
let contains = _$.elementContains(document.querySelector("div#popup"), e.target);
if (!contains){
document.querySelector("div#popup".remove()
}
})
Gets the parent elements of the element given.
Kind: static method of element
Returns: Array.<HTMLElement>
- An array of the parent elements from deepest to outermost.
Param | Type | Description |
---|---|---|
el | HTMLElement |
The element |
Example
//Where the html is like so:
<html>
<head>
</head>
<body>
<div id="img">
<img src="https://example.com/example.png">
</div>
</body>
</html>
_$.parents(document.querySelector("img"));//[div#img, body, html]
Gets all the images that are children of the specified element.
Kind: static method of element
Returns: Array
- The array of image urls.
Param | Type | Default | Description |
---|---|---|---|
[el] | HTMLElement |
document.documentElement |
The element to get images from (e.g. document.body) |
[includeDuplicates] | Boolean |
false |
Whether to include duplicate images, defaults to false. |
Example
//Get all the images on the page and convert their url's to data urls then log that list to console.
_$.getImages().forEach(image_url => {
image_data_list.push(_$.imageToData(image_url))
})
console.log(image_data_list);
Renders an HTML element from an object in the container specified.
Kind: static method of element
Returns: HTMLElement
- The HTML element rendered.
Param | Type | Description |
---|---|---|
param | Object |
The type of object (the HTML tagName) |
container | HTMLElement |
The html element to render it in. |
Example
//Renders a button in the document body.
_$.renderElement({
type: 'button',
props: {
type: 'button',
className: 'btn',
onClick: () => alert('Clicked'),
children: [{ props: { nodeValue: 'Click me' } }]
}
}, document.body)
Create a DOM element from a querySelector with option to include content
Kind: static method of element
Returns: DOMElement
Param | Type | Description |
---|---|---|
querySelector | String |
(optional) default to div |
[content] | String | Number | DOMElement |
(optional) |
Example
- _$.create(); // <div>
- _$.create('span#my-id.my-class.second-class'); // <span id="my-id" class="my-class second-class">
- _$.create('#my-id.my-class.second-class', 'text to insert', 12345); // <div id="my-id" class="my-class second-class">
Re-enables the use of <menu> and <menuitem> tags for corner clicking.
Kind: static method of element
Returns: Array.<HTMLElement>
- An array of all the HTML elements passed.
Example
//HTML:
<h1 contextmenu="menu">Corner click me</h1>
<menu>
<menuitem label="An item!">
<menuitem label="Another item!">
</menu>
//JS _$.context(); // Now the user can corner click the items that have parents with a "contextmenu" attribute! Try it out here: https://bcs88.csb.app/
Tests whether the specified element is fully in view.
Kind: static method of element
Returns: Boolean
- Whether the element is completely in view.
Param | Type | Description |
---|---|---|
el | Element |
The DOM element to test. |
Example
// Alerts "In view!" if the first <div> in the document is in view.
if (_$.inView(document.querySelector("div"))) alert("In view!");
Tests if the given DOM element is partially (or fully) in view.
Kind: static method of element
Returns: Boolean
- Whether the DOM element is partially in view.
Param | Type | Description |
---|---|---|
el | Element |
The element to test. |
Example
// Alerts "In view!" if the first <div> in the document is partially or fully view.
if (_$.inPartialView(document.querySelector("div"))) alert("In view!");
Replaces the text in an element by running it through a callback.
Kind: static method of element
Returns: HTMLElement
- The HTML element passed.
Param | Type | Description |
---|---|---|
el | Element |
The element to replace the text of. |
callback | replaceTextCallback |
The callback to run (Gets passed the element's text). |
Example
_$.replaceText(document.querySelector("div"), (text) => text.toUpperCase());
// Converts the text of the first <div> element to upperCase.
Gets a list of all the text nodes in an element
Kind: static method of element
Returns: Array
- The text nodes.
Param | Type | Description |
---|---|---|
el | Element |
The element to get the text nodes of. |
Example
_$.textNodes(document.querySelector("h1"))[0].textContent = "hello world"; // replaces the text with "hello world" without deleting other elements
Generates a querySelector for an element passed in.
Kind: static method of element
Returns: String
- The generated querySelector.
Param | Type | Description |
---|---|---|
elem | Element |
The element to generate the querySelector for. |
Example
const textarea = document.getElementById('textarea');
console.log(_$.querySelector(textarea)); //Logs "#textarea" to the console.
Removes comments from the element specified.
Kind: static method of element
Returns: HTMLElement
- The HTML element with the comments removed.
Param | Type | Description |
---|---|---|
el | Element |
The element to remove comments from. |
Example
_$.removeComments(document.documentElement);//Removes the comments from the document element.
Parses the string of HTML specified and returns an HTML element of it.
Kind: static method of element
Returns: HTMLDocument
- The HTML document element of the HTML string specified.
Param | Type | Default | Description |
---|---|---|---|
string | String |
The HTML string to parse. | |
[mimeType] | String |
"text/html" |
The mimeType of the string. |
Example
let html = _$.parseHTML("<div id='hello'><textarea></textarea></div>");
html.querySelector("textarea");//Returns the textarea!
Allows an element to be dragged and dropped.
Kind: static method of element
Returns: Element
- The element.
Param | Type | Description |
---|---|---|
dragHandle | Element |
The element that when dragged should move the dragTarget. |
dragTarget | Element |
The element that should be moved when the dragHandle is dragged. |
Example
_$.drag('div span', 'div'); // Allows the first <div> on the page to be dragged by the <span> element inside it.
Adds multiple event listeners with one callback to the element specified.
Kind: static method of element
Returns: Element
- The HTML element passed.
Param | Type | Default | Description |
---|---|---|---|
element | Element |
The element to add the event listeners to. | |
events | Array.<String> |
The array of events to listen for. | |
handler | eventListenersCallback |
The function to run when the events happen. | |
[useCapture] | Boolean | Object |
false |
Whether to use capture, or an options object. |
[args] | Array |
false |
The arguments to use in the handler function. |
Example
// Reset a timer every user interaction.
let timer = 0;
setInterval(() => timer++, 1);
_$.addEventListeners(
document,
["mousemove", "click", "scroll", "keypress"],
() => timer = 0,
);
Kind: static method of element
Returns: HTMLTableElement
- The table element.
Sorts a table using JavaScript. This appends click listeners to every TH in the table.
Param | Type | Description | |
---|---|---|---|
element | HTMLTableElement |
The table to sort | |
[cellVal] | sortTableCallback |
The callback function to run with the element to get the value of the cell. This is passed the cell ( | ) element, and the row ( |
Example
_$.sortTable(document.querySelector("table"));//Done.
Example
_$.sortTable(document.querySelector("table"), (i) => i.getAttribute("data-sort"));//Sorts the table by each cell's 'data-sort' attribute.
Sorts a table by a element.
Kind: static method of element
Returns: HTMLTableElement
- The table element.
Param | Type | Description | |
---|---|---|---|
th | HTMLTableElement |
The table header ( | element) to sort with. |
ascending | Boolean |
Whether to sort the table ascending or descending. |
Example
//Note that this example pretty much recreates the _$ sortTable function, which is much more cross browser and good than this recreation. If sorting a whole table please use that.
_$.each(document.querySelectorAll("#table th"), (th) => {
th.addEventListener("click", () => {
//Add event listeners to each of them.
_$.sortTableBy(th, th.asc = !th.asc);//Toggle the "asc" attribute on the th.
});
})
Adds the specified styles to the element specified.
Kind: static method of element
Returns: Object
- the style object of the element.
Param | Type | Description |
---|---|---|
el | Element |
The element to add the styles to. |
styles | Object |
An object that represents the styles to be added. (camelCased) |
Example
_$.addStyles(document.documentElement, {backgroundColor: "#101010", color: "white"})
Creates an HTML element from the specified string.
Kind: static method of element
Returns: Element
- The created element.
Param | Type | Description |
---|---|---|
str | String |
The string of the HTML element to create. |
Example
//Returns a div with an id of "id_here" and innerText of "Testing!"
_$.createElement("<div id='id_here'>Testing!</div>");
Gets a property from the computed style of an element.
Kind: static method of element
Returns: String
- The computed style property for the element specified.
Param | Type | Description |
---|---|---|
el | Element |
The element whose styles to get. |
prop | String |
The css-property value to get of the styles. |
Example
console.log(_$.compStyle(document.documentElement, "background-color")); // logs the background colour of the document
Get the siblings of a DOM element
Kind: static method of element
Returns: Array.<Element>
- The array of sibling elements.
Param | Type | Description |
---|---|---|
n | Element |
The element to get siblings of |
Example
_$.each(_$.elementSiblings(document.querySelectorAll("li")), (el) => el.style.backgroundColor = 'white');
// Make every sibling of the first list item's background color white.
Disables right click on the element specified.
Kind: static method of element
Returns: HTMLElement
- The HTML element that now has right click disabled.
Param | Type | Description |
---|---|---|
el | HTMLElement |
The element to disable right click on. |
Example
_$.disableRightClick(document.documentElement)
Converts all of the styles for an element to inline CSS. This is nice for production sites because it means that they will look the same on all browsers. (Because it uses computed style.)
Kind: static method of element
Returns: Object
- The computed styles of the element.
Param | Type | Description |
---|---|---|
el | Element |
The element to convert. |
Example
_$.inlineCSS(document.querySelector("h1")); // Converts the styles for the <h1> element to inline using the style="___" attribute
element.exports.attributes(el) ⇒ Array.<object>
Returns an array of objects representing the attributes of a passed element.
Kind: static method of element
Returns: Array.<object>
- The array of objects representing the attributes
Param | Type | Description |
---|---|---|
el | Element |
The HMTL element to get attributes from. |
Example
// Say the <html> tag of the document was "<html style='background-color: #101010;'>", then the function below would log "style," to the console.
console.log(Object.keys(_$.attributes(document.documentElement).join(", "));
Observes the mutations of the html element specified.
Kind: static method of element
Returns: MutationObserver
- The mutation observer.
Param | Type | Description |
---|---|---|
element | Element |
The element to observe |
callback | function |
The callback function to run when a mutation happens. |
options | Object |
The options to use. |
Example
_$.observeMutations(document, console.log); // Logs all the mutations that happen to the console.
Tilts a specified element to point towards the specified position. Note that 0,0 is the center of the screen in coordinates.
Kind: static method of element
Returns: String
- The css transform string.
Param | Type | Default | Description |
---|---|---|---|
el | Element |
The element to tilt. | |
x | Number |
The x value of the mouse | |
y | Number |
The y value of the mouse | |
[perspective] | Number |
500 |
The perspective |
[amount] | Number |
30 |
The amount to tilt. |
Example
// Tilt the first image in the document whenever the mouse moves.
let el = document.querySelector("img");
el.onmousemove = (e) => {
let x = e.layerX;
let y = e.layerY
_$.tilt(el, x, y);
}
Enters fullscreen on an element.
Kind: static method of element
Returns: Promise
- A promise resolved when fullscreen is entered.
Param | Type | Description |
---|---|---|
element | Element |
The element to enter full screen with. |
Example
_$.fullScreen(document.documentElement); // Make the window fullscreen
Replaces the selected text in a contentEditable div with the HTML given.
Kind: static method of element
Returns: Range
- A range representing the users selection.
Param | Type | Description |
---|---|---|
replacementText | String |
The replacement HTML to replace with. |
Example
// Add a simple contenteditable div to the page.
document.appendChild(_$.createElement("<div contenteditable id='text'></div>"));
_$.replaceSelection("<b>BOLD TEXT</b> <small>Bijou is awesome</small><h1>You need to use it</h1>");
//Replaces the selection! =)
event : object
The event namespace of Bijou.js, containing functions to listen and dispatch events, such as scroll stop, outside click, and multiple event listeners.
Kind: global namespace
- event :
object
- .exports.waitUntil(condition, [wait]) ⇒
Promise
- .exports.onOutsideClick(element, callback) ⇒
Promise
- .exports.onScrollStop([element], callback, [time]) ⇒
Promise
- .exports.hub() ⇒
Object
- .exports.dispatch(type, args, [target]) ⇒
Event
- .exports.waitUntil(condition, [wait]) ⇒
Waits until a condition is met then resolves a promise.
Kind: static method of event
Returns: Promise
- A promise resolved when the condition returned by the function is true.
Param | Type | Default | Description |
---|---|---|---|
condition | function |
The function which returns true when the condition is met | |
[wait] | Number |
Infinity |
The wait time in milliseconds to cancel the function and reject the promise. |
Example
//Waits until the current second of the current minute is 10.
_$.waitUntil(() => new Date().getSeconds === 10).then(() => console.log("Done"))
Example
//This DOES NOT work
_$.waitUntil(() => Date.now() === Date.now() + 100);
//Because it is evaluated many times, and the current date, is never ahead of itself. Therefore in this case the function will run infinitely.
//To fix this problem and cancel the function after a certain amount of time,
//you can pass another argument to the function
_$.waitUntil(() => false, 10000);//Waits 10 seconds, because the function always returns false.
Returns the callback when a a click is registered outside the selected element
Kind: static method of event
Returns: Promise
- A promise that is resolved when the user clicks outside the specified element.
Param | Type | Description |
---|---|---|
element | Element |
The element to use as the outsideclick element. |
callback | function |
The function to run when a click is registered outside the specified element. |
Example
_$.onOutsideClick(document.querySelector("div"), () => {alert("You clicked outside the DIV!")});
Returns the callback when the user stops scrolling.
Kind: static method of event
Returns: Promise
- Returns a promise that is resolved when the user stops scrolling.
Param | Type | Default | Description |
---|---|---|---|
[element] | HTMLElement |
window |
The HTML element to listen on for scroll stop. |
callback | function |
The callback to call when the user stops scrolling. | |
[time] | Number |
150 |
Example
_$.onScrollStop(() => {alert("You stopped scrolling!")})
A lot like socket.io, this allows emit, on and off handlers. (Note that this is local, only your computer sends and recieves your data. Still useful though)
Kind: static method of event
Returns: Object
- The object with the emit, on and off functions in it.
Example
let thing = _$.hub();
// Log any new data to the console
thing.on("data", (data) => console.log(data));
setTimeout(() => {
thing.emit("data", "Yay! Some data!!"); // Logs "Yay! Some data!!" to the console after 2 seconds.
}, 2000)
Dispatches an event of the type specified with custom arguments.
Kind: static method of event
Returns: Event
- The event object.
Param | Type | Default | Description |
---|---|---|---|
type | String |
The type of event to dispatch (E.g. "mousemove") | |
args | Object |
The argument representing the event, e.g. {clientX: 100, clientY: 150} | |
[target] | EventTarget |
window |
What to dispatch the event to. |
Example
//Dispatch a custom mouse move event to the window.
_$.dispatch("mousemove", {clientX: 100, clientY: 150, target: document.documentElement}, window);
function : object
The function namespace of Bijou.js, containing functions to work with functions themselves, such as debouncing, throttling, memoizing, currying, timing and much more!
Kind: global namespace
- function :
object
- .exports.juxt(...fns) ⇒
juxtCallback
- .exports.sleep(ms) ⇒
Promise
- .exports.limitArgs(fn, n) ⇒
function
- .exports.fastestFunction(fns, [iterations]) ⇒
Number
- .exports.spread(fn) ⇒
spreadCallback
- .exports.memoize(fn) ⇒
function
- .exports.composeFunction(...functions) ⇒
function
- .exports.curryFunction(fn, [arity]) ⇒
function
- .exports.isAsync(val) ⇒
Boolean
- .exports.timeFunction(fn, [name]) ⇒
Object
- .exports.throttle(func, options, wait) ⇒
function
- .exports.debounce(func, wait, [immediate]) ⇒
function
- .exports.runAsync(fn) ⇒
Promise
- .exports.juxt(...fns) ⇒
function.exports.juxt(...fns) ⇒ juxtCallback
Runs a list of functions with a list of arguments.
Kind: static method of function
Returns: juxtCallback
- The function to run with the args.
Param | Type | Description |
---|---|---|
...fns | function |
The functions to call. |
Example
//It returns an array of outputs, each item in the base array is the output of one function, and each item in that array is the output for each argument.
_$.juxt(
x => x + 1,
x => x - 1,
x => x * 10
)(1, 2, 3); // [[2, 3, 4], [0, 1, 2], [10, 20, 30]]
Returns a promise after a specified number of milliseconds.
Kind: static method of function
Param | Type | Description |
---|---|---|
ms | Number |
The milliseconds to sleep. |
Example
(async () => {
while (true){
document.body.innerHTML = (await _$.getJSON("https://time.jsontest.com")).time
await _$.sleep(60000);//Wait one minute then loop.
}
})
function.exports.limitArgs(fn, n) ⇒ function
Limits the arguments that a given function takes to only the 1st n arguments.
Kind: static method of function
Returns: function
- The new function that only takes the 1st n arguments.
Param | Type | Description |
---|---|---|
fn | function |
The function to call. |
n | Number |
The number of arguments to accept. |
Example
//Now console can only log one item. How utterly useless but explanatory at the same time!
console.log = _$.limitArgs(console.log, 1);
Returns the index of the fastest function in an array of functions.
Kind: static method of function
Returns: Number
- The index of the fastest function in the array.
Param | Type | Default | Description |
---|---|---|---|
fns | Array.<function()> |
The array of functions to execute. | |
[iterations] | Number |
1000 |
How many times to execute the functions. (More is more reliable but takes longer.) |
Example
_$.fastestFunction([_$.uuid, () => _$.syntaxHighlight("<h1>Hello world</h1>", "html")]);//0, the first function.
function.exports.spread(fn) ⇒ spreadCallback
Uses an array of arguments to make a function based on the one inputted.
Kind: static method of function
Param | Type | Description |
---|---|---|
fn | function |
The function to use |
Example
var say = _$.spread(function(who, what) {
return who + ' says ' + what;
});
say(["Fred", "hi"]);//"Fred says hi"
function.exports.memoize(fn) ⇒ function
Memoizes a function, basically caching the result of past operations so that if the exact same thing is called again it will return the same value instantly.
Kind: static method of function
Returns: function
- The memoized function.
Param | Type | Description |
---|---|---|
fn | function |
The function to memoize. |
Example
let uuid = _$.memoize(() => _$.uuid()); // uuid will always return the same uuid. (Note that _$.uuid is already very fast - it can generate up to 10 million values in 20 seconds.)
function.exports.composeFunction(...functions) ⇒ function
Composes two functions together. Read more here: https://www.codementor.io/@michelre/use-function-composition-in-javascript-gkmxos5mj
Kind: static method of function
Returns: function
- The composed function.
Param | Type | Description |
---|---|---|
...functions | function |
The functions to be composed. |
Example
const add2 = (x) => x + 2;
const multiply2 = (x) => x * 2;
console.log(_$.composeFunction(add2, multiply2)(3)) // 8 - i.e 3 * 2 + 2
function.exports.curryFunction(fn, [arity]) ⇒ function
Returns the curried version of a function. Read more here: https://medium.com/@abitoprakash/implementing-a-curry-function-in-javascript-6a249dbcb1bb
Kind: static method of function
Returns: function
- The curried version of the function.
Param | Type | Default | Description |
---|---|---|---|
fn | function |
The function to curry. | |
[arity] | Number |
fn.length |
The arity (number of params) of the function to curry. {...*} [args] Optional arguments to pass to the function being curried. |
Example
let fn = (x, y, z, w) => x * y * z * w;
console.log(_$.curryFunction(fn, 4, 5)(4)(3)(2)); // 120 i.e. 5 * 4 * 3 * 2
Returns if the given function is async or not.
Kind: static method of function
Returns: Boolean
- True if the function is async and false if not.
Param | Type | Description |
---|---|---|
val | function |
The function to test. |
Example
const asyncFn = async (x) => x ** 3; // It's a silly function, but a good example
console.log(_$.isAsync(asyncFn)); // true
Times the function passed.
Kind: static method of function
Returns: Object
- An object with "time" and "function" properties, time being time in milliseconds, and function being the original function passed.
Param | Type | Default | Description |
---|---|---|---|
fn | function |
The function to run and time. | |
[name] | String |
_$ function timer |
The name of the timer |
Example
// Times how long it took the user to enter their name.
_$.timeFunction(() => prompt("What's your name?"));
function.exports.throttle(func, options, wait) ⇒ function
Only runs the input function at MAX with the delay specified.
Kind: static method of function
Returns: function
- The throttled function
Param | Type | Description |
---|---|---|
func | function |
The function to run. |
options | Object.<Boolean> |
The options. |
wait | Number |
The number of milliseconds to wait. |
Example
const alert_function = _$.throttle(() => {alert("hello")}, 5000)
setInterval(alert_function, 1)
function.exports.debounce(func, wait, [immediate]) ⇒ function
Debounces a function so that it only runs after it has not been called for a certain amount of time.
Kind: static method of function
Returns: function
- The debounced function.
Param | Type | Default | Description |
---|---|---|---|
func | function |
The function to throttle. | |
wait | Number |
The milliseconds to wait between executions. | |
[immediate] | Boolean |
false |
Whether or not to run immediately, or after a group of executions. |
Example
window.addEventListener("keyup", _$.debounce(expensiveFunction, 100));//Run the function expensiveFunction at most every 100ms.
Runs a function asynchronously in a web worker.
Kind: static method of function
Returns: Promise
- A promise that resolves into the return value of the function.
Param | Type | Description |
---|---|---|
fn | function |
The function to run |
Example
_$.runAsync(() => "hello world").then(console.log); // "hello world"
math : object
The math namespace of Bijou.js, containing functions to validate credit card numbers, animate with JavaScript, generate unique id's and much more!
Kind: global namespace
- math :
object
- .ease :
object
- .exports.gcd(...arr) ⇒
Number
- .exports.round(number, amount) ⇒
Number
- .exports.equals(a, b)
- .exports.isPrime(num) ⇒
boolean
- .exports.factorial(n) ⇒
Number
- .exports.luhnCheck(num)
- .exports.animate(start, end, duration, callback, [interval], [num]) ⇒
Number
- .exports.range(start, end) ⇒
Array.<Number>
- .exports.uuid([seed]) ⇒
String
- .exports.primesTo(num) ⇒
Array.<Number>
- .exports.random(min, max, [round], [seed]) ⇒
Number
- .exports.seedRandom(seed) ⇒
Number
- .exports.formatNumber(n) ⇒
String
- .ease :
math.ease : object
Easing functions
Kind: static namespace of math
Example
console.log(_$.ease.easeInOutQuad(.3)); // 0.18 - the eased point of about 1/3 along the animation.
Gets the greatest common divisor of a list of numbers.
Kind: static method of math
Returns: Number
- The greatest common divisor
Param | Type | Description |
---|---|---|
...arr | Number |
The numbers to compare |
Example
_$.gcd(12, 4, 8);//Returns 4
Rounds a number.
Kind: static method of math
Returns: Number
- The rounded number
Param | Type | Description |
---|---|---|
number | Number |
The number to round. |
amount | Number |
An optional multiple to round it to. |
Example
console.log(_$.round(14, 10));//Logs 10 to the console, as 14 rounded to the nearest 10 is 10.
Example
console.log(_$.round(Math.PI));//Logs 3 to the console.
Tests if two things are equal, like "thing === thing2" but it also works for dates and objects.
Kind: static method of math
Param | Type | Description |
---|---|---|
a | * |
The first thing to test |
b | * |
The second thing to test |
Example
console.assert(new Date() === new Date());//Not equal
console.assert(_$.equals(new Date(), new Date()));//Equal!
Example
console.assert({thing: "Thing!"} === {thing: "Thing!"});//Not equal;
console.assert(_$.equals({thing: "Thing!"}, {thing: "Thing!"}))
Tests if a given number is prime.
Kind: static method of math
Returns: boolean
- Whether the number is prime
Param | Type | Description |
---|---|---|
num | Number |
The number to test. |
Example
_$.isPrime(11);//True
_$.isPrime(10);//False
Gets the factorial of a number given.
Kind: static method of math
Param | Type | Description |
---|---|---|
n | Number |
The number to get the factorial of. |
Example
_$.factorial(3);//6
Performs the Luhn Check on a number, which is used to validate credit card numbers, IMEI numbers, National Provider Identifier numbers in the United States, Canadian Social Insurance Numbers, Israeli ID Numbers, South African ID Numbers, Greek Social Security Numbers (ΑΜΚΑ), and survey codes appearing on McDonald's, Taco Bell, and Tractor Supply Co. receipts.
Kind: static method of math
Param | Type | Description |
---|---|---|
num | Number | String |
The number or string to check on. |
Example
- _$.luhnCheck('4485275742308327'); // true
- _$.luhnCheck(6011329933655299); // false
- _$.luhnCheck(123456789); // false
Animates a number from one value to another.
Kind: static method of math
Returns: Number
- A unique number representing the setInterval loop used in the animation.
Param | Type | Default | Description |
---|---|---|---|
start | Number |
The initial value of the number in the animation | |
end | Number |
The final value of the number in the animation | |
duration | Number |
The duration of the animation in milliseconds | |
callback | animateCallback |
The callback function to run with the number and the percentage (Between 0 and 1) of the animation. | |
[interval] | Number |
20 |
The amount of time to wait between frames in milliseconds. |
[num] | animateNumCallback |
(num)=>num |
The function to run to manipulate the timing of the animation, for example setting this to (current_number) => current_number **2 would make a simple ease in function. (The value received by this is also between 0 and 1, feel free to use some stuff from _$.ease.FUNCTION_HERE(current_number) to incorporate easy easing!) |
Example
Animates from 50 to 100 over the course of 3 seconds, updating every half second, and writing the current value to the document body.
_$.animate(50,100, 3000, (e) => document.body.innerHTML = (Math.round(e)), 500, (num) => _$.ease.easeInOutQuart(num));
Returns an array of the whole numbers (inclusive) between the numbers specified.
Kind: static method of math
Returns: Array.<Number>
- An array of whole numbers (inclusive) between the numbers specified.
Param | Type | Description |
---|---|---|
start | Number |
The start value of the array. |
end | Number |
The end value of the array. |
Example
console.log(_$.range(-2, 1)); // [-2, -1, 0, 1]
Generates a unique ID from a seed
Kind: static method of math
Returns: String
- The UUID
Param | Type | Default | Description |
---|---|---|---|
[seed] | Number | String |
Math.random() |
The seed to use. |
Example
console.log(_$.uuid()); // e.g. "863d0193-863d-0193-863d-0193863d0193"
Gives an array of prime numbers up to a certain one.
Kind: static method of math
Returns: Array.<Number>
- Returns an array of prime numbers up to the given number.
Param | Type | Description |
---|---|---|
num | Number |
The number to give primes to. |
Example
console.log(_$.primesTo(10)); // [2, 3, 5, 7]
Generates a random number between a minimum and maximum number
Kind: static method of math
Returns: Number
- The random number generated.
Param | Type | Default | Description |
---|---|---|---|
min | Number |
The lowest number that the random value generated can be. | |
max | Number |
The highest number that the random value generated can be. | |
[round] | Boolean |
true |
Weather to round the generated number |
[seed] | Number |
Math.random() |
The seed for the generated number (Between 0 and 1). |
Example
console.log(_$.random(0, 100)); // e.g. 47
Get a random number from a seed.
Kind: static method of math
Returns: Number
- The random number from the seed.
Param | Type | Description |
---|---|---|
seed | number |
The seed to use to generate random numbers. |
Example
console.log(_$.seedRandom(13)); // 0.5663226493634284
Formats a number by adding commas to it.
Kind: static method of math
Returns: String
- The formatted string representation of the number.
Param | Type | Description |
---|---|---|
n | Number |
The number to format. |
Example
console.log(_$.formatNumber(100000000)); // "100,000,000"
object : object
The object namespace of Bijou.js, for stuff like flattening nested objects, cloning, merging, and even listening to changes to objects!
Kind: global namespace
- object :
object
- .exports.flattenObj(o) ⇒
Object
- .exports.clone(src) ⇒
Object
- .exports.listen(obj, [getCallback], [setCallback]) ⇒
Proxy
- .exports.merge(obj1, obj2) ⇒
Object
- .exports.mapObjectKeys(obj, fn) ⇒
Object
- .exports.mapObjectValues(obj, fn) ⇒
Object
- .exports.formToObject(form) ⇒
Object
- .exports.sortObj(obj) ⇒
Object
- .exports.deepGet(key, object) ⇒
*
- .deepSet(path, value, obj) ⇒
Object
- .exports.flattenObj(o) ⇒
Flattens an object recursively into one.
Kind: static method of object
Returns: Object
- The flattened object.
Param | Type | Description |
---|---|---|
o | Object |
The object to flatten |
Example
_$.flattenObj({
hello: "world",
another: {
nested: "Value",
anotherNestedValue: {
"something": "A value"
},
"more Values!!": "lol"
}
}); // { hello: "world", nested: "Value", something: "A value", more Values!!: "lol" }
Deep clones an object (or anything else, like an array or string)
Kind: static method of object
Returns: Object
- The output cloned object.
Param | Type | Description |
---|---|---|
src | Object | Array | String |
The object to clone. |
Example
let obj = { hello: { puny: "earthlings" }};
let cloned = _$.clone(obj); // cloned can be operated on without changing obj
Kind: static method of object
Returns: Proxy
- A proxy object that behaves like any other object but listens to changes.
Param | Type | Default | Description |
---|---|---|---|
obj | Object |
The object to listen to. | |
[getCallback] | listenCallback |
()=>null |
The callback function to run when a value is set, with the arguments, key (the key changed) and value (the new value of the key). |
[setCallback] | listenCallback |
()=>null |
The callback function to run when a value is gotten, with the arguments, key (the key got) and value (the value of the key). |
Example
let obj = {something: "This is part of the object", anotherThing: "This is another!"};
obj = _$.listen(obj, (k, v) => console.log(`set ${k} to ${v}`), () => console.log("Gotten"));
obj.something; // Logs "Gotten" to the console!
obj.anotherThing = "Hello world!"; // Logs "Set abotherThing to Hello world!" to the console!
Merges two objects into one. Note that object 2 properties will overwrite those of object 2.
Kind: static method of object
Returns: Object
- The merged object.
Param | Type | Description |
---|---|---|
obj1 | Object |
The 1st object to merge |
obj2 | Object |
The 2nd object to merge. |
Example
console.log(_$.merge({hello: "Hello!!"}, {world: " World", world: " Earthlings"})); // {hello: "Hello!!", world: " Earthlings"}
Maps the keys of an object.
Kind: static method of object
Returns: Object
- The new Object.
Param | Type | Description |
---|---|---|
obj | Object |
The object to map. |
fn | mapObjKeysCallback |
The function to run (passed the current key of the object) which returns the new value from that key. |
Example
_$.mapObjectKeys({something: "A value", anotherThing: "Another value!"}, (key) => key.toUpperCase());
//Returns {SOMETHING: "A value", ANOTHERTHING: "Another value!"}
Maps an object's values.
Kind: static method of object
Returns: Object
- The mapped object.
Param | Type | Description |
---|---|---|
obj | Object |
The object to map the values of. |
fn | mapObjValuesCallback |
The callback function to use. |
Example
console.log(_$.mapObjectValues({ hello: "World", bijou: "is GREAT" }, val => val.toLowerCase())); // { hello: "world", bijou: "is great" }
Converts a form to an Object.
Kind: static method of object
Returns: Object
- The object of form data (The keys are the "name" attributes of the form inputs and the values are the value attributes of the form data.)
Param | Type | Description |
---|---|---|
form | HTMLFormElement |
The form element. |
Example
html:
<form id="form">
<input name"input" />
<input name="input2" />
</form>
js: const form = document.getElementById("form"); console.log(_$.formToObject(form)); // e.g. { input: "hello", input2: "world" }
Sorts an object alphabetically by its keys.
Kind: static method of object
Returns: Object
- The sorted object.
Param | Type | Description |
---|---|---|
obj | Object |
The object to sort. |
Example
let object = _$.sortObj({testing: "A value", anotherThing: "Another value!"});
// The object is now {anotherThing: "Another value!", testing: "A value"}
Retrieves a deeply nested value from an object given a key.
Kind: static method of object
Returns: *
- The retrieved value or null if the key does not exist.
Param | Type | Description |
---|---|---|
key | string | Array.<string> |
The key (if string will split by '.') or an array of keys to access the value. |
object | object |
The object to retrieve the value from. |
Example
_$.deepGet("hello.world", {hello: {world: "Hello World!"}}); // "Hello World!"
A function that sets a value at a given path in an object by creating nested objects along the way for any undefined keys in the path, while keeping the original object immutable.
Kind: static method of object
Returns: Object
- A new object with the updated value at the given path
Param | Type | Description |
---|---|---|
path | string | Array.<string> |
The path to set the value at, can be either a string or an array of strings |
value | any |
The value to set at the given path |
obj | Object |
The object to set the value in |
Example
const obj = { a: { b: { c: 1 } } };
const newObj = deepSet("a.b.d", 2, obj);
console.log(newObj);
// Output: { a: { b: { c: 1, d: 2 } } } }
string : object
The string namespace of Bijou.js, containing functions to map strings, remove accents from strings, speak text, syntax highlight JS, HTML and CSS and much more!
Kind: global namespace
- string :
object
- .exports.jaroDistance(a, b) ⇒
Number
- .exports.prefixCSS(prop) ⇒
String
- .exports.parseCookie(str)
- .exports.hash(val) ⇒
Promise
- .exports.forTemplateLiteral(arr, callback) ⇒
String
- .exports.mapString(str, fn)
- .exports.deburr(str) ⇒
String
- .exports.removeTags(html) ⇒
String
- .exports.speak(text, [lang], [volume], [voice], [pitch], [volume], [rate]) ⇒
SpeechSynthesisUtterance
- .exports.widows(text) ⇒
String
- .exports.unCamelCase(str) ⇒
String
- .exports.camelCase(str) ⇒
String
- .exports.scrambleString(str) ⇒
String
- .exports.hashString(str, [seed]) ⇒
Number
- .exports.editDistance(a, b) ⇒
Number
- .exports.byteSize(str) ⇒
Number
- .exports.replaceMultiple(text, replace) ⇒
String
- .exports.urlQuery(query, [url]) ⇒
String
- .exports.sanitize(html, [tags], [attributes]) ⇒
String
- .exports.markdownToHTML(src) ⇒
String
- .exports.syllables(word) ⇒
Number
- .exports.titleCase(str) ⇒
String
- .exports.capitalize(str) ⇒
String
- .exports.replaceBetween(string, start, end, what) ⇒
String
- .exports.escapeHTML(str) ⇒
String
- .exports.unescapeHTML(str) ⇒
String
- .exports.previousPage() ⇒
String
- .exports.processList(list) ⇒
Array
- .exports.jaroDistance(a, b) ⇒
Compares two strings using the Jaro-Winkler Distance algorithm.
Kind: static method of string
Returns: Number
- A number representing how similar the two strings are, where 1 is exactly the same and 0 is totally different
Param | Type | Description |
---|---|---|
a | String |
The first string |
b | String |
The second string |
Example
_$.jaroDistance('test', 'tes');//0.9416666666666667
Prefixes the given CSS property for the current browser.
Kind: static method of string
Returns: String
- The prefixed value (camelCased, instead of css-case, so mozAppearance instead of -moz-appearance).
Param | Type | Description |
---|---|---|
prop | String |
The property to prefix. |
Example
document.body.style[_$.prefix("appearance")] = "hidden";//Sets the document body's appearance property to "hidden".
Parses a cookie string into object and value pairs.
Kind: static method of string
Param | Type | Description |
---|---|---|
str | String |
The string to parse. |
Example
_$.parseCookie("foo=bar; something=hello%20world");//Returns {foo: "bar", something: "hello world"};
Hashes a string using the crypto api.
Kind: static method of string
Returns: Promise
- A promise that resolves into the hashed string.
Param | Type | Description |
---|---|---|
val | String |
The string to hash |
Example
_$.hash(
JSON.stringify({ a: 'a', b: [1, 2, 3, 4], foo: { c: 'bar' } })
).then(console.log);
// '04aa106279f5977f59f9067fa9712afc4aedc6f5862a8defc34552d8c7206393'
Lets you use a for loop in template literals.
Kind: static method of string
Returns: String
- String that has been for looped
Param | Type | Description |
---|---|---|
arr | Array |
The array to loop. |
callback | mapCallback |
The callback to return strings |
Example
console.log(`Things: ${_$.forTemplateLiteral(["apple", "orange"], (item, i) => {return `an ${item}`})}`)
// "Things: an apple an orange
Maps a string like an array.
Kind: static method of string
Param | Type | Description |
---|---|---|
str | String |
The string to map |
fn | mapCallback |
The callback function to run to map the string. |
Example
_$.mapString("Hello world", (e) => e.toUpperCase());//Returns "HELLO WORLD"
Removes the accents from a string.
Kind: static method of string
Returns: String
- The string without accents.
Param | Type | Description |
---|---|---|
str | String |
The string to use. |
Example
console.log(_$.decurr("déjà vu")); // "deja vu"
Removes tags from the HTML string specified.
Kind: static method of string
Returns: String
- THe string of HTML without the tags.
Param | Type | Description |
---|---|---|
html | String |
The string of HTML to remove tags from. |
Example
console.log(_$.removeTags("<div>Hello</div>")); // "Hello"
string.exports.speak(text, [lang], [volume], [voice], [pitch], [volume], [rate]) ⇒ SpeechSynthesisUtterance
Speaks the text given.
Kind: static method of string
Returns: SpeechSynthesisUtterance
- The SpeechSynthesisUtterance
Param | Type | Default | Description |
---|---|---|---|
text | String |
The text to split | |
[lang] | String |
en-US |
The language to speak with. |
[volume] | Number |
1 |
The volume |
[voice] | String | Number |
1 |
The voice to use. |
[pitch] | Number |
1 |
The pitch |
[volume] | Number |
1 |
The volume |
[rate] | Number |
1 |
The speed. |
Example
_$.speak("Bijou is awesome!"); // speaks "Bijou is awesome!"
Returns the last space in the string given replaced with " "
Kind: static method of string
Returns: String
- The replaced string.
Param | Type | Description |
---|---|---|
text | String |
The string to replace |
Example
document.querySelector("h1").innerHTML = _$.widows(document.querySelector("h1").innerHTML);
//Replaces the last space in the <h1>'s innerText with " "
Undoes camelCase.
Kind: static method of string
Returns: String
- The string of unCamelCased code.
Param | Type | Description |
---|---|---|
str | String |
The string to unCamelCase. |
Example
console.log(_$.unCamelCase("helloWorld")); // "Hello World"
camelCases a string.
Kind: static method of string
Returns: String
- The camelCased string.
Param | Type | Description |
---|---|---|
str | String |
The string of non-camelCased text. |
Example
console.log(_$.camelCase("Hello world")); // "helloWorld"
Scrambles the order of characters in a string. Thanks to @\Touchcreator for the suggestion for this.
Kind: static method of string
Returns: String
- The scrambled text.
Param | Type | Description |
---|---|---|
str | String |
The string to be scrambled |
Example
console.log(_$.scrambleString("Hello world")); // e.g. "owllH rdloe"
Hashes a string to a unique integer (This cannot be decrypted easily).
Kind: static method of string
Returns: Number
- The hashed string.
Param | Type | Default | Description |
---|---|---|---|
str | String |
The String to hash. | |
[seed] | Number |
0 |
The seed of the hash. |
Example
console.log(_$.hashString("Hello world")); // 3494146707865688
Gets the edit distance between two strings.
Kind: static method of string
Returns: Number
- The edit distance between two strings
Param | Type | Description |
---|---|---|
a | String |
The first string |
b | String |
The seconds string |
Example
console.log(_$.editDistance("hello", "Hello")); // 1
Returns the size of a string in bytes.
Kind: static method of string
Returns: Number
- The byte size of the string.
Param | Type |
---|---|
str | String |
Example
console.log(_$.byteSize("Hello world")); 11
Finds and replace multiple values with multiple other values.
Kind: static method of string
Returns: String
- The replaced string
Param | Type | Description |
---|---|---|
text | String |
The text to operate the replace on. |
replace | Object |
The object with find and replace values. |
Example
_$.replaceMultiple("I have a cat, a dog, and a goat.", {dog: "cat", goat: "dog", cat: "goat"});//Returns "I have a goat, a cat and a dog"
Returns the queries from a given url (Or just the current url)
Kind: static method of string
Returns: String
- The url query
Param | Type | Default | Description |
---|---|---|---|
query | String |
The url query to get. | |
[url] | String |
window.location.href |
The url to find the query in. (By default this is the current url) |
Example
// If the website adress of the current page was "https://example.com/?q=hello&hello=world"
console.log(_$.urlQuery("hello")); // "world"
// Or on a custom url:
console.log(_$.urlQuery("q", "https://google.com/search?q=something")); // "something"
Sanitizes an HTML string. It is quite possible that this is not production ready so use with caution. (I did my best though >=( )
Kind: static method of string
Returns: String
- The sanitized HTML string.
Param | Type | Description |
---|---|---|
html | String |
The input string to sanitize. |
[tags] | Array |
The array of tags to allow, there is a default list though. |
[attributes] | Array |
The array of attributes to allow. By default only allows "href" and "src" attributes. |
Example
console.log(_$.sanitizeHTML("<script>alert('hello')></script><b>A normal tag</b>")); // "<b>A normal tag</b>"
Converts markdown to HTML.
Kind: static method of string
Returns: String
- The string of HTML converted from the markdown input.
Param | Type | Description |
---|---|---|
src | String |
The markdown to convert to HTML. |
Example
console.log(_$.markdownToHTML("_Italic text_, **bold text**")); // "<em>Italic text</em>, <b>bold text</b>"
Counts the syllables in the word given.
Kind: static method of string
Returns: Number
- The number of syllables in the specified word.
Param | Type | Description |
---|---|---|
word | String |
The word to count syllables of |
Example
console.log(_$.syllables("Hello")); // 2
Converts a string to title case
Kind: static method of string
Returns: String
- The string in title case.
Param | Type | Description |
---|---|---|
str | String |
The string to convert to title case. |
Example
_$.titleCase("hello world");//Returns "Hello World"
Capitalizes the first letter of the string
Kind: static method of string
Returns: String
- The capitalized string.
Param | Type | Description |
---|---|---|
str | String |
The string to capitalize. |
Example
console.log(_$.capitalize("hello world")); // "Hello world"
Replaces between two indexes of a string.
Kind: static method of string
Returns: String
- The replaced string
Param | Type | Description |
---|---|---|
string | String |
The string to operate on. |
start | Number |
The start index |
end | Number |
The end index |
what | String |
What to replace with. |
Example
console.log(_$.replaceBetween("Hello world", 6, 11, "earthlings")); // "Hello earthlings"
Escapes a string of HTML
Kind: static method of string
Returns: String
- The escaped HTML.
Param | Type | Description |
---|---|---|
str | String |
The string of HTML to escape. |
Example
console.log(_$.escapeHTML("<div>")); // "<div>"
Unescapes a string of HTML
Kind: static method of string
Returns: String
- The unescaped HTML.
Param | Type | Description |
---|---|---|
str | String |
The string of HTML to unescape. |
Example
console.log(_$.unescapeHTML("<div>")); // "<div>"
Returns the previous page that the user visited.
Kind: static method of string
Returns: String
- The url of the previous page the user visited.
Example
console.log(_$.previousPage()); // e.g. "https://bijou.js.org"
Processes a markdown list by extracting the content of each list item and returning an array of objects with the content and its index in the list.
Kind: static method of string
Returns: Array
- - An array of objects with the content and its index in the list
Param | Type | Description |
---|---|---|
list | string |
the list to be processed |
Example
const list = '- Item 1\n- Item 2\n- Item 3';
const processedList = processList(list);
// Returns:
// [
// { content: 'Item 1', idx: 0 },
// { content: 'Item 2', idx: 1 },
// { content: 'Item 3', idx: 2 }
// ]
utility : object
The utility namespace of Bijou.js, containing utilities to do many things, such as playing audio, fetching JSON, preloading images and much more.
Kind: global namespace
- utility :
object
- .exports.createStream ⇒
MediaStream
- .exports.manipulate ⇒
Promise.<MediaStreamTrack>
- .exports.tag ⇒
function
- .exports.request ⇒
Object
|Response
|String
|Image
- .preload :
object
- .cookies ⇒
function
- .regex ⇒
Regexp
- .exports.resize(url, [width], [height]) ⇒
Promise.<string>
- .exports.htmlToImage(html, [opts]) ⇒
Promise.<string>
- .callbackify(fn) ⇒
function
- .promisify(fn, [argIndex]) ⇒
function
- .exports.race(fn, timeout, calcelCb) ⇒
Promise
- .exports.typeOf(e, lowerCase)
- .exports.injectCSS(css) ⇒
HTMLElement
- .exports.mobileOrDesktop() ⇒
String
- .exports.playSection(audioObj, start, stop) ⇒
Audio
- .exports.formatHTML(html) ⇒
String
- .exports.getJSON(url, callback) ⇒
Promise
- .exports.getHTML(url, callback) ⇒
Promise
- .exports.preloadImage(...urls) ⇒
Array.<Image>
- .exports.saveBlob(blob, [fileName]) ⇒
Blob
- .exports.requestInterval(fn, delay) ⇒
Object
- .exports.loadScript(url, callback) ⇒
Promise
- .exports.imageToData(url, callback) ⇒
Promise
- .exports.jsonToCsv(arr, columns, [delimiter]) ⇒
String
- .exports.arrayToCSV(arr, [delimiter]) ⇒
String
- .exports.notify(title, body, icon) ⇒
Promise
- .exports.copy(str) ⇒
String
- .exports.browser() ⇒
String
- .exports.serializeForm(form) ⇒
String
- .exports.soundex(s) ⇒
String
- .exports.createStream ⇒
Creates a MediaStream with all of the tracks passed.
Kind: static property of utility
Returns: MediaStream
- A MediaStream object which has all of the tracks passed.
Param | Type | Description |
---|---|---|
...tracks | MediaStreamTrack |
A list of the tracks to add to the new media stream. |
Example
//Combine video from screen share with audio from microphone
const audioStream = await navigator.mediaDevices.getUserMedia({audio: true});
//Get the audio track, streams can have more than one track.
const audioTrack = audioStream.getAudioTracks()[0];
//Do the same for video (get from screen share)
const videoStream = await navigator.mediaDevices.getDisplayMedia({video: true});
const videoTrack = videoStream.getVideoTracks()[0];
// Now use the _$.createStream function to create a new stream with the
// audio from the microphone and the video from the screen share.
const combinedStream = createStream(audioStream, videoStream);//Order doesn't matter, _$.createStream also accepts an array of streams.
Kind: static property of utility
Returns: Promise.<MediaStreamTrack>
- Returns a promise that resolves into a mediaStream with the original videoStream but manipulated by whatever the fn function returns (see example).
Param | Type | Description |
---|---|---|
videoTrack | MediaStreamTrack |
A video track to manipulate |
fn | manipulateVideoStreamFunction |
The function given to manipulate the video stream. |
Example
//Greenscreen effect
let video = document.createElement("video");
video.setAttribute("autoplay", true);
document.body.appendChild(video);
//Now the cool part
let videotrack = await navigator.mediaDevices.getUserMedia({video: true})
.then(stream => stream.getVideoTracks()[0]);
// Basically manipulate the video track using canvas, and for every color,
// if its green value is above 200 then make that pixel transparent.
// Creating a simple greenscreen effect.
video.srcObject = _$.createStream(
_$.manipulate(videotrack, (color) => {
if (color.green > 200){
//Simple greenscreen effect
color.alpha = 0;
}
return color;
})
)
utility.exports.tag ⇒ function
Creates a template literal tag. Read more here: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#tagged_templates
Kind: static property of utility
Returns: function
- A template literal tagging function, which returns a string.
Param | Type | Description |
---|---|---|
k | function |
The function to run on new (interpolated) text in the template literal. |
o | function |
The function to run on the normal text in the template literal. |
Example
let t = tag(_$.escapeHTML);
//Notice the "t" at the beginning of the template literal. (t`Some text`).
console.log(t`This will not be escaped <i>Italics!</i> ${"But this will, <i>Not italic</i>"}`)
Request a URL and get the data back in a specific format.
Kind: static property of utility
Param | Type | Default | Description |
---|---|---|---|
options | Object |
The options object | |
options.url | String |
The URL to fetch | |
options.body | Object | String | FormData |
The body of the request | |
[options.as] | String | Array.<String> |
"response" |
What to fetch the data as. A string that is one of ["response", "blob", "json", "dataurl", "text", "image", "html", "bloburl", "headers"], or an Array of multiple. If an array (e.g. ["text", "json"]) an object with {text: "{'some': 'json'}", json: {some: "json"}} will be returned |
[options.method] | String |
"GET" |
One of ["GET", "HEAD", "POST", "PUT", "DELETE", "CONNECT", "OPTIONS", "TRACE", "PATCH"] |
[options.options] | Object |
{} |
An options object that is passed to fetch(url, options). |
[options.headers] | Object |
{} |
Headers object to add to the request before sent |
[options.type] | Object | String |
"json" |
The type of the request payload. One of ["JSON", "urlencoded", "text", "formdata"] (not case sensitive). For urlencoded or JSON, pass an object as options.body, for text, pass a string, for formdata pass a FormData object, and for raw, pass anything. This is then added into fetch(url, {body: body}) |
[options.corsFallback] | Boolean |
true |
Whether to retry the request via a cors proxy if it fails |
[options.corsDomain] | String |
'https://cors.explosionscratc.repl.co/' |
The cors domain to use as a proxy |
[options.detectCors] | function |
({response, error}) => error |
|
[options.makeCorsUrl] | function |
(url, domain) => `${domain}${url.split("//")[1]}` |
The function which takes a URL and domain as an input and returns the altered URL to be retried with CORS. For example makeCors("https://google.com", "https://cors.explosionscratc.repl.co/") would return "https://cors.explosionscratc.repl.co/google.com" |
[options.timeout] | Number |
|
The timeout (in ms) before cancelling the request. If null than there will be no timeout handling. |
Example
let response = await _$.request({
url: "https://google.com",
as: ["html", "bloburl"],
timeout: 1000
})
// → {html: #document, bloburl: "blob:https://github.com/abc-def-ghi"}
utility.preload : object
preload links when hovering over them, to have no-refresh page navigation
Kind: static namespace of utility
utility.cookies ⇒ function
A set of functions to set and modify cookies.
Kind: static namespace of utility
Returns: function
- The function that the user wanted
Example
_$.cookies.setItem("a_cookie", "Hello world!", 1); // Set a_cookie to "Hello world" and have it expire in a day.
A collection of regular expressions to validate and get common things from a page
Kind: static namespace of utility
Returns: Regexp
- A regex
Example
if (_$.regex.email.test("email@gmail.com") alert("That is a valid email!")
utility.exports.resize(url, [width], [height]) ⇒ Promise.<string>
Resizes an image from a URL and returns a promise with it's data URL.
Kind: static method of utility
Returns: Promise.<string>
- A data URL of the resized image.
Param | Type | Default | Description |
---|---|---|---|
url | String |
The URL of the image to resize. | |
[width] | Number |
Natural width of the image |
The target width of the new image |
[height] | Number |
Natural width of the image |
The target height of the new image |
utility.exports.htmlToImage(html, [opts]) ⇒ Promise.<string>
Converts a string of HTML to an image (!!)
Kind: static method of utility
Returns: Promise.<string>
- A promise that resolves into the data URL string of the image.
Param | Type | Default | Description |
---|---|---|---|
html | String |
The HTML string to transform into an image | |
[opts] | Object.<string> |
{x: 0, y: 0, width: 300, height: 400} |
The object with options. |
[opts.x] | Number |
0 |
The x position of the text |
[opts.y] | Number |
0 |
The y position of the text |
[opts.width] | Number |
300 |
The width of the output image. |
[opts.height] | Number |
400 |
The height of the output image. |
utility.callbackify(fn) ⇒ function
Converts a function that returns a promise into a callback based function
Kind: static method of utility
Returns: function
- The callback based function.
Param | Type | Description |
---|---|---|
fn | function |
The function to 'callbackify'. |
Example
let getUUID = _$.callbackify((limit) =>
fetch(
`https://apis.explosionscratc.repl.co/uuid?limit=1${escape(parseInt(limit))}`
).then(res => res.json()));
getUUID(console.log, 500);//Get 500 uuid's from my API and log them to the console.
utility.promisify(fn, [argIndex]) ⇒ function
Promisifies a function by converting a callback based function to return a promise. (assuming argIndex = -1)
Kind: static method of utility
Returns: function
- The function promisified (now returns a promise).
Param | Type | Default | Description |
---|---|---|---|
fn | function |
The function to run. | |
[argIndex] | Number |
0 |
The index of the argument that is the callback returned by the function. |
Example
let time = _$.promisify(setTimeout);
(async () => {
await time(2000);
console.log("It's been 2 seconds.")
})();
Times out a promise after a specified number of milliseconds.
Kind: static method of utility
Returns: Promise
- The promise that was inputted, but will time out after a specified time.
Param | Type | Description |
---|---|---|
fn | function |
The function to run that should return a promise, or the promise itself. |
timeout | Number |
The timeout to cancel after. |
calcelCb | function |
The callback to run when cancelled, defaults to throwing an error. |
Example
//Attempts to fetch the date from jsontest.com, if the request is still pending after 2000 milliseconds cancel it and throw an error.
let fetch_stuff = fetch("http://date.jsontest.com/");
_$.race(fetch_stuff, 2000).then((res) => res.json()).then(console.log).catch(console.error)
Example
//Load my popup library, then prompt using it and after 4 seconds close and remove the popup.
(async () => {
//Load the script, but check for duplicates! ;)
await _$.loadScript("https://cdn.jsdelivr.net/gh/explosion-scratch/popup/popup.js", {}, true);
_$.race(prompt("Enter something in the next 4 seconds!"), 4000).then(console.log).catch(() => {
document.querySelector("#popup").remove();
document.querySelector("#popup-bg").remove();
console.log("User could not type fast enough -__-")
})
});
Gets the type of something. This is more specific than the 'typeof' operator.
Kind: static method of utility
Param | Type | Description |
---|---|---|
e | * |
The thing to get the type of. |
lowerCase | Boolean |
Whether to return the string lowercased or not. |
Example
_$.typeof("This is a string");//"String"
typeof "This is a string";//Also string
Example
_$.typeof(/^[regex]$/i);//"RegExp".
typeof /^[regex]$/i;//"object"
Example
_$.typeof(new Date());//"Date"
typeof new Date();//Object -__-
Injects CSS into the document head.
Kind: static method of utility
Returns: HTMLElement
- The CSS <style> element.
Param | Type | Description |
---|---|---|
css | String |
The CSS to inject. |
Example
//Makes the body's background a dark charcoal color.
_$.injectCSS("body {background: #101010; color: white;}");
Example
//Set the text color to an appropriate color depending on the background color of the document body:
if (_$.lightOrDark(_$.compStyle(document.body, "background-color")).lightOrDark === "light"){
_$.injectCSS(`
body {
color: ${_$.lightenColor(_$.rgbToHex(_$.compStyle(document.body, "background-color")), -100)};
}
`)
} else {
_$.injectCSS(`
body {
color: ${_$.lightenColor(_$.rgbToHex(_$.compStyle(document.body, "background-color")), 100)};
}
`)
}
Returns either "mobile" or "desktop" depending on which type of device the user is using.
Kind: static method of utility
Returns: String
- Either "mobile" or "desktop" depending on which type of device the user is using.
| | | |
Example
console.log(_$.mobileOrDesktop()); // e.g. "desktop"
Plays a section of an audio file.
Kind: static method of utility
Returns: Audio
- The audio object first passed.
Param | Type | Description |
---|---|---|
audioObj | HTMLMediaElement |
The audio object to play. (Needs to be created from "new Audio()") |
start | Number |
The time to start playing. |
stop | Number |
The time to stop playing. |
Example
_$.playSection(new Audio("file.mp3"), 5, 20.5); // Plays file.mp3, starting with second 5 and ending at 20.5 seconds into the file.
Formats a string of HTML using indents. Note that this does not format CSS or JS in the HTML.
Kind: static method of utility
Returns: String
- The formatted string of HTML.
Param | Type | Description |
---|---|---|
html | String |
The string of HTML to format. |
Example
console.log(_$.formatHTML("
<h1>moo</h1>
<div id='hi'>hello <span>world</span>
</div>
Gets JSON from a URL and performs a callback with it.
Kind: static method of utility
Returns: Promise
- A promise resolved when the JSON is fetched and parsed.
Param | Type | Description |
---|---|---|
url | String |
The url of the JSON to be fetched. |
callback | function |
The function to be run with the JSON code. |
Example
_$.getJSON("http://date.jsontest.com/", (json) => {alert("The current time is " + json.time)})
Gets HTML from a URL and performs a callback with it.
Kind: static method of utility
Returns: Promise
- A promise resolved when the HTML is fetched and parsed.
Param | Type | Description |
---|---|---|
url | String |
The url of the HTML to be fetched. |
callback | function |
The function to be run with the HTML code. |
Example
// Logs the HTML of wikipedia.org to the console.
_$.getHTML("https://wikipedia.org", (html) => console.log(html));
Preloads all of the image urls given in the arguments
Kind: static method of utility
Returns: Array.<Image>
- An array of all the Image elements created to preload.
Param | Type | Description |
---|---|---|
...urls | String |
The urls of the images to be preloaded. |
Example
_$.preloadImage("https://unsplash.com/some_huge_image.png"); // Preloads the unsplash image "some_huge_image.png" :P
Saves a blob as a file!
Kind: static method of utility
Returns: Blob
- The blob saved.
Param | Type | Default | Description |
---|---|---|---|
blob | Blob |
The blob to save as a file. | |
[fileName] | String |
output.txt |
The name of the output file (Must include the extension.) |
Example
_$.saveBlob(new Blob(["Yay! I'm in a text file!"]), "Cool file.txt");
Works exactly like setInterval but instead uses requestAnimationFrame.
Kind: static method of utility
Param | Type | Description |
---|---|---|
fn | function |
The function to run repeatedly every delay seconds. |
delay | Number |
The delay time in milliseconds to run the function. |
Loads a script from a url (Can be to a local file or to a url) then runs a callback once it's loaded.
Kind: static method of utility
Returns: Promise
- A promise resolved once the script is loaded.
Param | Type | Description |
---|---|---|
url | String |
The url to load the script from. |
callback | function |
The callback to run when the script is loaded. |
Example
_$.("script.js", ()=>alert("Script loaded!"));//Loads the script from the "script.js" file
Fetches an image and runs the callback with the data url of the image.
Kind: static method of utility
Returns: Promise
- A promise fulfulled when the image is loaded.
Param | Type | Description |
---|---|---|
url | String |
The url of the image to load. |
callback | function |
The callback function. |
Example
//Replaces every image's url with its respective data url.
_$.each(document.querySelectorAll('img'), (img) => {
_$.imageToData(img.src, (data) => {
img.src = data;
})
})
Converts JSON to a CSV string
Kind: static method of utility
Returns: String
- The string of comma separated values (CSV) created from the JSON.
Param | Type | Default | Description |
---|---|---|---|
arr | Array |
The array of objects to convert to CSV. | |
columns | Array |
The columns to use. | |
[delimiter] | String |
"," |
The delimiter between cells, by default this is a comma. |
Example
_$.jsonToCsv(
[{ a: 1, b: 2 }, { a: 3, b: 4, c: 5 }, { a: 6 }, { b: 7 }],
['a', 'b']
);
//
a,b
"1","2"
"3","4"
"6",""
"","7"
Converts an array to CSV (Comma separated values) data.
Kind: static method of utility
Returns: String
- The comma separated array.
Param | Type | Default | Description |
---|---|---|---|
arr | Array |
The array to convert. | |
[delimiter] | String |
, |
The separator (By default this is a comma.) |
Example
console.log(_$.arrayToCSV([1,2,3,4])); // "1,2,3,4"
Displays a desktop notification with the specified text.
Kind: static method of utility
Returns: Promise
- A promise that fulfills once the notification is sent, and is rejected when there is an error
Param | Type | Description |
---|---|---|
title | String |
The title of the notification. |
body | String |
The body of the notification. |
icon | String |
The url to the image for the icon of the notification. |
Example
_$.notify("Hello", "Hi there! This is a notification!"); Notifies the user with the title "Hello" and the body text "Hi there! This is a notification!"
Copies the string inputted to the clipboard.
Kind: static method of utility
Returns: String
- The string copied.
Param | Type | Description |
---|---|---|
str | String |
The string to copy. |
Example
_$.copy("Hello world");
Returns the browser that the user is using.
Kind: static method of utility
Returns: String
- A string of the browser name that the user is using.
Example
_$.browser(); // For me this (correctly) returns "Chrome"
Converts a form to URL queries using the name attribute.
Kind: static method of utility
Returns: String
- The string of url queries (Excluding the hostname and path) of the form data.
Param | Type | Description |
---|---|---|
form | HTMLFormElement |
The form element. |
An implementation of the soundex algorithm in JavaScript, used to test if two words sound the same.
Kind: static method of utility
Returns: String
- The soundex of the given string
Param | Type | Description |
---|---|---|
s | String |
The word to get the soundex of. |
Example
_$.soundex("ekxplohsin");//"E214"
_$.soundex("explosion");//"E214"
Tests if the user is using Node.js or not and throws an error in specific functions (that require the DOM) if they are.
Kind: global typedef
Returns: Number
- The number to average
Param | Type | Description |
---|---|---|
number | Number |
The number to perform the operation on |
eachCallback : function
Kind: global typedef
Param | Type | Description |
---|---|---|
x | any |
The item of the array/string/number range |
i | Number |
The index of the item in the array/string/number range |
array | Array.<any> |
The original array |
Kind: global typedef
Returns: String
- The replaced text
Param | Type | Description |
---|---|---|
text | String |
The text to replace |
Kind: global typedef
Param | Type | Description |
---|---|---|
e | Event |
The event object |
Kind: global typedef
Returns: String
- The cell content
Param | Type | Description |
---|---|---|
td | HTMLTableCellElement |
The td element |
tr | HTMLTableRowElement |
The tr element |
cellIndex | Number |
The cell index |
Kind: global typedef
Param | Type | Description |
---|---|---|
event | UIEvent |
The event object |
juxtCallback ⇒ Array.<array>
Kind: global typedef
Returns: Array.<array>
- The list of outputs.
Param | Type | Description |
---|---|---|
...args | any |
The arguments to run on the functions |
Kind: global typedef
Param | Type | Description |
---|---|---|
args | Array |
The array of arguments |
Kind: global typedef
Param | Type | Description |
---|---|---|
key | String | Symbol |
The key being accessed |
value | any |
The value of the key being accessed |
Kind: global typedef
Param | Type | Description |
---|---|---|
key | String |
The key |
Kind: global typedef
Param | Type | Description |
---|---|---|
value | any |
The value |
Kind: global typedef
Param | Type |
---|---|
num | Number |
Kind: global typedef
Param | Type |
---|---|
num | Number |
percent | Number |
mapCallback : function
Kind: global typedef
Param | Type | Description |
---|---|---|
item | any |
The item |
i | Number |
The index of the item |
arr | Array |
The original array |
Kind: global typedef
Returns: Object
- Returns an object with red, green, blue and alpha keys.
Param | Type | Description |
---|---|---|
pixel | Object |
|
pixel.red | Number |
The red value of the pixel (0-255) |
pixel.green | Number |
The green value of the pixel (0-255) |
pixel.blue | Number |
The blue value of the pixel (0-255) |
pixel.alpha | Number |
The alpha value of the pixel (0-255) |
Example
//Example function given to _$.manipulate
(color) => {
if (color.green > 200){
//Simple greenscreen effect
color.alpha = 0;
}
return color;
}