- Source:
Function-based type functionality.
Methods
ish.type.fn.asyncSupport() → {boolean}
- Source:
Determines if asynchronous functions are supported in the current environment.
Returns:
Type |
Description |
boolean
|
Value representing if asynchronous functions are supported in the current environment. |
ish.type.fn.call(fn, vContextopt, vArguments) → {variant}
- Source:
- To Do:
-
- Refactor all
ish.type.fn.call
references to use ish.type.fn.run
as it has a more consistent interface to the rest of ish.js.
Executes the passed function.
The passed function is executed via function.apply()
.
Parameters:
Name |
Type |
Attributes |
Description |
fn |
function
|
|
Value representing the function to execute. |
vContext |
variant
|
<optional>
|
Value representing the context (e.g. this ) the passed function is executed under. |
vArguments |
variant
|
|
Value representing the arguments to pass into the passed function. Note: This value is passed through ish.type.fn.convert to ensure an array. |
Returns:
Type |
Description |
variant
|
Value representing the passed function's return value. |
ish.type.fn.convert(x) → {Array.<variant>}
- Source:
Casts the passed arguments instance, array or single value into an array fit to pass to function.apply()
.
Parameters:
Name |
Type |
Description |
x |
variant
|
Value to interrogate. |
Returns:
Type |
Description |
Array.<variant>
|
Value representing the passed value as an array. |
[mixin]
ish.type.fn.debounce(fn, oOptionsopt) → {function}
- Source:
Wraps the passed function, ensuring it cannot be executed until the wait duration has passed without a call being made.
The passed function is executed via function.apply()
.
From Mixin: ish.type-ex.js
must be included for ishJS
to access this functionality.
Example
var myEfficientFn = ish.type.fn.debounce(function () {
// All the taxing stuff you do
}, 250);
window.addEventListener('resize', myEfficientFn);
Parameters:
Name |
Type |
Attributes |
Description |
fn |
function
|
|
Value representing the function to execute. |
oOptions |
object
|
<optional>
|
Value representing the desired options:
Properties
Name |
Type |
Attributes |
Default |
Description |
context |
variant
|
<optional>
|
|
Value representing the context (e.g. this ) the passed function is executed under. |
wait |
integer
|
<optional>
|
500
|
Value representing the minimum number of milliseconds (1/1000ths of a second) between each call. |
leading |
boolean
|
<optional>
|
false
|
Value representing if the passed function is to be executed immediently on the first call. |
|
Returns:
Type |
Description |
function
|
Function that returns a value representing the passed function's return value from the most recent call. |
[mixin]
ish.type.fn.inject(fn, oDependencies, bNoCallWhenMissingopt) → {object|boolean|Array.<string>}
- Source:
Injects dependencies into the passed function from the passed value.
From Mixin: ish.type-ex.js
must be included for ishJS
to access this functionality.
Parameters:
Name |
Type |
Attributes |
Default |
Description |
fn |
function
|
|
|
Value representing the function to execute. |
oDependencies |
object
|
|
|
Value representing the dependencies to inject. |
bNoCallWhenMissing |
boolean
|
<optional>
|
false
|
Value representing if the passed function is to be called if dependencies are missing. |
Returns:
Name |
Type |
Description |
interface |
object
|
Value representing the following properties:
Properties
Name |
Type |
Description |
success |
boolean
|
Value indicating if the passed function was executed. |
missing |
Array.<string>
|
Value indicating the missing dependencies. |
|
ish.type.fn.is(x) → {boolean}
- Source:
- See:
-
Determines if the passed value represents a function.
Parameters:
Name |
Type |
Description |
x |
variant
|
Value to interrogate. |
Returns:
Type |
Description |
boolean
|
Value representing if the passed value represents a function. |
ish.type.fn.is.args(x) → {boolean}
- Source:
Determines if the passed value represents an arguments instance.
Parameters:
Name |
Type |
Description |
x |
variant
|
Value to interrogate. |
Returns:
Type |
Description |
boolean
|
Value representing if the passed value represents an arguments instance. |
ish.type.fn.is.async(x) → {boolean}
- Source:
- See:
-
Determines if the passed value represents an asynchronous function.
Parameters:
Name |
Type |
Description |
x |
variant
|
Value to interrogate. |
Returns:
Type |
Description |
boolean
|
Value representing if the passed value represents an asynchronous function. |
- Source:
Determines the metadata about the passed function.
Parameters:
Name |
Type |
Description |
fn |
function
|
Value representing the function to execute. |
Returns:
Name |
Type |
Description |
metadata |
object
|
Value representing the following properties:
Properties
Name |
Type |
Description |
is |
boolean
|
Value indicating if the passed function is a valid function. |
async |
boolean
|
Value indicating if the passed function is an async function. |
isArrow |
boolean
|
Value indicating if the passed function is an arrow function expression. |
hasParens |
boolean
|
Value indicating if the passed function has parenthesis in its definition.
Arrow function expressions allow for single parameter definitions to exclude parenthesis, e.g. x => { console.log(x); } . |
name |
string
|
Value indicating the name of the passed function or [anonymous] if one is not specified. |
parameters |
Array.<string>
|
Value indicating the names of the passed function's parameters. |
|
ish.type.fn.mk(x, vDefaultValopt) → {function}
- Source:
Casts the passed value into a function.
Parameters:
Name |
Type |
Attributes |
Default |
Description |
x |
variant
|
|
|
Value to interrogate. |
vDefaultVal |
variant
|
<optional>
|
ish.type.fn.noop
|
Value representing the default return value if casting fails. |
Returns:
Type |
Description |
function
|
Value representing the passed value as a function type. |
ish.type.fn.noop()
- Source:
Null function with no body and no specified return value.
ish.type.fn.once(fn, oOptionsopt) → {function}
- Source:
- See:
-
Wraps the passed function, ensuring it is executed no more than once.
The passed function is executed via function.apply()
.
Parameters:
Name |
Type |
Attributes |
Description |
fn |
function
|
|
Value representing the function to execute. |
oOptions |
object
|
<optional>
|
Value representing the desired options:
Properties
Name |
Type |
Attributes |
Default |
Description |
context |
variant
|
<optional>
|
|
Value representing the context (e.g. this ) the passed function is executed under. |
default |
variant
|
<optional>
|
|
Value representing the default value to return if the passed function is invalid. |
rereturn |
boolean
|
<optional>
|
true
|
Value representing if subsequent calls should return the first return value. |
call |
integer
|
|
|
OUT Value set by reference representing the number of calls to the passed function. |
|
Returns:
Type |
Description |
function
|
Function that returns a value representing the passed function's return value or the default value if the passed function is invalid. |
ish.type.fn.poll(fn, oOptionsopt) → {function}
- Source:
- See:
-
Wraps the passed function, executing it once per wait duration until it returns truthy or the maximum attempts are exhaused.
The passed function is executed via function.apply()
.
Parameters:
Name |
Type |
Attributes |
Description |
fn |
function
|
|
Value representing the function to execute. |
oOptions |
object
|
<optional>
|
Value representing the desired options:
Properties
Name |
Type |
Attributes |
Default |
Description |
context |
variant
|
<optional>
|
|
Value representing the context (e.g. this ) the passed function is executed under. |
wait |
integer
|
function
|
<optional>
|
500
|
Value representing the number of milliseconds (1/1000ths of a second) or function called per attempt that returns the number of milliseconds between each call; iWaitMilliseconds = oOptions.wait(iAttemptCount) . |
maxAttempts |
integer
|
<optional>
|
4
|
Value representing the maximum number of polling attempts. |
callback |
boolean
|
<optional>
|
|
Value representing the function to be called on completion; oOptions.callback(bPollFunctionReturnedTruthy) . |
|
Returns:
Type |
Description |
function
|
Function that executes the passed function once per wait duration until it returns truthy or the maximum attempts are exhaused. |
ish.type.fn.poll.expBackoff(iBaseIntervalopt) → {function}
- Source:
Calculates the exponential back-off based on the passed base interval and attempt count.
Parameters:
Name |
Type |
Attributes |
Default |
Description |
iBaseInterval |
integer
|
<optional>
|
100
|
Value representing the number of milliseconds (1/1000ths of a second) to base the exponential interval on, e.g. 100 results in intervals of 100 , 200 , 400 , 800 , 1600 , etc. |
Returns:
Type |
Description |
function
|
Function that returns a value representing the number of milliseconds for the current polling attempt. |
[mixin]
ish.type.fn.proxy() → {function|function|function}
- Source:
Creates a proxy function that forwards calls to all registered functions.
From Mixin: ish.type-ex.js
must be included for ishJS
to access this functionality.
Returns:
Name |
Type |
Description |
proxy |
function
|
Value representing the proxy function that forwards calls to all registered functions along with an interface with the following properties:
Properties
Name |
Type |
Description |
add |
function
|
Registers the passed function to the parent proxy function; add(fn) :
fn | | function | | Value representing the function to register. |
Returns: | | boolean | | Value representing if the passed function has been successfully registered. |
|
rm |
function
|
Unregisters the passed function from the parent proxy function; rm(fn) :
fn | | function | | Value representing the function to unregister. |
Returns: | | boolean | | Value representing if the passed function has been successfully unregistered. |
|
|
ish.type.fn.run(fn, vOptionsopt) → {variant}
- Source:
Executes the passed function.
The passed function is executed via function.apply()
.
Parameters:
Name |
Type |
Attributes |
Description |
fn |
function
|
|
Value representing the function to execute. |
vOptions |
arguments
|
Array.<variant>
|
object
|
<optional>
|
Value representing an arguments instance, an array of arguments or an object representing the desired options:
Properties
Name |
Type |
Attributes |
Description |
context |
variant
|
<optional>
|
Value representing the context (e.g. this ) the passed function is executed under. |
default |
variant
|
<optional>
|
Value representing the default value to return if the passed function is invalid. |
asyncCallback |
function
|
<optional>
|
Value representing the default value to return if the passed function is invalid. |
args |
arguments
|
Array.<variant>
|
<optional>
|
Value representing the arguments to pass into the passed function. Note: This value is passed through ish.type.fn.convert to ensure an array. |
|
Returns:
Type |
Description |
variant
|
Value representing the passed function's return value or the default value if the passed function is invalid. |
ish.type.fn.signature(fn, vAttachToPropertyopt) → {object|function|function|string|Array.<string>|boolean|boolean}
- Source:
Allows for the definition and validation of the passed function's signature.
Parameters:
Name |
Type |
Attributes |
Default |
Description |
fn |
function
|
|
|
Value representing the function to define a signature for. |
vAttachToProperty |
boolean
|
string
|
<optional>
|
'signature'
|
Value representing the property name to attach the return value to under the passed fn . |
Returns:
Name |
Type |
Description |
chainedInterface |
object
|
Value representing a chained interface with the following properties:
Properties
Name |
Type |
Description |
parameter |
function
|
Defines the next parameter for the function; parameter(vTest, sErrorMessage) :
vTest | | function | string | | Value representing the argument validator as a function or string referencing a ish.types.*.is function (e.g. str , int , obj , etc). |
sErrorMessage | | string | | Value representing the custom error message to display when an argument fails the vTest . The order of calls to parameter must match the order of the parameters in the passed function. |
|
validate |
function
|
Determines if the passed arguments conform to the defined parameter tests; validate(_arguments, bRaiseError) :
_arguments | | arguments | variant[] | | Value representing the arguments. Note: This value is passed through ish.type.fn.convert to ensure an array. |
bRaiseError | | boolean | | Value representing if an error is to be throw n if an error occurs. |
|
name |
string
|
Value indicating the name of the passed function or [anonymous] if one is not specified. |
parameters |
Array.<string>
|
Value indicating the names of the passed function's parameters. |
valid |
boolean
|
Value indicating if the passed arguments conform to the function's signature. |
fn |
boolean
|
Value representing the function to define a signature for. |
|
[mixin]
ish.type.fn.throttle(fn, oOptionsopt) → {function}
- Source:
- See:
-
Wraps the passed function, ensuring it is executed as much as possible without ever executing more than once per wait duration.
The passed function is executed via function.apply()
.
From Mixin: ish.type-ex.js
must be included for ishJS
to access this functionality.
Parameters:
Name |
Type |
Attributes |
Description |
fn |
function
|
|
Value representing the function to execute. |
oOptions |
object
|
<optional>
|
Value representing the desired options:
Properties
Name |
Type |
Attributes |
Default |
Description |
context |
variant
|
<optional>
|
|
Value representing the context (e.g. this ) the passed function is executed under. |
wait |
integer
|
<optional>
|
500
|
Value representing the minimum number of milliseconds (1/1000ths of a second) between each call. |
leading |
boolean
|
<optional>
|
true
|
Value representing if the passed function is to be executed immediately on the first call. |
trailing |
boolean
|
<optional>
|
false
|
Value representing if the passed function is to be executed at the conclusion of the last wait time. |
|
Returns:
Type |
Description |
function
|
Function that returns a value representing the passed function's return value from the most recent call. |
ish.type.fn.tryCatch(fn, oOptionsopt) → {function}
- Source:
- See:
-
Wraps the passed function, ensuring it is executed within a try...catch
block.
The passed function is executed via function.apply()
.
Parameters:
Name |
Type |
Attributes |
Description |
fn |
function
|
|
Value representing the function to execute. |
oOptions |
object
|
<optional>
|
Value representing the desired options:
Properties
Name |
Type |
Attributes |
Default |
Description |
context |
variant
|
<optional>
|
|
Value representing the context (e.g. this ) the passed function is executed under. |
default |
variant
|
<optional>
|
|
Value representing the default value to return if the passed function errors. |
returnObj |
boolean
|
<optional>
|
false
|
Value representing if an object is to be returned representing the result and error. |
|
Returns:
Type |
Description |
function
|
Function that returns a value representing the passed function's return value or the default value if the passed function errors. |