parent
8656f49721
commit
b5d6f5a995
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@uci-utils/type",
|
"name": "@uci-utils/type",
|
||||||
"version": "0.6.3",
|
"version": "0.6.4",
|
||||||
"description": "A variable type check and casting utility - extension of typechecker package plus type casting",
|
"description": "A variable type check and casting utility - extension of typechecker package plus type casting",
|
||||||
"main": "src/index.js",
|
"main": "src/index.js",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|
15
src/check.js
15
src/check.js
|
@ -21,13 +21,26 @@ customTypeChecker.isSymbol = function isSymbol(x) {
|
||||||
|
|
||||||
customTypeChecker.isObservable = observable
|
customTypeChecker.isObservable = observable
|
||||||
|
|
||||||
|
customTypeChecker.isEmitter = function isEmitter(emitter) {
|
||||||
|
if (!emitter) return false
|
||||||
|
let check = ['on', 'emit']
|
||||||
|
return check.reduce((acc, fn) => acc && typeof emitter[fn] === 'function', true)
|
||||||
|
}
|
||||||
|
|
||||||
|
customTypeChecker.isAsync = function isAsync(fn) {
|
||||||
|
if (typeof fn !== 'function') return false
|
||||||
|
return (customTypeChecker.isPromise(fn) || fn.constructor.name === 'AsyncFunction')
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Add custom types to typeMap
|
// Add custom types to typeMap
|
||||||
let customTypeMap = {
|
let customTypeMap = {
|
||||||
buffer: customTypeChecker.isBuffer,
|
buffer: customTypeChecker.isBuffer,
|
||||||
promise: customTypeChecker.isPromise,
|
promise: customTypeChecker.isPromise,
|
||||||
symbol: customTypeChecker.isSymbol,
|
symbol: customTypeChecker.isSymbol,
|
||||||
observable: customTypeChecker.isObservable
|
observable: customTypeChecker.isObservable,
|
||||||
|
emitter: customTypeChecker.isEmitter,
|
||||||
|
async: customTypeChecker.isAsync
|
||||||
}
|
}
|
||||||
|
|
||||||
customTypeMap = Object.assign(customTypeMap, customTypeChecker.typeMap)
|
customTypeMap = Object.assign(customTypeMap, customTypeChecker.typeMap)
|
||||||
|
|
|
@ -1,17 +1,26 @@
|
||||||
import { expect } from 'chai'
|
import { expect } from 'chai'
|
||||||
import u, { typeOf } from '../src/index.js'
|
import u, { typeOf } from '../src/index.js'
|
||||||
import { of } from 'rxjs'
|
import { of } from 'rxjs'
|
||||||
|
import EE from 'events'
|
||||||
console.log(of)
|
console.log(of)
|
||||||
|
|
||||||
describe('Type Check Library - ', function () {
|
describe('Type Check Library - ', function () {
|
||||||
|
|
||||||
it('Should include custom types', function () {
|
it('Should include custom types: buffer,promise,observable,emitter,async', function () {
|
||||||
|
const emitter = new EE()
|
||||||
|
const asyncfunc = async function () { }
|
||||||
|
|
||||||
expect(u.isBuffer(Buffer.from('this is a test'))).to.equal(true)
|
expect(u.isBuffer(Buffer.from('this is a test'))).to.equal(true)
|
||||||
expect(u.getType(Buffer.from('this is a test'))).to.equal('buffer')
|
expect(u.getType(Buffer.from('this is a test'))).to.equal('buffer')
|
||||||
expect(u.isPromise(Promise.resolve(2))).to.equal(true)
|
expect(u.isPromise(Promise.resolve(2))).to.equal(true)
|
||||||
expect(u.getType(Promise.resolve(2))).to.equal('promise')
|
expect(u.getType(Promise.resolve(2))).to.equal('promise')
|
||||||
expect(u.isObservable(of(1, 2, 3))).to.equal(true)
|
expect(u.isObservable(of(1, 2, 3))).to.equal(true)
|
||||||
expect(u.getType(of(1, 2, 3))).to.equal('observable')
|
expect(u.getType(of(1, 2, 3))).to.equal('observable')
|
||||||
|
expect(u.isEmitter(emitter)).to.equal(true)
|
||||||
|
expect(u.getType(emitter)).to.equal('emitter')
|
||||||
|
expect(u.isAsync(asyncfunc)).to.equal(true)
|
||||||
|
expect(u.getType(asyncfunc)).to.equal('async')
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Should export typeOf for .getType', function () {
|
it('Should export typeOf for .getType', function () {
|
||||||
|
@ -22,6 +31,7 @@ describe('Type Check Library - ', function () {
|
||||||
|
|
||||||
it('Should include base typechecker methods', function () {
|
it('Should include base typechecker methods', function () {
|
||||||
expect(u.isPlainObject([1])).to.equal(false)
|
expect(u.isPlainObject([1])).to.equal(false)
|
||||||
|
expect(u.isPlainObject({ test: 'test' })).to.equal(true)
|
||||||
expect(u.getType(true)).to.equal('boolean')
|
expect(u.getType(true)).to.equal('boolean')
|
||||||
expect(u.getObjectType('a string')).to.equal('[object String]')
|
expect(u.getObjectType('a string')).to.equal('[object String]')
|
||||||
expect(u.getType('this is a test')).to.equal('string')
|
expect(u.getType('this is a test')).to.equal('string')
|
||||||
|
|
Loading…
Reference in New Issue