Shinobi/libs/sql.js

45 lines
1.5 KiB
JavaScript
Raw Normal View History

var fs = require('fs');
2018-09-28 05:37:08 +00:00
module.exports = function(s,config){
//sql/database connection with knex
s.databaseOptions = {
2018-09-28 05:37:08 +00:00
client: config.databaseType,
connection: config.db,
}
if(s.databaseOptions.client.indexOf('sqlite')>-1){
2019-06-06 00:32:31 +00:00
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')
}
2018-09-28 05:37:08 +00:00
}
if(s.databaseOptions.client === 'sqlite3' && s.databaseOptions.connection.filename === undefined){
s.databaseOptions.connection.filename = s.mainDirectory+"/shinobi.sqlite"
2018-09-28 05:37:08 +00:00
}
2020-11-18 19:26:38 +00:00
const {
knexQuery,
knexQueryPromise,
2020-11-18 19:26:38 +00:00
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
2020-07-11 21:10:36 +00:00
s.getDatabaseRows = getDatabaseRows
2020-11-18 19:26:38 +00:00
s.sqlQuery = sqlQuery
s.connectDatabase = connectDatabase
s.sqlQueryBetweenTimesWithPermissions = sqlQueryBetweenTimesWithPermissions
2022-12-17 00:07:23 +00:00
require('./database/preQueries.js')(s,config)
2018-09-28 05:37:08 +00:00
}