Home Reference Source

src/magisterThing.js

import _ from 'lodash'
import { Magister } from './magister'

class MagisterThing {
	/**
	 * @private
	 * @param {Magister} magister
	 * @throws {Error} when `magister` isn't a {@link Magister} instance.
	 */
	constructor(magister) {
		if (!(magister instanceof Magister)) {
			throw new Error('`magister` must be a `Magister` instance')
		}

		/**
		 * @type {Magister}
		 * @private
		 * @readonly
		 */
		this._magister = magister
	}

	/**
	 * @returns {Object}
	 */
	toJSON() {
		// REVIEW: do we want to omit all keys starting with '_'?
		return _.omit(this, [ '_magister' ])
	}
}

export default MagisterThing