tests for is.class and readme info
This commit is contained in:
parent
103c5afe6f
commit
148d5e0e2c
3 changed files with 15 additions and 1 deletions
3
index.js
3
index.js
|
|
@ -62,6 +62,7 @@ is.symbol = x => typeof x === 'symbol';
|
|||
|
||||
is.array = Array.isArray;
|
||||
is.function = x => typeof x === 'function';
|
||||
is.class = x => typeof x === 'function' && x.toString().startsWith('class ');
|
||||
is.buffer = Buffer.isBuffer;
|
||||
|
||||
is.object = x => {
|
||||
|
|
@ -130,7 +131,7 @@ is.plainObject = x => {
|
|||
// eslint-disable-next-line no-return-assign
|
||||
return getObjectType(x) === 'Object' &&
|
||||
(prototype = Object.getPrototypeOf(x), prototype === null ||
|
||||
prototype === Object.getPrototypeOf({}));
|
||||
prototype === Object.getPrototypeOf({}));
|
||||
};
|
||||
|
||||
is.iterable = x => !is.null(x) && !is.undefined(x) && typeof x[Symbol.iterator] === 'function';
|
||||
|
|
|
|||
|
|
@ -64,6 +64,10 @@ All the below methods accept a value and returns a boolean for whether the value
|
|||
#### Built-in types
|
||||
|
||||
##### .array(value)
|
||||
##### .class(value)
|
||||
|
||||
Returns `true` for any function that initialized as an ES6 class.
|
||||
|
||||
##### .function(value)
|
||||
##### .buffer(value)
|
||||
##### .object(value)
|
||||
|
|
|
|||
9
test.js
9
test.js
|
|
@ -6,6 +6,8 @@ const isNode8orHigher = Number(process.versions.node.split('.')[0]) >= 8;
|
|||
|
||||
const PromiseSubclassFixture = class extends Promise {};
|
||||
const ErrorSubclassFixture = class extends Error {};
|
||||
const FooClassFixture = class Foo {};
|
||||
const BarClassFixture = class Bar extends FooClassFixture {};
|
||||
|
||||
const types = new Map([
|
||||
['undefined', undefined],
|
||||
|
|
@ -28,6 +30,9 @@ const types = new Map([
|
|||
[1, 2],
|
||||
new Array(2)
|
||||
]],
|
||||
['class', [
|
||||
new BarClassFixture()
|
||||
]],
|
||||
['function', [
|
||||
function foo() {}, // eslint-disable-line func-names
|
||||
function () {},
|
||||
|
|
@ -130,6 +135,10 @@ test('is.array', t => {
|
|||
testType(t, 'array');
|
||||
});
|
||||
|
||||
test('is.class', t => {
|
||||
t.true(types.get('class')[0] instanceof FooClassFixture);
|
||||
});
|
||||
|
||||
test('is.function', t => {
|
||||
testType(t, 'function');
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue