Skip to content

Latest commit

 

History

History
254 lines (148 loc) · 4.21 KB

MODULE.md

File metadata and controls

254 lines (148 loc) · 4.21 KB

Module Documentation

Module Database.AnyDB

Query

newtype Query a
  = Query String

Connection

data Connection :: *

DB

data DB :: !

ConnectionString

type ConnectionString = String

ConnectionInfo

type ConnectionInfo = { password :: String, user :: String, port :: Number, db :: String, host :: String }

mkConnectionString

mkConnectionString :: ConnectionInfo -> ConnectionString

connect

connect :: forall eff. ConnectionInfo -> Aff (db :: DB | eff) Connection

Makes a connection to the database.

execute

execute :: forall eff a. Query a -> [SqlValue] -> Connection -> Aff (db :: DB | eff) Unit

Runs a query and returns nothing.

execute_

execute_ :: forall eff a. Query a -> Connection -> Aff (db :: DB | eff) Unit

Runs a query and returns nothing

query

query :: forall eff a. (IsForeign a) => Query a -> [SqlValue] -> Connection -> Aff (db :: DB | eff) [F a]

Runs a query and returns all results.

query_

query_ :: forall eff a. (IsForeign a) => Query a -> Connection -> Aff (db :: DB | eff) [a]

Just like query but does not make any param replacement

queryOne

queryOne :: forall eff a. (IsForeign a) => Query a -> [SqlValue] -> Connection -> Aff (db :: DB | eff) (Maybe a)

Runs a query and returns the first row, if any

queryOne_

queryOne_ :: forall eff a. (IsForeign a) => Query a -> Connection -> Aff (db :: DB | eff) (Maybe a)

Just like queryOne but does not make any param replacement

queryValue

queryValue :: forall eff a. (IsForeign a) => Query a -> [SqlValue] -> Connection -> Aff (db :: DB | eff) (Maybe a)

Runs a query and returns a single value, if any.

queryValue_

queryValue_ :: forall eff a. (IsForeign a) => Query a -> Connection -> Aff (db :: DB | eff) (Maybe a)

Just like queryValue but does not make any param replacement

withConnection

withConnection :: forall eff a. ConnectionInfo -> (Connection -> Aff (db :: DB | eff) a) -> Aff (db :: DB | eff) a

Connects to the database, calls the provided function with the connection and returns the results.

close

close :: forall eff. Connection -> Eff (db :: DB | eff) Unit

Module Database.AnyDB.Pool

Pool

data Pool :: *

createPool

createPool :: forall eff. ConnectionInfo -> Eff (db :: DB | eff) Pool

Create a connection pool.

createPoolFromString

createPoolFromString :: forall eff. ConnectionString -> Eff (db :: DB | eff) Pool

Create a connection pool. Remember to call closePool.

closePool

closePool :: forall eff. Pool -> Eff (db :: DB | eff) Unit

Close the connection pool.

withPool

withPool :: forall eff a. Pool -> (Connection -> Aff (db :: DB | eff) a) -> Aff (db :: DB | eff) a

Run a database action with a connection from the specified Pool.

Module Database.AnyDB.SqlValue

SqlValue

data SqlValue :: *

IsSqlValue

class IsSqlValue a where
  toSql :: a -> SqlValue

isSqlValueString

instance isSqlValueString :: IsSqlValue String

isSqlValueNumber

instance isSqlValueNumber :: IsSqlValue Number

isSqlValueInt

instance isSqlValueInt :: IsSqlValue Int

isSqlValueMaybe

instance isSqlValueMaybe :: (IsSqlValue a) => IsSqlValue (Maybe a)

Module Database.AnyDB.Transaction

Transaction

data Transaction :: *

withTransaction

withTransaction :: forall eff a. (Connection -> Aff (db :: DB | eff) a) -> Connection -> Aff (db :: DB | eff) a

Module Database.AnyDB.Util

finally

finally :: forall e a. Aff e a -> Aff e Unit -> Aff e a

Compute aff1, followed by aff2 regardless of whether aff1 terminated successfully.