@@ -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
26+data MiniDeps = Mini [(N.Name,V.Version)]
28+instance FromJSON MiniDeps where
29+ parseJSON (Object obj) = Mini <$> getDependencies obj
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
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"
51− deps <- toDeps =<< get obj "dependencies"
57+ deps <- getDependencies obj
52− "a listing of your project's dependencies"
54 return $ Deps name version summary desc license repo exposed elmVersion deps
59 return $ Deps name version summary desc license repo exposed elmVersion deps
56 parseJSON _ = mzero
61 parseJSON _ = mzero
64+ toDeps =<< get obj "dependencies" "a listing of your project's dependencies"
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
65get obj field desc =
74get obj field desc =
66 do maybe <- obj .:? field
75 do maybe <- obj .:? field