Files
NapCatQQ/.pnpm-store/v3/files/86/568ece22abb5935cc751bd402fb305cacb209aa6a60eb9ed740bfa38c66bf6a1fa0ab6889fb67a73d83a10b402ce5cd3c08ec67ebc8a1c6c025cc4e53a789b
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

31 lines
1.6 KiB
Plaintext

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.resolveScoped = resolveScoped;
const BindingScope_1 = require("../../binding/models/BindingScope");
const cacheResolvedValue_1 = require("./cacheResolvedValue");
const resolveBindingActivations_1 = require("./resolveBindingActivations");
function resolveScoped(getBinding, resolve) {
return (params, arg) => {
const binding = getBinding(arg);
switch (binding.scope) {
case BindingScope_1.bindingScopeValues.Singleton: {
if (binding.cache.isRight) {
return binding.cache.value;
}
const resolvedValue = (0, resolveBindingActivations_1.resolveBindingActivations)(params, binding, resolve(params, arg));
return (0, cacheResolvedValue_1.cacheResolvedValue)(binding, resolvedValue);
}
case BindingScope_1.bindingScopeValues.Request: {
if (params.requestScopeCache.has(binding.id)) {
return params.requestScopeCache.get(binding.id);
}
const resolvedValue = (0, resolveBindingActivations_1.resolveBindingActivations)(params, binding, resolve(params, arg));
params.requestScopeCache.set(binding.id, resolvedValue);
return resolvedValue;
}
case BindingScope_1.bindingScopeValues.Transient:
return (0, resolveBindingActivations_1.resolveBindingActivations)(params, binding, resolve(params, arg));
}
};
}
//# sourceMappingURL=resolveScoped.js.map