@@ -23,9 +23,7 @@ import Data.Maybe (Maybe(..))
23
23
import Data.Number (fromString ) as Number
24
24
import Data.Show.Generic (genericShow )
25
25
import Data.String.CodeUnits (uncons ) as String
26
- import Data.String.Common (toLower , joinWith )
27
- import Data.Symbol (class IsSymbol , reflectSymbol )
28
- import Data.String.Common (toLower )
26
+ import Data.String.Common (joinWith , toLower )
29
27
import Data.Symbol (class IsSymbol , reflectSymbol )
30
28
import Foreign.Object (Object , lookup )
31
29
import Prim.Row (class Cons , class Lacks ) as Row
@@ -45,17 +43,21 @@ fromEnv
45
43
fromEnv = readEnv
46
44
47
45
-- | An error that can occur while reading an environment variable
48
- data EnvError = EnvLookupError String | EnvParseError String | EnvErrors (Array EnvError )
46
+ data EnvError
47
+ = EnvLookupError String
48
+ | EnvParseError String
49
+ | EnvErrors (Array EnvError )
49
50
50
51
derive instance eqEnvError :: Eq EnvError
51
52
52
53
derive instance genericEnvError :: Generic EnvError _
53
54
54
55
instance semigroupEnvError :: Semigroup EnvError where
55
- append (EnvErrors aErrors) (EnvErrors bErrors) = EnvErrors $ aErrors <> bErrors
56
- append (EnvErrors errors) err = EnvErrors $ errors <> [err]
57
- append err (EnvErrors errors) = EnvErrors $ [err] <> errors
58
- append errA errB = EnvErrors [errA, errB]
56
+ append (EnvErrors aErrors) (EnvErrors bErrors) = EnvErrors $ aErrors <>
57
+ bErrors
58
+ append (EnvErrors errors) err = EnvErrors $ errors <> [ err ]
59
+ append err (EnvErrors errors) = EnvErrors $ [ err ] <> errors
60
+ append errA errB = EnvErrors [ errA, errB ]
59
61
60
62
instance showEnvError :: Show EnvError where
61
63
show (EnvErrors errors) = joinWith " \n " $ map genericShow errors
@@ -64,8 +66,10 @@ instance showEnvError :: Show EnvError where
64
66
-- | Gets the error message for a given `EnvError` value.
65
67
envErrorMessage :: EnvError -> String
66
68
envErrorMessage = case _ of
67
- EnvLookupError var -> " The required variable \" " <> var <> " \" was not specified."
68
- EnvParseError var -> " The variable \" " <> var <> " \" was formatted incorrectly."
69
+ EnvLookupError var -> " The required variable \" " <> var <>
70
+ " \" was not specified."
71
+ EnvParseError var -> " The variable \" " <> var <>
72
+ " \" was formatted incorrectly."
69
73
EnvErrors errors -> joinWith " \n " $ map envErrorMessage errors
70
74
71
75
-- | Parses a `String` value to the specified type.
@@ -143,16 +147,18 @@ instance readEnvFieldsCons ::
143
147
, Row.Lacks name rt
144
148
, Row.Cons name ty rt r
145
149
, ReadValue ty
146
- ) => ReadEnvFields (Cons name (Variable varName ty ) elt ) (Cons name ty rlt ) r where
147
- readEnvFields _ _ env = insert value tail
148
- where
149
- nameP = Proxy :: _ name
150
- varName = reflectSymbol (Proxy :: _ varName )
151
- value = readValue varName env
152
- tail = readEnvFields (Proxy :: _ elt ) (Proxy :: _ rlt ) env
153
-
154
- insert (Left valueErr) (Left tailErrs) = Left $ valueErr <> tailErrs
155
- insert valE tailE = Record .insert nameP <$> valE <*> tailE
156
-
157
- instance readEnvFieldsNil :: TypeEquals { } (Record row ) => ReadEnvFields Nil Nil row where
150
+ ) =>
151
+ ReadEnvFields (Cons name ty elt ) (Cons name ty rlt ) r where
152
+ readEnvFields _ _ env = insert value tail
153
+ where
154
+ nameP = Proxy :: _ name
155
+ value = readValue (reflectSymbol nameP) env
156
+ tail = readEnvFields (Proxy :: _ elt ) (Proxy :: _ rlt ) env
157
+
158
+ insert (Left valueErr) (Left tailErrs) = Left $ valueErr <> tailErrs
159
+ insert valE tailE = Record .insert nameP <$> valE <*> tailE
160
+
161
+ instance readEnvFieldsNil ::
162
+ TypeEquals { } (Record row ) =>
163
+ ReadEnvFields Nil Nil row where
158
164
readEnvFields _ _ _ = pure $ to {}
0 commit comments