UNPKG

for-ease

Version:

a simple library for itrating over anything

45 lines (44 loc) 1.77 kB
"use strict"; 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;