Socket
Socket
Sign inDemoInstall

extender

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

extender - npm Package Compare versions

Comparing version 0.0.4 to 0.0.5

test/browserling.js

17

extender.js

@@ -448,10 +448,11 @@ (function () {

if (!(obj instanceof Base)) {
var base = {}, instance = (base.instance = {"__extender__": _extender});
var OurBase = Base;
for (i = 0, l = defined.length; i < l; i++) {
var definer = defined[i];
if (definer[0](obj)) {
merge(instance, definer[1]);
OurBase = OurBase.extend({instance: definer[1]});
}
}
ret = new (Base.extend(base))(obj);
ret = new OurBase(obj);
ret["__extender__"] = _extender;
}

@@ -474,2 +475,12 @@ return ret;

decorateProto(proto, decorate);
//handle browsers like which skip over the constructor while looping
if (!proto.hasOwnProperty("constructor")) {
if (decorate.hasOwnProperty("constructor")) {
addMethod(proto, "constructor", decorate.constructor);
} else {
proto.constructor = function () {
this._super(arguments);
};
}
}
defined.push([tester, proto]);

@@ -476,0 +487,0 @@ }

{
"name": "extender",
"version": "0.0.4",
"version": "0.0.5",
"description": "Easily create object decorators!",

@@ -22,9 +22,19 @@ "main": "index.js",

"license": "MIT",
"testling": {
"files": "test/browserling.js",
"browsers": {
"ie": [6, 7, 8, 9],
"chrome": [4, 23, "canary"],
"firefox": [3, 3.5, 3.6, 4, 17, "nightly"],
"opera": [10, 10.5, 11, 11.5, 11.6, 12, "next"],
"safari": ["5.0.1", 5.1]
}
},
"dependencies": {
"declare.js": "0.0.3"
"declare.js": "~0.0.4"
},
"devDependencies": {
"it": "~0.1.0",
"it": "~0.2.0",
"grunt-it": "~0.2.0"
}
}

5

README.md
<a name="top"></a>
[![build status](https://secure.travis-ci.org/doug-martin/extender.png)](http://travis-ci.org/doug-martin/extender)
[![build status](https://secure.travis-ci.org/doug-martin/extender.png)](http://travis-ci.org/doug-martin/extender)
[![browser support](http://ci.testling.com/doug-martin/extender.png)](http://ci.testling.com/doug-martin/extender)
# Extender

@@ -6,0 +9,0 @@

@@ -11,19 +11,19 @@ "use strict";

var isMethods = {
isFunction: is.function,
isNumber: is.number,
isString: is.string,
isDate: is.date,
isArray: is.array,
isBoolean: is.boolean,
isUndefined: is.undefined,
isDefined: is.defined,
isUndefinedOrNull: is.undefinedOrNull,
isNull: is.null,
isArguments: is.arguments,
isInstanceOf: is.instanceOf,
isRegExp: is.regExp
isFunction: is.isFunction,
isNumber: is.isNumber,
isString: is.isString,
isDate: is.isDate,
isArray: is.isArray,
isBoolean: is.isBoolean,
isUndefined: is.isUndefined,
isDefined: is.isDefined,
isUndefinedOrNull: is.isUndefinedOrNull,
isNull: is.isNull,
isArguments: is.isArguments,
isInstanceOf: is.isInstanceOf,
isRegExp: is.isRegExp
};
var myExtender = extender
.define(isMethods)
.define(is.string, {
.define(is.isString, {
multiply: function (str, times) {

@@ -57,3 +57,3 @@ var ret = str;

})
.define(is.array, {
.define(is.isArray, {
pluck: function (arr, m) {

@@ -77,3 +77,3 @@ var ret = [];

})
.define(is.boolean, {
.define(is.isBoolean, {

@@ -142,15 +142,15 @@ invert: function (val) {

.define({
isFunction: is.function,
isNumber: is.number,
isString: is.string,
isDate: is.date,
isArray: is.array,
isBoolean: is.boolean,
isUndefined: is.undefined,
isDefined: is.defined,
isUndefinedOrNull: is.undefinedOrNull,
isNull: is.null,
isArguments: is.arguments,
isInstanceOf: is.instanceOf,
isRegExp: is.regExp
isFunction: is.isFunction,
isNumber: is.isNumber,
isString: is.isString,
isDate: is.isDate,
isArray: is.isArray,
isBoolean: is.isBoolean,
isUndefined: is.isUndefined,
isDefined: is.isDefined,
isUndefinedOrNull: is.isUndefinedOrNull,
isNull: is.isNull,
isArguments: is.isArguments,
isInstanceOf: is.isInstanceOf,
isRegExp: is.isRegExp
});

@@ -171,3 +171,3 @@

.expose(isMethods);
var myExtender2 = extender.define(is.array, {
var myExtender2 = extender.define(is.isArray, {
pluck: function (arr, m) {

@@ -212,3 +212,25 @@ var ret = [];

it.describe("custom extenders with constructors", function (it) {
var myExtender = extender.define({
constructor: function (value) {
this.valueType = Object.prototype.toString.call(value);
},
}).run();
noWrap: {
stringType: function () {
return this.valueType;
}
}
});
it.should("invoke the constructor", function () {
assert.equal(myExtender("string").stringType(), "[object String]");
});
it.should("call super properly", function () {
assert.equal(myExtender("hello").value(), "hello");
});
});
});

@@ -68,14 +68,14 @@

exports.function = isFunction;
exports.number = isNumber;
exports.string = isString;
exports.date = isDate;
exports.array = isArray;
exports.boolean = isBoolean;
exports.undefined = isUndefined;
exports.defined = isDefined;
exports.undefinedOrNull = isUndefinedOrNull;
exports.null = isNull;
exports.arguments = isArguments;
exports.instanceOf = isInstanceOf;
exports.regExp = isRegExp;
exports.isFunction = isFunction;
exports.isNumber = isNumber;
exports.isString = isString;
exports.isDate = isDate;
exports.isArray = isArray;
exports.isBoolean = isBoolean;
exports.isUndefined = isUndefined;
exports.isDefined = isDefined;
exports.isUndefinedOrNull = isUndefinedOrNull;
exports.isNull = isNull;
exports.isArguments = isArguments;
exports.isInstanceOf = isInstanceOf;
exports.isRegExp = isRegExp;
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc