on master help sign in
Require minimal deps file when just building things locally
commit16e6654af8c51b6a19bf26f003e6083ef85c96b9 authorEvan Czaplicki <info@elm-lang.org> dateMon 16 Dec 2013, 14:41 (13 years ago) parent87bf14f
2 files changed+18−9
compiler/Build/Dependencies.hs+1−1 compiler/Elm/Internal/Dependencies.hs+17−8
compiler/Build/Dependencies.hs+1−1
@@ -54,7 +54,7 @@ extraDependencies =
5454 getPaths = do
5555 raw <- BSC.readFile Path.dependencyFile
5656 case Json.eitherDecode raw of
57− Right deps -> mapM validate (Deps.dependencies deps)
57+ Right (Deps.Mini deps) -> mapM validate deps
5858 Left err ->
5959 failure $ "Error reading the " ++ Path.dependencyFile ++ " file:\n" ++ err
6060
compiler/Elm/Internal/Dependencies.hs+17−8
@@ -23,6 +23,12 @@ data Deps = Deps
2323 , dependencies :: [(N.Name,V.Version)]
2424 } deriving Show
2525
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+
2632instance FromJSON Deps where
2733 parseJSON (Object obj) =
2834 do version <- get obj "version" "your projects version number"
@@ -48,19 +54,22 @@ instance FromJSON Deps where
4854
4955 elmVersion <- get obj "elm-version" "the version of the Elm compiler you are using"
5056
51− deps <- toDeps =<< get obj "dependencies"
52− "a listing of your project's dependencies"
57+ deps <- getDependencies obj
5358
5459 return $ Deps name version summary desc license repo exposed elmVersion deps
5560
5661 parseJSON _ = mzero
5762
58−toDeps deps =
59− forM (Map.toList deps) $ \(f,v) ->
60− case (N.fromString f, V.fromString v) of
61− (Just name, Just version) -> return (name,version)
62− (Nothing, _) -> fail $ N.errorMsg f
63− (_, Nothing) -> fail $ "invalid version number " ++ v
63+getDependencies obj =
64+ toDeps =<< get obj "dependencies" "a listing of your project's dependencies"
65+ where
66+ toDeps deps =
67+ forM (Map.toList deps) $ \(f,v) ->
68+ case (N.fromString f, V.fromString v) of
69+ (Just name, Just version) -> return (name,version)
70+ (Nothing, _) -> fail $ N.errorMsg f
71+ (_, Nothing) -> fail $ "invalid version number " ++ v
72+
6473
6574get obj field desc =
6675 do maybe <- obj .:? field