yepql
Version:
Javascript & SQL rethought
49 lines (41 loc) • 1.07 kB
JavaScript
var fs = require("fs");
var path = require("path");
var database = require("./database");
function makeQuery(driver, file) {
var query = fs.readFileSync(file, "utf8");
return function(connectionString, parameters) {
return new Promise((resolve, reject) => {
database.query(driver, connectionString, query, parameters, (error, rows) => {
if(error) {
reject(error);
} else {
resolve(rows);
}
});
});
}
}
function makeQueries(driver, dir) {
var queryArray = fs
.readdirSync(dir)
.filter(f => f.endsWith(".sql"))
.map((filename) => {
var parts = path.parse(filename);
return {
name: parts.name,
absolutePath: path.join(dir, filename)
};
})
.map((file) => {
var obj = {};
obj[file.name] = makeQuery(driver, file.absolutePath);
return obj;
});
return Object.assign.apply(Object, queryArray);
}
module.exports = function(driver) {
return {
makeQuery: makeQuery.bind(this, driver),
makeQueries: makeQueries.bind(this, driver)
};
}