for-ease
Version:
a simple library for itrating over anything
45 lines (44 loc) • 1.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const objectArrayClass_1 = require("./objectArrayClass");
const functionClass_1 = require("./functionClass");
const objectClass_1 = require("./objectClass");
const stringArrayClass_1 = require("./stringArrayClass");
const stringClass_1 = require("./stringClass");
const numberArrayClass_1 = require("./numberArrayClass");
const numberClass_1 = require("./numberClass");
class DoFactory {
constructor(_mixedObj) {
this._mixedObj = _mixedObj;
this._classes = {};
this._makeClasses();
_mixedObj ? this.makeCounter() : '';
}
_makeClasses() {
this._classes['function'] = new functionClass_1.FunctionClass();
this._classes['string'] = new stringClass_1.StringClass();
this._classes['number'] = new numberClass_1.NumberClass();
this._classes['object'] = new objectClass_1.ObjectClass();
this._classes['string[]'] = new stringArrayClass_1.StringArrayClass();
this._classes['number[]'] = new numberArrayClass_1.NumberArrayClass();
this._classes['object[]'] = new objectArrayClass_1.ObjectArrayClass();
}
makeCounter() {
this._counter = this._classes[this._getMixedObjType()]
.setMixedObj(this._mixedObj).getCounter();
}
_getMixedObjType() {
const mixedObj = this._mixedObj;
const isMixedObjArray = Array.isArray(mixedObj);
return isMixedObjArray ? (typeof mixedObj[0]) + '[]' : typeof mixedObj;
}
setMixedObj(obj) {
this._mixedObj = obj;
this.makeCounter();
return this;
}
getCounter() {
return this._counter;
}
}
exports.DoFactory = DoFactory;