UNPKG

web-dev-server

Version:

Node.js simple http server for common development or training purposes.

50 lines 2.41 kB
Object.defineProperty(exports, "__esModule", { value: true }); exports.ObjectHelper = void 0; var ObjectHelper = /** @class */ (function () { function ObjectHelper() { } ObjectHelper.Mixins = function (derivedCtor, baseCtors) { var protectedElms = this.PROTECTED_ELMS; baseCtors.forEach(function (baseCtor) { Object.getOwnPropertyNames(baseCtor.prototype).forEach(function (name) { if (!name.match(protectedElms)) Object.defineProperty(derivedCtor.prototype, name, Object.getOwnPropertyDescriptor(baseCtor.prototype, name)); }); var baseCtorStaticElms = Object.getOwnPropertyDescriptors(baseCtor); for (var key in baseCtorStaticElms) if (!key.match(protectedElms)) derivedCtor[key] = baseCtorStaticElms[key].value; }); }; ObjectHelper.Extend = function (child, parent) { var F = function () { }, protectedElms = this.PROTECTED_ELMS, parentStaticElms = Object.getOwnPropertyDescriptors(parent), childStaticElms = Object.getOwnPropertyDescriptors(child), childProtoElms = Object.getOwnPropertyDescriptors(child.prototype); F.prototype = parent.prototype; child.prototype = new F(); child.prototype.constructor = child; for (var key in parentStaticElms) if (!key.match(protectedElms)) child[key] = parentStaticElms[key].value; for (var key in childStaticElms) if (!key.match(protectedElms)) child[key] = childStaticElms[key].value; for (var key in childProtoElms) child.prototype[key] = childProtoElms[key].value; }; ObjectHelper.RealTypeOf = function (obj) { var proto = Object.getPrototypeOf(obj); if (proto && proto.constructor) { return proto.constructor.name; } else { var s = Object.prototype.toString.apply(obj); return s.substr(8, s.length - 9); } }; ObjectHelper.IsPrimitiveType = function (obj) { return (obj !== Object(obj)); }; ObjectHelper.PROTECTED_ELMS = /^(?:constructor|prototype|length|name|arguments|caller|call|apply|bind|toString)$/g; return ObjectHelper; }()); exports.ObjectHelper = ObjectHelper; //# sourceMappingURL=ObjectHelper.js.map