Source: index.js

const Database = require('sqlite-async')
const TableProxy = require('./proxy')

/**
 * Create new connection to database.
 * 
 * By accessing an attribute an existing table will be returned
 * or a new one will be created.
 * 
 * See table class about how to do CRUD operations
 * 
 * @example 
 * // Memory database
 * const dataSet = await connect()
 * const pk = await dataSet.myNewTableName.insert({'myNewColumnName': 'data'})
 * 
 * @example 
 * // File database
 * const dataSet = await connect('mydb.sqlite')
 * const pk = await dataSet.myNewTableName.insert({'myNewColumnName': 'data'})
 * 
 * @param {string} [name=":memory:"]
 * @returns {Object} new Alopex instance.
 */
function connect(name) {
    let dbName = name || ':memory:'
    return Database.open(dbName).then((db) => {
        db.dbName = dbName
        return new Proxy(db, TableProxy)
    })
}

module.exports = connect