@notjustcoders/ioc-arise
Version:
Arise type-safe IoC containers from your code. Zero overhead, zero coupling.
37 lines • 2.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PathInjectionUtils = exports.ModularContainerGenerator = exports.BaseContainerGenerator = exports.ContainerGeneratorFactory = void 0;
exports.generateContainerFile = generateContainerFile;
exports.detectCircularDependencies = detectCircularDependencies;
const dependency_resolver_1 = require("../analyser/dependency-resolver");
const container_generator_factory_1 = require("./container-generator-factory");
/**
* Generates a container file from either flat classes or module-grouped classes.
*
* @param classesOrModules - Either a flat array of classes or a Map of module-grouped classes
* @param outputPath - The output path for the generated container file
*/
function generateContainerFile(classesOrModules, outputPath) {
const generator = container_generator_factory_1.ContainerGeneratorFactory.create(classesOrModules, outputPath);
generator.generate();
}
/**
* Detects circular dependencies in a flat array of classes.
*
* @param classes - The classes to check for circular dependencies
* @returns An array of circular dependency chains
*/
function detectCircularDependencies(classes) {
const resolver = new dependency_resolver_1.DependencyResolver(classes);
return resolver.detectCircularDependencies();
}
// Re-export the factory for advanced usage
var container_generator_factory_2 = require("./container-generator-factory");
Object.defineProperty(exports, "ContainerGeneratorFactory", { enumerable: true, get: function () { return container_generator_factory_2.ContainerGeneratorFactory; } });
var base_container_generator_1 = require("./base-container-generator");
Object.defineProperty(exports, "BaseContainerGenerator", { enumerable: true, get: function () { return base_container_generator_1.BaseContainerGenerator; } });
var modular_container_generator_1 = require("./modular/modular-container-generator");
Object.defineProperty(exports, "ModularContainerGenerator", { enumerable: true, get: function () { return modular_container_generator_1.ModularContainerGenerator; } });
var path_injection_utils_1 = require("./shared/path-injection-utils");
Object.defineProperty(exports, "PathInjectionUtils", { enumerable: true, get: function () { return path_injection_utils_1.PathInjectionUtils; } });
//# sourceMappingURL=index.js.map