on master help sign in
Require minimal deps file when just building things locally
16e6654Evan Czaplicki
compiler/Build/Dependencies.hs+1−1
@@ -54,7 +54,7 @@ extraDependencies =
54 getPaths = do
54 getPaths = do
55 raw <- BSC.readFile Path.dependencyFile
55 raw <- BSC.readFile Path.dependencyFile
56 case Json.eitherDecode raw of
56 case Json.eitherDecode raw of
57− Right deps -> mapM validate (Deps.dependencies deps)
57+ Right (Deps.Mini deps) -> mapM validate deps
58 Left err ->
58 Left err ->
59 failure $ "Error reading the " ++ Path.dependencyFile ++ " file:\n" ++ err
59 failure $ "Error reading the " ++ Path.dependencyFile ++ " file:\n" ++ err
60
60
compiler/Elm/Internal/Dependencies.hs+17−8
@@ -23,6 +23,12 @@ data Deps = Deps
23 , dependencies :: [(N.Name,V.Version)]
23 , dependencies :: [(N.Name,V.Version)]
24 } deriving Show
24 } deriving Show
25
25
26+data MiniDeps = Mini [(N.Name,V.Version)]
27+
28+instance FromJSON MiniDeps where
29+ parseJSON (Object obj) = Mini <$> getDependencies obj
30+ parseJSON _ = mzero
31+
26instance FromJSON Deps where
32instance FromJSON Deps where
27 parseJSON (Object obj) =
33 parseJSON (Object obj) =
28 do version <- get obj "version" "your projects version number"
34 do version <- get obj "version" "your projects version number"
@@ -48,19 +54,22 @@ instance FromJSON Deps where
48
54
49 elmVersion <- get obj "elm-version" "the version of the Elm compiler you are using"
55 elmVersion <- get obj "elm-version" "the version of the Elm compiler you are using"
50
56
51− deps <- toDeps =<< get obj "dependencies"
57+ deps <- getDependencies obj
52− "a listing of your project's dependencies"
53
58
54 return $ Deps name version summary desc license repo exposed elmVersion deps
59 return $ Deps name version summary desc license repo exposed elmVersion deps
55
60
56 parseJSON _ = mzero
61 parseJSON _ = mzero
57
62
63+getDependencies obj =
64+ toDeps =<< get obj "dependencies" "a listing of your project's dependencies"
65+ where
58−toDeps deps =
66+ toDeps deps =
59− forM (Map.toList deps) $ \(f,v) ->
67+ forM (Map.toList deps) $ \(f,v) ->
60− case (N.fromString f, V.fromString v) of
68+ case (N.fromString f, V.fromString v) of
61− (Just name, Just version) -> return (name,version)
69+ (Just name, Just version) -> return (name,version)
62− (Nothing, _) -> fail $ N.errorMsg f
70+ (Nothing, _) -> fail $ N.errorMsg f
63− (_, Nothing) -> fail $ "invalid version number " ++ v
71+ (_, Nothing) -> fail $ "invalid version number " ++ v
72+
64
73
65get obj field desc =
74get obj field desc =
66 do maybe <- obj .:? field
75 do maybe <- obj .:? field