UNPKG

class-config-base

Version:

The base class of a configuration class for a interfacial class.

40 lines (31 loc) 871 B
'use strict' const ClassConfig = require('./config') class ClassConfigManager { constructor () { this._objectConfigMap = new WeakMap() } set (object, config) { if (config instanceof ClassConfig || object instanceof ClassConfig) { this._objectConfigMap.set(config, object) this._objectConfigMap.set(object, config) } } delete (objectOrConfig) { const configOrObject = this._objectConfigMap.get(objectOrConfig) this._objectConfigMap.delete(objectOrConfig) this._objectConfigMap.delete(configOrObject) } getConfig (object) { const config = this._objectConfigMap.get(object) if (config instanceof ClassConfig) { return config } } getObject (config) { if (config instanceof ClassConfig) { return this._objectConfigMap.get(config) } } } module.exports = ClassConfigManager