Add is.nodeStream() (#34)
This commit is contained in:
parent
ae3adc9818
commit
a04a04c131
4 changed files with 38 additions and 1 deletions
|
|
@ -49,9 +49,11 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jsdom": "^2.0.31",
|
"@types/jsdom": "^2.0.31",
|
||||||
"@types/node": "^8.0.47",
|
"@types/node": "^8.0.47",
|
||||||
|
"@types/tempy": "^0.1.0",
|
||||||
"ava": "*",
|
"ava": "*",
|
||||||
"del-cli": "^1.1.0",
|
"del-cli": "^1.1.0",
|
||||||
"jsdom": "^9.12.0",
|
"jsdom": "^9.12.0",
|
||||||
|
"tempy": "^0.2.1",
|
||||||
"tslint": "^5.8.0",
|
"tslint": "^5.8.0",
|
||||||
"tslint-xo": "^0.3.0",
|
"tslint-xo": "^0.3.0",
|
||||||
"typescript": "^2.6.1"
|
"typescript": "^2.6.1"
|
||||||
|
|
|
||||||
10
readme.md
10
readme.md
|
|
@ -211,6 +211,16 @@ is.inRange(3, 10);
|
||||||
|
|
||||||
Returns `true` if `value` is a DOM Element.
|
Returns `true` if `value` is a DOM Element.
|
||||||
|
|
||||||
|
##### .nodeStream(value)
|
||||||
|
|
||||||
|
Returns `true` if `value` is a Node.js [stream](https://nodejs.org/api/stream.html).
|
||||||
|
|
||||||
|
```js
|
||||||
|
const fs = require('fs');
|
||||||
|
is.nodeStream(fs.createReadStream('unicorn.png'));
|
||||||
|
//=> true
|
||||||
|
```
|
||||||
|
|
||||||
##### .infinite(value)
|
##### .infinite(value)
|
||||||
|
|
||||||
Check if `value` is `Infinity` or `-Infinity`.
|
Check if `value` is `Infinity` or `-Infinity`.
|
||||||
|
|
|
||||||
|
|
@ -238,6 +238,8 @@ namespace is { // tslint:disable-line:no-namespace
|
||||||
export const domElement = (value: any) => object(value) && value.nodeType === NODE_TYPE_ELEMENT && string(value.nodeName) &&
|
export const domElement = (value: any) => object(value) && value.nodeType === NODE_TYPE_ELEMENT && string(value.nodeName) &&
|
||||||
!plainObject(value) && DOM_PROPERTIES_TO_CHECK.every(property => property in value);
|
!plainObject(value) && DOM_PROPERTIES_TO_CHECK.every(property => property in value);
|
||||||
|
|
||||||
|
export const nodeStream = (value: any) => !nullOrUndefined(value) && isObject(value) && function_(value.pipe);
|
||||||
|
|
||||||
export const infinite = (value: any) => value === Infinity || value === -Infinity;
|
export const infinite = (value: any) => value === Infinity || value === -Infinity;
|
||||||
|
|
||||||
const isAbsoluteMod2 = (value: number) => (rem: number) => integer(rem) && Math.abs(rem % 2) === value;
|
const isAbsoluteMod2 = (value: number) => (rem: number) => integer(rem) && Math.abs(rem % 2) === value;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,8 @@
|
||||||
|
import * as fs from 'fs';
|
||||||
|
import * as net from 'net';
|
||||||
|
import * as Stream from 'stream';
|
||||||
import * as util from 'util';
|
import * as util from 'util';
|
||||||
|
import * as tempy from 'tempy';
|
||||||
import test, {TestContext, Context} from 'ava';
|
import test, {TestContext, Context} from 'ava';
|
||||||
import {jsdom} from 'jsdom';
|
import {jsdom} from 'jsdom';
|
||||||
import m from '..';
|
import m from '..';
|
||||||
|
|
@ -286,7 +290,8 @@ const types = new Map<string, Test>([
|
||||||
'canvas',
|
'canvas',
|
||||||
'script'
|
'script'
|
||||||
].map(createDomElement) }
|
].map(createDomElement) }
|
||||||
], ['non-domElements', {
|
],
|
||||||
|
['non-domElements', {
|
||||||
is: value => !m.domElement(value),
|
is: value => !m.domElement(value),
|
||||||
fixtures: [
|
fixtures: [
|
||||||
document.createTextNode('data'),
|
document.createTextNode('data'),
|
||||||
|
|
@ -297,6 +302,20 @@ const types = new Map<string, Test>([
|
||||||
document.createDocumentFragment()
|
document.createDocumentFragment()
|
||||||
]
|
]
|
||||||
}],
|
}],
|
||||||
|
['nodeStream', {
|
||||||
|
is: m.nodeStream,
|
||||||
|
fixtures: [
|
||||||
|
fs.createReadStream('readme.md'),
|
||||||
|
fs.createWriteStream(tempy.file()),
|
||||||
|
new net.Socket(),
|
||||||
|
new Stream.Duplex(),
|
||||||
|
new Stream.PassThrough(),
|
||||||
|
new Stream.Readable(),
|
||||||
|
new Stream.Transform(),
|
||||||
|
new Stream.Stream(),
|
||||||
|
new Stream.Writable()
|
||||||
|
]
|
||||||
|
}],
|
||||||
['infinite', {
|
['infinite', {
|
||||||
is: m.infinite,
|
is: m.infinite,
|
||||||
fixtures: [
|
fixtures: [
|
||||||
|
|
@ -641,6 +660,10 @@ test('is.domElement', t => {
|
||||||
t.false(m.domElement({nodeType: 1, nodeName: 'div'}));
|
t.false(m.domElement({nodeType: 1, nodeName: 'div'}));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('is.nodeStream', t => {
|
||||||
|
testType(t, 'nodeStream');
|
||||||
|
});
|
||||||
|
|
||||||
test('is.infinite', t => {
|
test('is.infinite', t => {
|
||||||
testType(t, 'infinite', ['number']);
|
testType(t, 'infinite', ['number']);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue