uci-utils-type/src/type.js

28 lines
888 B
JavaScript

import typechecker from 'typechecker'
const customTypeChecker = Object.assign({}, typechecker) // typechecker is frozen
// add custom types
customTypeChecker.isPromise = function isPromise(obj) {
return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'
}
customTypeChecker.isBuffer = function isBuffer(obj) {
return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
}
// Add custom types to typeMap
let customTypeMap = {
buffer: customTypeChecker.isBuffer,
promise: customTypeChecker.isPromise
}
customTypeMap = Object.assign(customTypeMap, customTypeChecker.typeMap)
customTypeChecker.getType = function customGetType(value, _typeMap) {
return typechecker.getType(value, _typeMap || customTypeMap)
}
export default customTypeChecker
export { customTypeChecker as type }