shaman-website-compiler
Version:
Compile raw HTML, CSS and Javascript into the smallest possible, SEO friendly website.
77 lines • 4.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Configure = exports.TYPES = exports.IoC = void 0;
require("reflect-metadata");
var inversify_1 = require("inversify");
var logger_1 = require("../logger");
var website_compiler_1 = require("../website-compiler");
var website_router_1 = require("../website-router");
var event_service_1 = require("../services/event.service");
var glob_service_1 = require("../services/glob.service");
var compiler_context_1 = require("../data/compiler.context");
var json_repo_1 = require("json-repo");
var file_import_service_1 = require("../services/file-import.service");
var handlebars_service_1 = require("../services/handlebars.service");
var add_text_handler_1 = require("../events/add-text.handler");
var add_model_handler_1 = require("../events/add-model.handler");
var javascript_content_handler_1 = require("../events/javascript-content.handler");
var css_content_handler_1 = require("../events/css-content.handler");
var process_model_handler_1 = require("../events/process-model.handler");
var html_content_handler_1 = require("../events/html-content.handler");
var bundle_service_1 = require("../services/bundle.service");
var website_server_1 = require("../website-server");
var adapter_functions_1 = require("../functions/adapter.functions");
exports.IoC = new inversify_1.Container();
exports.TYPES = {
Logger: "Logger",
WebsiteConfig: "WebsiteConfig",
WebsiteCompiler: "WebsiteCompiler",
WebsiteRouter: "WebsiteRouter",
WebsiteServer: "WebsiteServer",
CompilerEvents: "CompilerEvents",
CompilerEventHandler: "CompilerEventHandler",
CompilerDataContext: "CompilerDataContext",
GlobService: "GlobService",
FileImportService: "FileImportService",
HandlebarsService: "HandlebarsService",
BundleService: "BundleService",
QueryAdapter: "QueryAdapter"
};
function Configure(config) {
ConfigureCompilerDataContext(config);
ConfigureServices(config);
ConfigureEventHandlers();
ConfigureQueryAdapter(config);
}
exports.Configure = Configure;
function ConfigureCompilerDataContext(config) {
(0, inversify_1.decorate)(inversify_1.injectable, json_repo_1.RepositoryContext);
exports.IoC.bind(exports.TYPES.Logger).toConstantValue(new logger_1.Logger(config.logLevel));
}
function ConfigureServices(config) {
exports.IoC.bind(exports.TYPES.WebsiteConfig).toConstantValue(config);
exports.IoC.bind(exports.TYPES.WebsiteCompiler).to(website_compiler_1.WebsiteCompiler);
exports.IoC.bind(exports.TYPES.WebsiteRouter).to(website_router_1.WebsiteRouter);
exports.IoC.bind(exports.TYPES.WebsiteServer).to(website_server_1.WebsiteServer);
exports.IoC.bind(exports.TYPES.CompilerEvents)
.to(event_service_1.EventService).inSingletonScope();
exports.IoC.bind(exports.TYPES.CompilerDataContext)
.toConstantValue(new compiler_context_1.CompilerDataContext());
exports.IoC.bind(exports.TYPES.GlobService).to(glob_service_1.GlobService);
exports.IoC.bind(exports.TYPES.FileImportService).to(file_import_service_1.FileImportService);
exports.IoC.bind(exports.TYPES.HandlebarsService).toConstantValue(new handlebars_service_1.HandlebarsService());
exports.IoC.bind(exports.TYPES.BundleService).to(bundle_service_1.BundleService);
}
function ConfigureEventHandlers() {
exports.IoC.bind(exports.TYPES.CompilerEventHandler).to(add_text_handler_1.AddTextHandler);
exports.IoC.bind(exports.TYPES.CompilerEventHandler).to(add_model_handler_1.AddModelHandler);
exports.IoC.bind(exports.TYPES.CompilerEventHandler).to(javascript_content_handler_1.JavascriptContentHandler);
exports.IoC.bind(exports.TYPES.CompilerEventHandler).to(css_content_handler_1.CssContentHandler);
exports.IoC.bind(exports.TYPES.CompilerEventHandler).to(process_model_handler_1.ProcessModelHandler);
exports.IoC.bind(exports.TYPES.CompilerEventHandler).to(html_content_handler_1.HtmlContentHandler);
}
function ConfigureQueryAdapter(config) {
var adapter = (0, adapter_functions_1.RequireAdapter)(config.adapter);
exports.IoC.bind(exports.TYPES.QueryAdapter).toConstantValue(adapter);
}
//# sourceMappingURL=app.composition.js.map