@httpc/kit
Version:
httpc toolbox for building function-based API with minimal code and end-to-end type safety
21 lines (20 loc) • 669 B
JavaScript
import { HttpCServerError, useContext } from "@httpc/server";
import { container as globalContainer } from "tsyringe";
import { RESOLVE_MANY } from "./keys";
export function useContainer(scope) {
if (scope === "global") {
return globalContainer;
}
const { container } = useContext();
if (!container) {
throw new HttpCServerError("missingContextData", "missing container");
}
return container;
}
export function useInjected(...tokens) {
const container = useContainer();
const instances = RESOLVE_MANY(container, ...tokens);
return tokens.length === 1
? instances[0]
: instances;
}