@vulcan-sql/core
Version:
Core package of VulcanSQL
41 lines • 2.22 kB
JavaScript
;
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