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
|
||||
```
|
||||
|
||||
##### .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)
|
||||
|
||||
Returns `true` for all values that evaluate to true in a boolean context:
|
||||
|
|
|
|||
|
|
@ -48,7 +48,8 @@ export const enum TypeName {
|
|||
ArrayBuffer = 'ArrayBuffer',
|
||||
SharedArrayBuffer = 'SharedArrayBuffer',
|
||||
DataView = 'DataView',
|
||||
Promise = 'Promise'
|
||||
Promise = 'Promise',
|
||||
URL = 'URL'
|
||||
}
|
||||
|
||||
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 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 falsy = (value: any) => !value;
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import net from 'net';
|
|||
import Stream from 'stream';
|
||||
import util from 'util';
|
||||
import tempy from 'tempy';
|
||||
import {URL} from 'url';
|
||||
import test, {TestContext, Context} from 'ava';
|
||||
import {JSDOM} from 'jsdom';
|
||||
import {Subject, Observable} from 'rxjs';
|
||||
|
|
@ -534,6 +535,14 @@ test('is.directInstanceOf', t => {
|
|||
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 => {
|
||||
t.true(m.truthy('unicorn'));
|
||||
t.true(m.truthy('🦄'));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue