Package Exports
- class-utils
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (class-utils) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
class-utils

Utils for working with JavaScript classes and prototype methods.
Install
Install with npm
$ npm i class-utils --save
Usage
var cu = require('class-utils');
API
.has
Returns true if an array has any of the given elements, or an object has any of the give keys.
Params
obj
{Object}val
{String|Array}returns
{Boolean}
Example
cu.has(['a', 'b', 'c'], 'c');
//=> true
cu.has(['a', 'b', 'c'], ['c', 'z']);
//=> true
cu.has({a: 'b', c: 'd'}, ['c', 'z']);
//=> true
.hasAll
Returns true if an array or object has all of the given values.
Params
val
{Object|Array}values
{String|Array}returns
{Boolean}
Example
cu.hasAll(['a', 'b', 'c'], 'c');
//=> true
cu.hasAll(['a', 'b', 'c'], ['c', 'z']);
//=> false
cu.hasAll({a: 'b', c: 'd'}, ['c', 'z']);
//=> false
.arrayify
Cast the given value to an array.
Params
val
{String|Array}returns
{Array}
Example
cu.arrayify('foo');
//=> ['foo']
cu.arrayify(['foo']);
//=> ['foo']
.hasConstructor
Returns true if a value has a contructor
Params
value
{Object}returns
{Boolean}
Example
cu.hasConstructor({});
//=> true
cu.hasConstructor(Object.create(null));
//=> false
.nativeKeys
Get the native ownPropertyNames
from the constructor of the given object
. An empty array is returned if the object does not have a constructor.
Params
obj
{Object}: Object that has aconstructor
.returns
{Array}: Array of keys.
Example
cu.nativeKeys({a: 'b', b: 'c', c: 'd'})
//=> ['a', 'b', 'c']
cu.nativeKeys(function(){})
//=> ['length', 'caller']
.getDescriptor
Returns property descriptor key
if it's an "own" property of the given object.
Params
obj
{Object}key
{String}returns
{Object}: Returns descriptorkey
Example
function App() {}
Object.defineProperty(App.prototype, 'count', {
get: function() {
return Object.keys(this).length;
}
});
cu.getDescriptor(App.prototype, 'count');
// returns:
// {
// get: [Function],
// set: undefined,
// enumerable: false,
// configurable: false
// }
.copyDescriptor
Copy a descriptor from one object to another.
Params
receiver
{Object}provider
{Object}name
{String}returns
{Object}
Example
function App() {}
Object.defineProperty(App.prototype, 'count', {
get: function() {
return Object.keys(this).length;
}
});
var obj = {};
cu.copyDescriptor(obj, App.prototype, 'count');
.copy
Copy static properties, prototype properties, and descriptors from one object to another.
Params
receiver
{Object}provider
{Object}omit
{String|Array}: One or more properties to omitreturns
{Object}
.inherit
Inherit the static properties, prototype properties, and descriptors from of an object.
Params
receiver
{Object}provider
{Object}omit
{String|Array}: One or more properties to omitreturns
{Object}
.extend
Returns a function for extending the static properties, prototype properties, and descriptors from the Parent
constructor onto Child
constructors.
Params
Parent
{Function}: Parent ctorChild
{Function}: Child ctorproto
{Object}: Optionally pass additional prototype properties to inherit.returns
{Object}
Example
var extend = cu.extend(Parent);
Parent.extend(Child);
// optional methods
Parent.extend(Child, {
foo: function() {},
bar: function() {}
});
Related projects
- define-property: Define a non-enumerable property on an object. | homepage
- delegate-properties: Deep-clone properties from one object to another and make them non-enumerable, or make existing properties… more | homepage
- is-descriptor: Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for… more | homepage
Running tests
Install dev dependencies:
$ npm i -d && npm test
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Author
Jon Schlinkert
License
Copyright © 2015 Jon Schlinkert Released under the MIT license.
This file was generated by verb-cli on November 29, 2015.