Shinobi/libs/sql.js

45 lines
1.5 KiB
JavaScript

var fs = require('fs');
module.exports = function(s,config){
//sql/database connection with knex
s.databaseOptions = {
client: config.databaseType,
connection: config.db,
}
if(s.databaseOptions.client.indexOf('sqlite')>-1){
s.databaseOptions.client = 'sqlite3'
s.databaseOptions.useNullAsDefault = true
try{
require('sqlite3')
}catch(err){
console.log('Installing SQlite3 Module...')
require('child_process').execSync('npm install sqlite3 --unsafe-perm')
}
}
if(s.databaseOptions.client === 'sqlite3' && s.databaseOptions.connection.filename === undefined){
s.databaseOptions.connection.filename = s.mainDirectory+"/shinobi.sqlite"
}
const {
knexQuery,
knexQueryPromise,
knexError,
cleanSqlWhereObject,
processSimpleWhereCondition,
processWhereCondition,
mergeQueryValues,
getDatabaseRows,
sqlQuery,
connectDatabase,
sqlQueryBetweenTimesWithPermissions,
} = require('./database/utils.js')(s,config)
s.onBeforeDatabaseLoadExtensions.forEach(function(extender){
extender(config)
})
s.knexQuery = knexQuery
s.knexQueryPromise = knexQueryPromise
s.getDatabaseRows = getDatabaseRows
s.sqlQuery = sqlQuery
s.connectDatabase = connectDatabase
s.sqlQueryBetweenTimesWithPermissions = sqlQueryBetweenTimesWithPermissions
require('./database/preQueries.js')(s,config)
}