Comparing version 0.1.5 to 0.2.0
@@ -15,58 +15,2 @@ 'use strict'; | ||
exports.default = function (s_class_name, f_constructor) { | ||
var h_static = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; | ||
var h_logger_config = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3]; | ||
// when called (with or without new keyword), invoke constructor | ||
var f_local = function f_local() { | ||
return f_constructor.apply(this, arguments); | ||
}; | ||
// default members | ||
(0, _defineProperties2.default)(f_local, { | ||
// override toString | ||
toString: { | ||
value: function value() { | ||
return s_class_name + '()'; | ||
} | ||
} | ||
}); | ||
// define static members | ||
for (var s_key in h_static) { | ||
(0, _defineProperty2.default)(f_local, s_key, { | ||
enumerable: true, | ||
value: h_static[s_key] | ||
}); | ||
} | ||
// set logger actions | ||
var _loop = function _loop(s_level) { | ||
var f_log = function f_log(s_msg) { | ||
logger.log(s_level, s_msg, { class_name: s_class_name }); | ||
}; | ||
if ('fail' === s_level) { | ||
f_log = function f_log(s_msg) { | ||
logger.log(s_level, s_msg, { class_name: s_class_name }); | ||
logger.log(s_level, new Error().stack.split(/\n/g).slice(3).join('\n'), { class_name: s_class_name }); | ||
throw 'Exitting on fatal error'; | ||
}; | ||
} | ||
(0, _defineProperty2.default)(f_local, s_level, { | ||
value: f_log | ||
}); | ||
}; | ||
for (var s_level in H_LEVEL_COLORS) { | ||
_loop(s_level); | ||
} | ||
// return actual class | ||
return f_local; | ||
}; | ||
var _winston = require('winston'); | ||
@@ -134,2 +78,71 @@ | ||
// | ||
// | ||
var local = function local(s_class_name, f_constructor) { | ||
var h_static = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; | ||
var h_logger_config = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3]; | ||
// when called (with or without new keyword), invoke constructor | ||
var f_local = function f_local() { | ||
return f_constructor.apply(this, arguments); | ||
}; | ||
// default members | ||
(0, _defineProperties2.default)(f_local, { | ||
// override toString | ||
toString: { | ||
value: function value() { | ||
return s_class_name + '()'; | ||
} | ||
} | ||
}); | ||
// define static members | ||
for (var s_key in h_static) { | ||
(0, _defineProperty2.default)(f_local, s_key, { | ||
enumerable: true, | ||
value: h_static[s_key] | ||
}); | ||
} | ||
// set logger actions | ||
var _loop = function _loop(s_level) { | ||
var f_log = function f_log(s_msg) { | ||
logger.log(s_level, s_msg, { class_name: s_class_name }); | ||
}; | ||
if ('fail' === s_level) { | ||
f_log = function f_log(s_msg) { | ||
logger.log(s_level, s_msg, { class_name: s_class_name }); | ||
logger.log(s_level, new Error().stack.split(/\n/g).slice(3).join('\n'), { class_name: s_class_name }); | ||
throw 'Exitting on fatal error'; | ||
}; | ||
} | ||
(0, _defineProperty2.default)(f_local, s_level, { | ||
value: f_log | ||
}); | ||
}; | ||
for (var s_level in H_LEVEL_COLORS) { | ||
_loop(s_level); | ||
} | ||
// return actual class | ||
return f_local; | ||
}; | ||
// define properties/methods on public operator | ||
local.operator = function (f_operator, h_properties) { | ||
// simple copy-ref | ||
for (var s_property in h_properties) { | ||
f_operator[s_property] = h_properties[s_property]; | ||
} | ||
// return mutated operator | ||
return f_operator; | ||
}; | ||
// export module | ||
exports.default = local; |
{ | ||
"name": "classer", | ||
"version": "0.1.5", | ||
"version": "0.2.0", | ||
"description": "Yet another way to create class-like object/functions with private, public, and static members", | ||
@@ -5,0 +5,0 @@ "author": { |
@@ -44,3 +44,5 @@ # classer | ||
**/ | ||
return { | ||
return classer.operator(function() { | ||
return 'hi! I am '+s_name; | ||
}, { | ||
org: 2, | ||
@@ -76,4 +78,5 @@ | ||
let instance = MyClass({name: 'cartman', limit: 5}); | ||
instance(); // 'hi! I am cartman' | ||
instance.getName(); // 'cartman' | ||
MyClass.help(); // 'help yourself' | ||
``` |
9130
211
80