39 lines
993 B
JavaScript
39 lines
993 B
JavaScript
"use strict";
|
|
|
|
exports.__esModule = true;
|
|
exports.hasValidParameter = hasValidParameter;
|
|
exports.isRootInstance = isRootInstance;
|
|
exports.registerAsRootInstance = registerAsRootInstance;
|
|
const holder = new WeakMap();
|
|
exports.holder = holder;
|
|
const rootInstanceSymbol = Symbol('rootInstance');
|
|
|
|
/**
|
|
* Register an object as a root instance.
|
|
*
|
|
* @param {object} object An object to associate with root instance flag.
|
|
*/
|
|
exports.rootInstanceSymbol = rootInstanceSymbol;
|
|
function registerAsRootInstance(object) {
|
|
holder.set(object, true);
|
|
}
|
|
|
|
/**
|
|
* Check if the source of the root indication call is valid.
|
|
*
|
|
* @param {symbol} rootSymbol A symbol as a source of truth.
|
|
* @returns {boolean}
|
|
*/
|
|
function hasValidParameter(rootSymbol) {
|
|
return rootSymbol === rootInstanceSymbol;
|
|
}
|
|
|
|
/**
|
|
* Check if passed an object was flagged as a root instance.
|
|
*
|
|
* @param {object} object An object to check.
|
|
* @returns {boolean}
|
|
*/
|
|
function isRootInstance(object) {
|
|
return holder.has(object);
|
|
} |