@mdfriday/foundry
Version:
The core engine of MDFriday. Convert Markdown and shortcodes into fully themed static sites – Hugo-style, powered by TypeScript.
44 lines • 1.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NavigationFactory = void 0;
exports.createNavigationFactory = createNavigationFactory;
const navigation_1 = require("../entity/navigation");
const menu_builder_1 = require("../entity/menu-builder");
const taxonomies_builder_1 = require("../entity/taxonomies-builder");
const log_1 = require("../../../../pkg/log");
// Create domain-specific logger for navigation factory operations
const log = (0, log_1.getDomainLogger)('site', { component: 'navigation-factory' });
class NavigationFactory {
constructor(langService, contentService) {
this.langService = langService;
this.contentService = contentService;
}
/**
* Create a Navigation entity with menu building capabilities
*/
createNavigation() {
try {
// Create navigation entity
const navigation = (0, navigation_1.newNavigation)(this.langService);
// Create and set menu builder
const menuBuilder = new menu_builder_1.MenuBuilder(this.contentService);
navigation.setMenuBuilder(menuBuilder);
// Initialize taxonomies
const taxonomiesBuilder = new taxonomies_builder_1.TaxonomiesBuilder(this.contentService);
navigation.setTaxonomiesBuilder(taxonomiesBuilder);
return navigation;
}
catch (error) {
log.error(`Failed to create Navigation entity: ${error}`);
throw error;
}
}
}
exports.NavigationFactory = NavigationFactory;
/**
* Create navigation factory instance
*/
function createNavigationFactory(langService, contentService) {
return new NavigationFactory(langService, contentService);
}
//# sourceMappingURL=navigation-factory.js.map