UNPKG

@vulcan-sql/core

Version:
47 lines 1.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DataSource = void 0; const tslib_1 = require("tslib"); const types_1 = require("../../containers/types"); const inversify_1 = require("inversify"); const errors_1 = require("../../lib/utils/errors"); const base_1 = require("./base"); const decorators_1 = require("./decorators"); let DataSource = class DataSource extends base_1.ExtensionBase { constructor(config, moduleName, profiles = []) { super(config, moduleName); this.profiles = profiles.reduce((prev, curr) => prev.set(curr.name, curr), new Map()); } /** * Export query result data to cache file for cache layer loader used */ export(options) { throw new Error(`Export method not implemented`); } /** * Import data to create table from cache file for cache layer loader used */ import(options) { throw new Error(`import method not implemented`); } /** Get all the profiles which belong to this data source */ getProfiles() { return this.profiles; } getProfile(name) { const profile = this.profiles.get(name); if (!profile) throw new errors_1.InternalError(`Profile name ${name} not found in data source ${this.getExtensionId()}`); return profile; } }; DataSource = tslib_1.__decorate([ (0, decorators_1.VulcanExtension)(types_1.TYPES.Extension_DataSource, { enforcedId: true }), tslib_1.__param(0, (0, inversify_1.inject)(types_1.TYPES.ExtensionConfig)), tslib_1.__param(1, (0, inversify_1.inject)(types_1.TYPES.ExtensionName)), tslib_1.__param(2, (0, inversify_1.multiInject)(types_1.TYPES.Profile)), tslib_1.__param(2, (0, inversify_1.optional)()), tslib_1.__metadata("design:paramtypes", [Object, String, Array]) ], DataSource); exports.DataSource = DataSource; //# sourceMappingURL=dataSource.js.map