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

47 lines
2.4 KiB
Plaintext

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const reflection_helpers_1 = require("../reflection-helpers");
const dependency_container_1 = require("../dependency-container");
const injection_token_1 = require("../providers/injection-token");
const error_helpers_1 = require("../error-helpers");
function autoInjectable() {
return function (target) {
const paramInfo = reflection_helpers_1.getParamInfo(target);
return class extends target {
constructor(...args) {
super(...args.concat(paramInfo.slice(args.length).map((type, index) => {
try {
if (injection_token_1.isTokenDescriptor(type)) {
if (injection_token_1.isTransformDescriptor(type)) {
return type.multiple
? dependency_container_1.instance
.resolve(type.transform)
.transform(dependency_container_1.instance.resolveAll(type.token), ...type.transformArgs)
: dependency_container_1.instance
.resolve(type.transform)
.transform(dependency_container_1.instance.resolve(type.token), ...type.transformArgs);
}
else {
return type.multiple
? dependency_container_1.instance.resolveAll(type.token)
: dependency_container_1.instance.resolve(type.token);
}
}
else if (injection_token_1.isTransformDescriptor(type)) {
return dependency_container_1.instance
.resolve(type.transform)
.transform(dependency_container_1.instance.resolve(type.token), ...type.transformArgs);
}
return dependency_container_1.instance.resolve(type);
}
catch (e) {
const argIndex = index + args.length;
throw new Error(error_helpers_1.formatErrorCtor(target, argIndex, e));
}
})));
}
};
};
}
exports.default = autoInjectable;