yam-app-0.1.13: src/Yam/Transaction/Sqlite.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE OverloadedStrings #-}
module Yam.Transaction.Sqlite where
import Yam.Import
import Yam.Transaction
import Control.Monad.IO.Unlift
import Control.Monad.Logger (runLoggingT)
import Database.Persist.Sqlite
data SQLite
instance HasDataSource SQLite where
connector _ logger ds a = runLoggingT (withSqlitePool (conn ds) (toThread ds) (lift.a)) logger
where toThread d | conn d == conn def = 1
| otherwise = thread d
sqliteProvider :: (MonadTransaction m, MonadUnliftIO m) => DataSourceProvider m a
sqliteProvider = ("sqlite", connector (Proxy :: Proxy SQLite))