123456789101112131415161718192021222324252627282930313233343536373839 |
- const {addReadProp} = require('./utils');
- /**
- * @private
- * @class InnerState
- * @description
- * Implements support for private/inner state object inside the class,
- * which can be accessed by a derived class via hidden read-only property _inner.
- */
- class InnerState {
- constructor(initialState) {
- addReadProp(this, '_inner', {}, true);
- if (initialState && typeof initialState === 'object') {
- this.extendState(initialState);
- }
- }
- /**
- * Extends or overrides inner state with the specified properties.
- *
- * Only own properties are used, i.e. inherited ones are skipped.
- */
- extendState(state) {
- for (const a in state) {
- // istanbul ignore else
- if (Object.prototype.hasOwnProperty.call(state, a)) {
- this._inner[a] = state[a];
- }
- }
- }
- }
- /**
- * @member InnerState#_inner
- * Private/Inner object state.
- */
- module.exports = {InnerState};
|