Skip to main content


Utils is a utility containing commonly reused functions. Instance is accessible through the BdApi.




Builds a classname string from any number of arguments. This includes arrays and objects. When given an array all values from the array are added to the list. When given an object they keys are added as the classnames if the value is truthy. Copyright (c) 2018 Jed Watson MIT License

argument...anyAnything that should be used to add classnames

Returns: string - Joined classname


Returns a function, that, as long as it continues to be invoked, will not be triggered. The function will be called after it stops being called for delay milliseconds. It is called at the end of the sequence (trailing edge). Adapted from the version by David Walsh (

executorfunctionThe function to be debounced
delaynumberNumber of ms to delay calls

Returns: function - A debounced version of the function


Takes a string of HTML and escapes it using the browser's own escaping mechanism.

htmlstringHTML to be escaped

Returns: string - Escaped HTML string


Deep extends an object with a set of other objects. Objects later in the list of extenders have priority, that is to say if one sets a key to be a primitive, it will be overwritten with the next one with the same key. If it is an object, and the keys match, the object is extended. This happens recursively.

extendeeobjectObject to be extended
extenders...objectObjects to extend with

Returns: object - A reference to extendee


Finds a value, subobject, or array from a tree that matches a specific filter. This is a DFS.

treeobjectnoneTree that should be walked
searchFiltercallablenoneFilter to check against each object and subobject
optionsobjectnoneAdditional options to customize the search
options.walkableArray.<string>|nullnoneArray of strings to use as keys that are allowed to be walked on. null indicates all keys are walkable.
options.ignoreArray.<string>[]Array of strings to use as keys to exclude from the search. Most helpful when walkable = null.

Returns: void