UNPKG

@vulcan-sql/core

Version:
39 lines 1.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.artifactBuilderModule = void 0; const tslib_1 = require("tslib"); const inversify_1 = require("inversify"); const artifact_builder_1 = require("../../lib/artifact-builder/index"); const types_1 = require("../types"); const options_1 = require("../../options"); const artifactBuilderModule = (options) => new inversify_1.AsyncContainerModule((bind) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { // Options bind(types_1.TYPES.ArtifactBuilderInputOptions).toConstantValue(options); bind(types_1.TYPES.ArtifactBuilderOptions) .to(options_1.ArtifactBuilderOptions) .inSingletonScope(); // PersistentStore bind(types_1.TYPES.Factory_PersistentStore).toAutoNamedFactory(types_1.TYPES.Extension_PersistentStore); bind(types_1.TYPES.PersistentStore) .toDynamicValue((context) => { const factory = context.container.get(types_1.TYPES.Factory_PersistentStore); const options = context.container.get(types_1.TYPES.ArtifactBuilderOptions); return factory(options.provider); }) .inSingletonScope(); // Serializer bind(types_1.TYPES.Factory_Serializer).toAutoNamedFactory(types_1.TYPES.Extension_Serializer); bind(types_1.TYPES.Serializer) .toDynamicValue((context) => { const factory = context.container.get(types_1.TYPES.Factory_Serializer); const options = context.container.get(types_1.TYPES.ArtifactBuilderOptions); return factory(options.serializer); }) .inSingletonScope(); // ArtifactBuilder bind(types_1.TYPES.ArtifactBuilder) .to(artifact_builder_1.VulcanArtifactBuilder) .inSingletonScope(); })); exports.artifactBuilderModule = artifactBuilderModule; //# sourceMappingURL=artifactBuilder.js.map