pg-promise
Version:
PostgreSQL interface for Node.js
40 lines (34 loc) • 1.02 kB
JavaScript
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};