UNPKG

@vulcan-sql/core

Version:
49 lines 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.VulcanArtifactBuilder = void 0; const tslib_1 = require("tslib"); const models_1 = require("../../models/index"); const models_2 = require("../../models/index"); const inversify_1 = require("inversify"); const types_1 = require("../../containers/types"); const utils_1 = require("../utils"); const class_transformer_1 = require("class-transformer"); let VulcanArtifactBuilder = class VulcanArtifactBuilder { constructor(persistentStore, serializer) { this.artifact = {}; this.serializer = serializer; this.persistentStore = persistentStore; } build() { return tslib_1.__awaiter(this, void 0, void 0, function* () { const artifactInPureObject = (0, class_transformer_1.instanceToPlain)(this.artifact); const serializedArtifact = this.serializer.serialize(artifactInPureObject); yield this.persistentStore.save(serializedArtifact); }); } load() { return tslib_1.__awaiter(this, void 0, void 0, function* () { const serializedArtifact = yield this.persistentStore.load(); const artifactInPureObject = this.serializer.deserialize(serializedArtifact); this.artifact = (0, class_transformer_1.plainToInstance)(models_1.BuiltArtifact, artifactInPureObject); }); } getArtifact(key) { const target = this.artifact[key]; if (!target) throw new utils_1.InternalError(`Artifact ${key} not found`); return target; } addArtifact(key, data) { this.artifact[key] = data; } }; VulcanArtifactBuilder = tslib_1.__decorate([ (0, inversify_1.injectable)(), tslib_1.__param(0, (0, inversify_1.inject)(types_1.TYPES.PersistentStore)), tslib_1.__param(1, (0, inversify_1.inject)(types_1.TYPES.Serializer)), tslib_1.__metadata("design:paramtypes", [models_1.PersistentStore, models_2.Serializer]) ], VulcanArtifactBuilder); exports.VulcanArtifactBuilder = VulcanArtifactBuilder; //# sourceMappingURL=vulcanArtifactBuilder.js.map