static-type-js
Advanced tools
Comparing version 0.3.0 to 0.3.1
@@ -5,3 +5,3 @@ { | ||
"description": "Prototype inheritance and type system for js", | ||
"version": "0.3.0", | ||
"version": "0.3.1", | ||
"repository": { | ||
@@ -8,0 +8,0 @@ "type": "git", |
@@ -7,5 +7,5 @@ describe('Typejs', function () { | ||
Group = Type.create({ | ||
_group: Type.STIRNG | ||
_group: Type.STRING | ||
}, { | ||
_construct: function (group) { | ||
_construct: function Group_construct(group) { | ||
this._group = group; | ||
@@ -21,6 +21,6 @@ }, | ||
AdminUser = Group.inherit({ | ||
username: Type.STIRNG, | ||
username: Type.STRING, | ||
date: Type.DATE | ||
}, { | ||
_construct: function (username) { | ||
_construct: function AdminUser_construct(username) { | ||
@@ -36,6 +36,6 @@ this.username = username; | ||
User = AdminUser.inherit({ | ||
username: Type.STIRNG, | ||
username: Type.STRING, | ||
date: Type.DATE | ||
}, { | ||
_construct: function (username) { | ||
_construct: function User_construct(username) { | ||
// define | ||
@@ -273,3 +273,3 @@ | ||
expect(Type.assert(Type.REGEX, new RegExp)).toBe(true); | ||
expect(Type.assert(Type.STIRNG, "")).toBe(true); | ||
expect(Type.assert(Type.STRING, "")).toBe(true); | ||
expect(Type.assert(Type.NUMBER, 1)).toBe(true); | ||
@@ -381,3 +381,3 @@ expect(Type.assert(Type.NUMBER, 0)).toBe(true); | ||
one: Type.NUMBER, | ||
two: Type.STIRNG | ||
two: Type.STRING | ||
}, { | ||
@@ -406,3 +406,3 @@ _construct: function (one, two) { | ||
var User = Type.create({ | ||
username: Type.STIRNG, | ||
username: Type.STRING, | ||
date: Type.DATE | ||
@@ -443,3 +443,3 @@ }, { | ||
Type.create({ | ||
username: Type.STIRNG, | ||
username: Type.STRING, | ||
date: "invalid" | ||
@@ -459,3 +459,3 @@ }, { | ||
Type.create({ | ||
username: Type.STIRNG, | ||
username: Type.STRING, | ||
date: "null" | ||
@@ -477,3 +477,3 @@ }, { | ||
Group = Type.create({ | ||
_group: Type.STIRNG, | ||
_group: Type.STRING, | ||
child: Type.OBJECT | ||
@@ -496,3 +496,3 @@ }, { | ||
AdminUser = Group.inherit({ | ||
username: Type.STIRNG, | ||
username: Type.STRING, | ||
date: Type.DATE | ||
@@ -515,3 +515,3 @@ }, { | ||
User = AdminUser.inherit({ | ||
username: Type.STIRNG, | ||
username: Type.STRING, | ||
date: Type.DATE | ||
@@ -538,3 +538,3 @@ }, { | ||
Group = Type.create({ | ||
_group: Type.STIRNG, | ||
_group: Type.STRING, | ||
child: Type.OBJECT | ||
@@ -557,3 +557,3 @@ }, { | ||
AdminUser = Group.inherit({ | ||
username: Type.STIRNG, | ||
username: Type.STRING, | ||
date: Type.DATE | ||
@@ -567,3 +567,3 @@ }, { | ||
User = AdminUser.inherit({ | ||
username: Type.STIRNG, | ||
username: Type.STRING, | ||
date: Type.DATE | ||
@@ -590,3 +590,3 @@ }, { | ||
Group = Type.create({ | ||
_group: Type.STIRNG, | ||
_group: Type.STRING, | ||
child: Type.OBJECT | ||
@@ -609,3 +609,3 @@ }, { | ||
AdminUser = Group.inherit({ | ||
username: Type.STIRNG, | ||
username: Type.STRING, | ||
date: Type.DATE | ||
@@ -619,3 +619,3 @@ }, { | ||
User = AdminUser.inherit({ | ||
username: Type.STIRNG, | ||
username: Type.STRING, | ||
date: Type.DATE | ||
@@ -636,3 +636,3 @@ }, { | ||
Group = Type.create({ | ||
_group: Type.STIRNG, | ||
_group: Type.STRING, | ||
child: Type.OBJECT | ||
@@ -654,3 +654,3 @@ }, { | ||
AdminUser = Group.inherit({ | ||
username: Type.STIRNG, | ||
username: Type.STRING, | ||
date: Type.DATE | ||
@@ -664,3 +664,3 @@ }, { | ||
User = AdminUser.inherit({ | ||
username: Type.STIRNG, | ||
username: Type.STRING, | ||
date: Type.DATE | ||
@@ -678,5 +678,17 @@ }, { | ||
it('it shoud be al ways constructed!', function () { | ||
var message = tryCatch(function() { | ||
User('igor'); | ||
}); | ||
expect(message).toBe("Object must be constructed"); | ||
}); | ||
xit('benchmark group', function () { | ||
var Test = Type.create({ | ||
_group: Type.STIRNG | ||
_group: Type.STRING | ||
}, { | ||
@@ -683,0 +695,0 @@ _construct: function (group) { |
25
type.js
@@ -104,9 +104,12 @@ (function (root, factory) { | ||
/** | ||
* @returns {Type.Class} | ||
* @returns {Type._Constructor} | ||
* @constructor | ||
*/ | ||
function Class() { | ||
function _Constructor() { | ||
if (initializing) { | ||
return this; | ||
} | ||
if (!(this instanceof Type)) { | ||
throw new TypeError('Object must be constructed'); | ||
} | ||
this.__dynamic__ = {}; | ||
@@ -122,5 +125,5 @@ Object.preventExtensions(this); // prevent extensions | ||
Class.prototype = prototype; | ||
Class.prototype.constructor = Type; | ||
Class.prototype.destroy = function () { | ||
_Constructor.prototype = prototype; | ||
_Constructor.prototype.constructor = Type; | ||
_Constructor.prototype.destroy = function _Constructor_destroy() { | ||
this.__dynamic__ = null; | ||
@@ -130,7 +133,7 @@ }; | ||
Class.inherit = Type.create; | ||
_Constructor.inherit = Type.create; | ||
Object.freeze(Class); | ||
Object.freeze(_Constructor); | ||
return Class; | ||
return _Constructor; | ||
}; | ||
@@ -164,3 +167,3 @@ /** | ||
Type.OBJECT = "object"; | ||
Type.STIRNG = "string"; | ||
Type.STRING = "string"; | ||
Type.ARRAY = "array"; | ||
@@ -188,3 +191,3 @@ Type.REGEX = "regexp"; | ||
case Type.OBJECT: | ||
case Type.STIRNG: | ||
case Type.STRING: | ||
case Type.ARRAY: | ||
@@ -242,3 +245,3 @@ case Type.REGEX: | ||
} else if (Type.isString(value)) { | ||
return Type.STIRNG; | ||
return Type.STRING; | ||
} else if (Type.isNumber(value)) { | ||
@@ -245,0 +248,0 @@ return Type.NUMBER; |
40669
1024