git.iko.soy/rowtype-yoga/purescript-yoga-om-layer
on v1.2.0 help sign in
22 lines 790 B history raw
1module Test.Negative.ShowDiff where
3import Prelude
4import Effect (Effect)
5import Yoga.Om (Om)
6import Yoga.Om as Om
7import Yoga.Om.Layer (OmLayer, makeLayer, runLayer)
9type Config = { port :: Int }
10type Logger = { log :: String -> Effect Unit }
11type Database = { query :: String -> Effect (Array String) }
12type Cache = { get :: String -> Effect Unit }
14-- Needs THREE dependencies
15needsThree :: OmLayer (config :: Config, logger :: Logger, database :: Database) (cache :: Cache) ()
16needsThree = makeLayer do
17 { config, logger, database } <- Om.ask
18 pure { cache: { get: \_ -> pure unit } }
20-- Provides only ONE - should show a nice diff!
21testShowDiff :: Om (Record (logger :: Logger)) () (Record (cache :: Cache))
22testShowDiff = runLayer { logger: { log: \_ -> pure unit } } needsThree