sweetalert2
Version:
A beautiful, responsive, customizable and accessible (WAI-ARIA) replacement for JavaScript's popup boxes, supported fork of sweetalert
83 lines (73 loc) • 1.86 kB
JavaScript
export const consolePrefix = 'SweetAlert2:'
/**
* Filter the unique values into a new array
* @param arr
*/
export const uniqueArray = (arr) => {
const result = []
for (let i = 0; i < arr.length; i++) {
if (result.indexOf(arr[i]) === -1) {
result.push(arr[i])
}
}
return result
}
/**
* Convert NodeList to Array
* @param nodeList
*/
export const toArray = (nodeList) => Array.prototype.slice.call(nodeList)
/**
* Converts `inputOptions` into an array of `[value, label]`s
* @param inputOptions
*/
export const formatInputOptions = (inputOptions) => {
const result = []
if (typeof Map !== 'undefined' && inputOptions instanceof Map) {
inputOptions.forEach((value, key) => {
result.push([key, value])
})
} else {
Object.keys(inputOptions).forEach(key => {
result.push([key, inputOptions[key]])
})
}
return result
}
/**
* Standardise console warnings
* @param message
*/
export const warn = (message) => {
console.warn(`${consolePrefix} ${message}`)
}
/**
* Standardise console errors
* @param message
*/
export const error = (message) => {
console.error(`${consolePrefix} ${message}`)
}
/**
* Private global state for `warnOnce`
* @type {Array}
* @private
*/
const previousWarnOnceMessages = []
/**
* Show a console warning, but only if it hasn't already been shown
* @param message
*/
export const warnOnce = (message) => {
if (!previousWarnOnceMessages.includes(message)) {
previousWarnOnceMessages.push(message)
warn(message)
}
}
/**
* If `arg` is a function, call it (with no arguments or context) and return the result.
* Otherwise, just pass the value through
* @param arg
*/
export const callIfFunction = (arg) => typeof arg === 'function' ? arg() : arg
export const isThenable = (arg) => typeof arg === 'object' && typeof arg.then === 'function'