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