UNPKG

@vulcan-sql/core

Version:
41 lines 2.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extensionModule = void 0; const tslib_1 = require("tslib"); const inversify_1 = require("inversify"); const extension_loader_1 = require("../../lib/extension-loader"); const built_in_extensions_1 = require("../../lib/template-engine/built-in-extensions"); const built_in_validators_1 = require("../../lib/validators/built-in-validators"); const loggers_1 = require("../../lib/loggers"); const template_engine_1 = require("../../lib/template-engine/index"); const artifact_builder_1 = require("../../lib/artifact-builder/index"); const data_source_1 = require("../../lib/data-source/index"); const data_query_1 = require("../../lib/data-query/index"); const extensionModule = (options) => new inversify_1.AsyncContainerModule((bind) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const loader = new extension_loader_1.ExtensionLoader(options); // Internal extension modules // Template engine (multiple modules) for (const templateEngineModule of built_in_extensions_1.default) { loader.loadInternalExtensionModule(templateEngineModule); } loader.loadInternalExtensionModule(loggers_1.default); // Validator (single module) loader.loadInternalExtensionModule(built_in_validators_1.default); // Template provider (single module) loader.loadInternalExtensionModule(template_engine_1.builtInTemplateProvider); // Serializer (single module) loader.loadInternalExtensionModule(artifact_builder_1.builtInSerializer); // Persistent store (single module) loader.loadInternalExtensionModule(artifact_builder_1.builtInPersistentStore); // Code Loader (single module) loader.loadInternalExtensionModule(template_engine_1.builtInCodeLoader); // Data source (single module) loader.loadInternalExtensionModule(data_source_1.builtInDataSource); // Profile reader (single module) loader.loadInternalExtensionModule(data_query_1.buildInProfileReaders); // External extension modules yield loader.loadExternalExtensionModules(); loader.bindExtensions(bind); })); exports.extensionModule = extensionModule; //# sourceMappingURL=extension.js.map