@vulcan-sql/core
Version:
Core package of VulcanSQL
39 lines • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueryExecutor = void 0;
const tslib_1 = require("tslib");
const inversify_1 = require("inversify");
const types_1 = require("../../containers/types");
const builder_1 = require("./builder");
let QueryExecutor = class QueryExecutor {
constructor(dataSourceFactory) {
this.dataSourceFactory = dataSourceFactory;
}
prepare(request) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return this.dataSourceFactory(request.profileName).prepare(request);
});
}
/**
* create data query builder
* @returns
*/
createBuilder(profileName, query, parameterizer, headers) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return new builder_1.DataQueryBuilder({
statement: query,
parameterizer,
dataSource: this.dataSourceFactory(profileName),
profileName,
headers: headers || {},
});
});
}
};
QueryExecutor = tslib_1.__decorate([
(0, inversify_1.injectable)(),
tslib_1.__param(0, (0, inversify_1.inject)(types_1.TYPES.Factory_DataSource)),
tslib_1.__metadata("design:paramtypes", [Function])
], QueryExecutor);
exports.QueryExecutor = QueryExecutor;
//# sourceMappingURL=executor.js.map