nrgy
Version:
The library for reactive programming using efficient computing and MVC/MVVM patterns
39 lines (36 loc) • 1.01 kB
JavaScript
import {
DITOX_EXTENSION_CONTAINER_KEY,
provideDependencyContainer,
withContainer
} from "./chunk-AJLPQIAO.js";
import {
ControllerConstructorError
} from "./chunk-WLVNLWGT.js";
import "./chunk-JYWBIFMU.js";
import "./chunk-6EESSQRU.js";
// src/ditox/withInjections.ts
import { resolveValues } from "ditox";
function withInjections(tokens) {
return (sourceContext, extensionParams) => {
const container = extensionParams == null ? void 0 : extensionParams[DITOX_EXTENSION_CONTAINER_KEY];
if (!container) {
throw new ControllerConstructorError(
"Dependency injection container is not provided"
);
}
const deps = resolveValues(container, tokens)[0];
return { ...sourceContext, deps };
};
}
// src/ditox/applyInjections.ts
function applyInjections(controller) {
return (container) => {
return new controller([provideDependencyContainer(container)]);
};
}
export {
applyInjections,
provideDependencyContainer,
withContainer,
withInjections
};