forked from orbit-oss/is
Add is.urlInstance (#60)
This commit is contained in:
parent
c8736c2972
commit
3bdaf21475
3 changed files with 23 additions and 1 deletions
11
readme.md
11
readme.md
|
|
@ -176,6 +176,17 @@ is.directInstanceOf(new UnicornError(), Error);
|
||||||
//=> false
|
//=> false
|
||||||
```
|
```
|
||||||
|
|
||||||
|
##### .urlInstance(value)
|
||||||
|
|
||||||
|
Returns `true` if `value` is an instance of the [`URL` class](https://developer.mozilla.org/en-US/docs/Web/API/URL).
|
||||||
|
|
||||||
|
```js
|
||||||
|
const url = new URL('https://example.com');
|
||||||
|
|
||||||
|
is.urlInstance(url);
|
||||||
|
//=> true
|
||||||
|
```
|
||||||
|
|
||||||
##### .truthy(value)
|
##### .truthy(value)
|
||||||
|
|
||||||
Returns `true` for all values that evaluate to true in a boolean context:
|
Returns `true` for all values that evaluate to true in a boolean context:
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,8 @@ export const enum TypeName {
|
||||||
ArrayBuffer = 'ArrayBuffer',
|
ArrayBuffer = 'ArrayBuffer',
|
||||||
SharedArrayBuffer = 'SharedArrayBuffer',
|
SharedArrayBuffer = 'SharedArrayBuffer',
|
||||||
DataView = 'DataView',
|
DataView = 'DataView',
|
||||||
Promise = 'Promise'
|
Promise = 'Promise',
|
||||||
|
URL = 'URL'
|
||||||
}
|
}
|
||||||
|
|
||||||
const toString = Object.prototype.toString;
|
const toString = Object.prototype.toString;
|
||||||
|
|
@ -177,6 +178,7 @@ namespace is { // tslint:disable-line:no-namespace
|
||||||
export const dataView = isObjectOfType<DataView>(TypeName.DataView);
|
export const dataView = isObjectOfType<DataView>(TypeName.DataView);
|
||||||
|
|
||||||
export const directInstanceOf = <T>(instance: any, klass: Class<T>): instance is T => Object.getPrototypeOf(instance) === klass.prototype;
|
export const directInstanceOf = <T>(instance: any, klass: Class<T>): instance is T => Object.getPrototypeOf(instance) === klass.prototype;
|
||||||
|
export const urlInstance = (value: any): value is URL => isObjectOfType<URL>(TypeName.URL)(value);
|
||||||
|
|
||||||
export const truthy = (value: any) => Boolean(value);
|
export const truthy = (value: any) => Boolean(value);
|
||||||
export const falsy = (value: any) => !value;
|
export const falsy = (value: any) => !value;
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import net from 'net';
|
||||||
import Stream from 'stream';
|
import Stream from 'stream';
|
||||||
import util from 'util';
|
import util from 'util';
|
||||||
import tempy from 'tempy';
|
import tempy from 'tempy';
|
||||||
|
import {URL} from 'url';
|
||||||
import test, {TestContext, Context} from 'ava';
|
import test, {TestContext, Context} from 'ava';
|
||||||
import {JSDOM} from 'jsdom';
|
import {JSDOM} from 'jsdom';
|
||||||
import {Subject, Observable} from 'rxjs';
|
import {Subject, Observable} from 'rxjs';
|
||||||
|
|
@ -534,6 +535,14 @@ test('is.directInstanceOf', t => {
|
||||||
t.false(m.directInstanceOf(errorSubclass, Error));
|
t.false(m.directInstanceOf(errorSubclass, Error));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('is.urlInstance', t => {
|
||||||
|
const url = new URL('https://www.example.com');
|
||||||
|
t.true(m.urlInstance(url));
|
||||||
|
t.false(m.urlInstance({}));
|
||||||
|
t.false(m.urlInstance(undefined));
|
||||||
|
t.false(m.urlInstance(null));
|
||||||
|
});
|
||||||
|
|
||||||
test('is.truthy', t => {
|
test('is.truthy', t => {
|
||||||
t.true(m.truthy('unicorn'));
|
t.true(m.truthy('unicorn'));
|
||||||
t.true(m.truthy('🦄'));
|
t.true(m.truthy('🦄'));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue