UNPKG

@httpc/kit

Version:

httpc toolbox for building function-based API with minimal code and end-to-end type safety

31 lines (30 loc) 971 B
import { container as globalContainer } from "tsyringe"; import { CONTAINER_KEY } from "./keys"; /* * Add extra functionality to tsyringe container * - self registration, so it can resolve itself */ // self register patchSelfRegister(globalContainer); function patchSelfRegister(container) { registerSelf(container); // self register on child patch(container, "createChildContainer", function (original) { const value = original.call(this); patchSelfRegister(value); return value; }); patch(container, "reset", function (original) { original.call(this); registerSelf(this); }); function registerSelf(container) { container.registerInstance(CONTAINER_KEY, container); } } function patch(instance, method, body) { const oldMethod = instance[method]; instance[method] = function () { return body.apply(this, [oldMethod, ...arguments]); }; }