UNPKG

mgm

Version:

My generic modules

42 lines (31 loc) 950 B
const ThreadLocal = require('../tool/ThreadLocal'); class DataBase { constructor() { } createSchema(pathToSql) { if (!fs.existsSync(pathToSql)) { fs.writeFileSync(pathToSql, ';'); } let statements = fs.readFileSync(pathToSql).toString().replace(/\r\n/g, '').replace(/\s{4}/g, '').split(';').filter(value => { return value !== ''; }); statements.forEach(statemt => { this.update([statemt]); }); } runSql(sql) { return ThreadLocal.get('db').query(sql.join('')); } query(sql) { return this.runSql(sql); } unique(sql) { let result = this.query(sql); if (result.length > 1) { throw new Error('the query must return only one value'); } return result[0]; } update(sql) { this.runSql(sql); } } module.exports = new DataBase();