UNPKG

@httpc/kit

Version:

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

43 lines (42 loc) 1.61 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.REGISTER_OPTIONS = exports.REGISTER_INSTANCE = exports.RESOLVE_MANY = exports.RESOLVE_ALL = exports.RESOLVE = exports.KEY = exports.CONTAINER_KEY = void 0; const assert_1 = __importDefault(require("assert")); const tsyringe_1 = require("tsyringe"); exports.CONTAINER_KEY = "$CONTAINER"; function KEY(serviceOrGroup, service) { if (typeof service === "function") { (0, assert_1.default)(service.name, "Invalid constructor " + service); service = service.name; } if (service) { serviceOrGroup = `${serviceOrGroup}:${service}`; } return serviceOrGroup; } exports.KEY = KEY; function RESOLVE(container, service) { return container.resolve(service); } exports.RESOLVE = RESOLVE; function RESOLVE_ALL(container, service) { return container.resolveAll(service); } exports.RESOLVE_ALL = RESOLVE_ALL; function RESOLVE_MANY(container, ...types) { return types.map(x => container.resolve(x)); } exports.RESOLVE_MANY = RESOLVE_MANY; function REGISTER_INSTANCE(token, value) { tsyringe_1.container.register(token, { useFactory: (0, tsyringe_1.instanceCachingFactory)(() => value) }); } exports.REGISTER_INSTANCE = REGISTER_INSTANCE; function REGISTER_OPTIONS(service, options) { REGISTER_INSTANCE(KEY("OPTIONS", service), options); } exports.REGISTER_OPTIONS = REGISTER_OPTIONS;