Locaft-backend/auth/node_modules/context/dist/context.esm.js

177 lines
4.1 KiB
JavaScript

function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
var getInnerName = function getInnerName(name) {
return "__" + name;
};
var Context = /*#__PURE__*/function () {
function Context(_ref, ctxRef) {
var _init;
var use = _ref.use,
set = _ref.set,
addQueryableProperties = _ref.addQueryableProperties,
init = _ref.init;
this._parentContext = null;
var ctx = use();
var usedRef = typeof init === 'function' ? (_init = init(ctxRef, ctx)) !== null && _init !== void 0 ? _init : ctxRef : ctxRef;
var queryableProperties = addQueryableProperties(usedRef);
if (usedRef && typeof usedRef === 'object') {
for (var key in queryableProperties) {
if (Object.prototype.hasOwnProperty.call(usedRef, key)) {
this[getInnerName(key)] = usedRef[key];
}
this.addLookupProperty(key);
}
}
if (ctx) {
this.setParentContext(ctx);
}
set(this);
}
Context.is = function is(value) {
return value instanceof Context;
};
var _proto = Context.prototype;
_proto.addLookupProperty = function addLookupProperty(key) {
var innerName = getInnerName(key);
Object.defineProperty(this, key, {
get: function get() {
return this.lookup(innerName);
},
set: function set(value) {
throw new Error("Context: Unable to set \"" + key + "\" to `" + JSON.stringify(value) + "`. Context properties cannot be set directly. Use context.run() instead.");
}
});
} // @ts-ignore - we actually do use lookup
;
_proto.lookup = function lookup(key) {
var ctx = this;
do {
if (ctx.hasOwnProperty(key)) {
return ctx[key];
}
if (Context.is(ctx.parentContext)) {
ctx = ctx.parentContext;
} else {
return;
}
} while (ctx);
};
_proto.setParentContext = function setParentContext(parentContext) {
if (Context.is(this)) {
this._parentContext = parentContext;
}
};
_createClass(Context, [{
key: "parentContext",
get: function get() {
return this._parentContext;
}
}]);
return Context;
}();
function createContext(init) {
var storage = {
ctx: undefined
};
var queryableProperties = {};
function addQueryableProperties(ctxRef) {
if (!ctxRef || typeof ctxRef !== 'object') {
return {};
}
for (var key in ctxRef) {
if (Object.prototype.hasOwnProperty.call(ctxRef, key)) {
queryableProperties[key] = true;
}
}
return queryableProperties;
}
function use() {
return storage.ctx;
}
function set(value) {
return storage.ctx = value;
}
function clear() {
var ctx = use();
if (!Context.is(ctx)) {
return;
}
set(ctx.parentContext);
}
function run(ctxRef, fn) {
var ctx = new Context({
set: set,
use: use,
addQueryableProperties: addQueryableProperties,
init: init
}, ctxRef);
var res = fn(ctx);
clear();
return res;
}
function bind(ctxRef, fn) {
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
args[_key - 2] = arguments[_key];
}
return function () {
for (var _len2 = arguments.length, runTimeArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
runTimeArgs[_key2] = arguments[_key2];
}
return run(ctxRef, function () {
return fn.apply(void 0, args.concat(runTimeArgs));
});
};
}
return {
use: use,
run: run,
bind: bind
};
}
export default createContext;
//# sourceMappingURL=context.esm.js.map