@jimpick/dat-next
Version:
Dat is the package manager for data. Easily share and version control data.
56 lines (49 loc) • 1.41 kB
JavaScript
var path = require('path')
var rimraf = require('rimraf')
var Server, initDb
try {
Server = require('dat-registry-api/server')
initDb = require('dat-registry-api/server/database/init')
} catch (e) {
console.log('Disabling auth tests, run `npm install dat-registry-api` to enable them.')
}
module.exports = createServer
function createServer (port, cb) {
if (!Server || !initDb) return cb(null)
var config = {
mixpanel: 'nothing',
email: {
fromEmail: 'hi@example.com'
},
township: {
secret: 'very secret code',
db: path.join(__dirname, '..', 'test-township.db')
},
db: {
dialect: 'sqlite3',
connection: { filename: path.join(__dirname, '..', 'test-sqlite.db') },
useNullAsDefault: true
},
archiver: path.join(__dirname, '..', 'test-archiver'),
whitelist: false,
port: port || 8888
}
rimraf.sync(config.archiver)
rimraf.sync(config.db.connection.filename)
rimraf.sync(config.township.db)
initDb(config.db, function (err, db) {
if (err) return cb(err)
const server = Server(config, db)
server.listen(config.port, function () {
console.log('listening', config.port)
})
cb(null, server, close)
function close (cb) {
server.close(function () {
rimraf.sync(config.township.db)
rimraf.sync(config.db.connection.filename)
process.exit()
})
}
})
}