| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Web.Bower.PackageMeta
Contents
Description
A data type representing the Bower.json package description file, together with a parser and related functions.
This code is based on the specification at https://github.com/bower/bower.json-spec.
Synopsis
- data PackageMeta = PackageMeta {
- bowerName :: PackageName
- bowerDescription :: Maybe Text
- bowerMain :: [FilePath]
- bowerModuleType :: [ModuleType]
- bowerLicense :: [Text]
- bowerIgnore :: [Text]
- bowerKeywords :: [Text]
- bowerAuthors :: [Author]
- bowerHomepage :: Maybe Text
- bowerRepository :: Maybe Repository
- bowerDependencies :: [(PackageName, VersionRange)]
- bowerDevDependencies :: [(PackageName, VersionRange)]
- bowerResolutions :: [(PackageName, Version)]
- bowerPrivate :: Bool
- data PackageName
- runPackageName :: PackageName -> Text
- mkPackageName :: Text -> Either PackageNameError PackageName
- data Author = Author {}
- data ModuleType
- moduleTypes :: [(Text, ModuleType)]
- data Repository = Repository {}
- newtype Version = Version {
- runVersion :: Text
- newtype VersionRange = VersionRange {}
- data BowerError
- showBowerError :: BowerError -> Text
- data PackageNameError
- showPackageNameError :: PackageNameError -> Text
- decodeFile :: FilePath -> IO (Either (ParseError BowerError) PackageMeta)
- displayError :: ParseError BowerError -> Text
- asPackageMeta :: Parse BowerError PackageMeta
- parseModuleType :: Text -> Either BowerError ModuleType
- parsePackageName :: Text -> Either BowerError PackageName
- asAuthor :: Parse e Author
- asRepository :: Parse e Repository
Data types
data PackageMeta #
A data type representing the data stored in a bower.json package manifest file.
Note that the ToJSON / FromJSON instances don't exactly match; for
example, it is not always the case that decoding from JSON and then encoding
to JSON will give you the exact same JSON that you started with. However, if
you start with a PackageMeta value, encode to JSON, and then decode, you
should always get the same value back.
Constructors
| PackageMeta | |
Fields
| |
Instances
data PackageName #
A valid package name for a Bower package.
Instances
| FromJSON PackageName # | |||||
Defined in Web.Bower.PackageMeta.Internal | |||||
| ToJSON PackageName # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods toJSON :: PackageName -> Value # toEncoding :: PackageName -> Encoding # toJSONList :: [PackageName] -> Value # toEncodingList :: [PackageName] -> Encoding # omitField :: PackageName -> Bool # | |||||
| Generic PackageName # | |||||
Defined in Web.Bower.PackageMeta.Internal Associated Types
| |||||
| Show PackageName # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods showsPrec :: Int -> PackageName -> ShowS # show :: PackageName -> String # showList :: [PackageName] -> ShowS # | |||||
| NFData PackageName # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods rnf :: PackageName -> () # | |||||
| Eq PackageName # | |||||
Defined in Web.Bower.PackageMeta.Internal | |||||
| Ord PackageName # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods compare :: PackageName -> PackageName -> Ordering # (<) :: PackageName -> PackageName -> Bool # (<=) :: PackageName -> PackageName -> Bool # (>) :: PackageName -> PackageName -> Bool # (>=) :: PackageName -> PackageName -> Bool # max :: PackageName -> PackageName -> PackageName # min :: PackageName -> PackageName -> PackageName # | |||||
| type Rep PackageName # | |||||
Defined in Web.Bower.PackageMeta.Internal type Rep PackageName = D1 ('MetaData "PackageName" "Web.Bower.PackageMeta.Internal" "bower-json-1.1.0.0-BlHudveib39EJiHzr2yzFC" 'True) (C1 ('MetaCons "PackageName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))) | |||||
runPackageName :: PackageName -> Text #
mkPackageName :: Text -> Either PackageNameError PackageName #
A smart constructor for a PackageName. It ensures that the package name satisfies the restrictions described at https://github.com/bower/bower.json-spec#name.
Constructors
| Author | |
Fields
| |
Instances
| FromJSON Author # | |||||
Defined in Web.Bower.PackageMeta.Internal | |||||
| ToJSON Author # | |||||
| Generic Author # | |||||
Defined in Web.Bower.PackageMeta.Internal Associated Types
| |||||
| Show Author # | |||||
| NFData Author # | |||||
Defined in Web.Bower.PackageMeta.Internal | |||||
| Eq Author # | |||||
| Ord Author # | |||||
| type Rep Author # | |||||
Defined in Web.Bower.PackageMeta.Internal type Rep Author = D1 ('MetaData "Author" "Web.Bower.PackageMeta.Internal" "bower-json-1.1.0.0-BlHudveib39EJiHzr2yzFC" 'False) (C1 ('MetaCons "Author" 'PrefixI 'True) (S1 ('MetaSel ('Just "authorName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: (S1 ('MetaSel ('Just "authorEmail") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "authorHomepage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text))))) | |||||
data ModuleType #
Instances
| FromJSON ModuleType # | |||||
Defined in Web.Bower.PackageMeta.Internal | |||||
| ToJSON ModuleType # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods toJSON :: ModuleType -> Value # toEncoding :: ModuleType -> Encoding # toJSONList :: [ModuleType] -> Value # toEncodingList :: [ModuleType] -> Encoding # omitField :: ModuleType -> Bool # | |||||
| Bounded ModuleType # | |||||
Defined in Web.Bower.PackageMeta.Internal | |||||
| Enum ModuleType # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods succ :: ModuleType -> ModuleType # pred :: ModuleType -> ModuleType # toEnum :: Int -> ModuleType # fromEnum :: ModuleType -> Int # enumFrom :: ModuleType -> [ModuleType] # enumFromThen :: ModuleType -> ModuleType -> [ModuleType] # enumFromTo :: ModuleType -> ModuleType -> [ModuleType] # enumFromThenTo :: ModuleType -> ModuleType -> ModuleType -> [ModuleType] # | |||||
| Generic ModuleType # | |||||
Defined in Web.Bower.PackageMeta.Internal Associated Types
| |||||
| Show ModuleType # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods showsPrec :: Int -> ModuleType -> ShowS # show :: ModuleType -> String # showList :: [ModuleType] -> ShowS # | |||||
| NFData ModuleType # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods rnf :: ModuleType -> () # | |||||
| Eq ModuleType # | |||||
Defined in Web.Bower.PackageMeta.Internal | |||||
| Ord ModuleType # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods compare :: ModuleType -> ModuleType -> Ordering # (<) :: ModuleType -> ModuleType -> Bool # (<=) :: ModuleType -> ModuleType -> Bool # (>) :: ModuleType -> ModuleType -> Bool # (>=) :: ModuleType -> ModuleType -> Bool # max :: ModuleType -> ModuleType -> ModuleType # min :: ModuleType -> ModuleType -> ModuleType # | |||||
| type Rep ModuleType # | |||||
Defined in Web.Bower.PackageMeta.Internal type Rep ModuleType = D1 ('MetaData "ModuleType" "Web.Bower.PackageMeta.Internal" "bower-json-1.1.0.0-BlHudveib39EJiHzr2yzFC" 'False) ((C1 ('MetaCons "Globals" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AMD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Node" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ES6" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "YUI" 'PrefixI 'False) (U1 :: Type -> Type)))) | |||||
moduleTypes :: [(Text, ModuleType)] #
data Repository #
Constructors
| Repository | |
Fields
| |
Instances
| FromJSON Repository # | |||||
Defined in Web.Bower.PackageMeta.Internal | |||||
| ToJSON Repository # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods toJSON :: Repository -> Value # toEncoding :: Repository -> Encoding # toJSONList :: [Repository] -> Value # toEncodingList :: [Repository] -> Encoding # omitField :: Repository -> Bool # | |||||
| Generic Repository # | |||||
Defined in Web.Bower.PackageMeta.Internal Associated Types
| |||||
| Show Repository # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods showsPrec :: Int -> Repository -> ShowS # show :: Repository -> String # showList :: [Repository] -> ShowS # | |||||
| NFData Repository # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods rnf :: Repository -> () # | |||||
| Eq Repository # | |||||
Defined in Web.Bower.PackageMeta.Internal | |||||
| Ord Repository # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods compare :: Repository -> Repository -> Ordering # (<) :: Repository -> Repository -> Bool # (<=) :: Repository -> Repository -> Bool # (>) :: Repository -> Repository -> Bool # (>=) :: Repository -> Repository -> Bool # max :: Repository -> Repository -> Repository # min :: Repository -> Repository -> Repository # | |||||
| type Rep Repository # | |||||
Defined in Web.Bower.PackageMeta.Internal type Rep Repository = D1 ('MetaData "Repository" "Web.Bower.PackageMeta.Internal" "bower-json-1.1.0.0-BlHudveib39EJiHzr2yzFC" 'False) (C1 ('MetaCons "Repository" 'PrefixI 'True) (S1 ('MetaSel ('Just "repositoryUrl") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "repositoryType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))) | |||||
Constructors
| Version | |
Fields
| |
Instances
| FromJSON Version # | |||||
Defined in Web.Bower.PackageMeta.Internal | |||||
| ToJSON Version # | |||||
| Generic Version # | |||||
Defined in Web.Bower.PackageMeta.Internal Associated Types
| |||||
| Show Version # | |||||
| NFData Version # | |||||
Defined in Web.Bower.PackageMeta.Internal | |||||
| Eq Version # | |||||
| Ord Version # | |||||
Defined in Web.Bower.PackageMeta.Internal | |||||
| type Rep Version # | |||||
Defined in Web.Bower.PackageMeta.Internal | |||||
newtype VersionRange #
Constructors
| VersionRange | |
Fields | |
Instances
| FromJSON VersionRange # | |||||
Defined in Web.Bower.PackageMeta.Internal | |||||
| ToJSON VersionRange # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods toJSON :: VersionRange -> Value # toEncoding :: VersionRange -> Encoding # toJSONList :: [VersionRange] -> Value # toEncodingList :: [VersionRange] -> Encoding # omitField :: VersionRange -> Bool # | |||||
| Generic VersionRange # | |||||
Defined in Web.Bower.PackageMeta.Internal Associated Types
| |||||
| Show VersionRange # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods showsPrec :: Int -> VersionRange -> ShowS # show :: VersionRange -> String # showList :: [VersionRange] -> ShowS # | |||||
| NFData VersionRange # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods rnf :: VersionRange -> () # | |||||
| Eq VersionRange # | |||||
Defined in Web.Bower.PackageMeta.Internal | |||||
| Ord VersionRange # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods compare :: VersionRange -> VersionRange -> Ordering # (<) :: VersionRange -> VersionRange -> Bool # (<=) :: VersionRange -> VersionRange -> Bool # (>) :: VersionRange -> VersionRange -> Bool # (>=) :: VersionRange -> VersionRange -> Bool # max :: VersionRange -> VersionRange -> VersionRange # min :: VersionRange -> VersionRange -> VersionRange # | |||||
| type Rep VersionRange # | |||||
Defined in Web.Bower.PackageMeta.Internal type Rep VersionRange = D1 ('MetaData "VersionRange" "Web.Bower.PackageMeta.Internal" "bower-json-1.1.0.0-BlHudveib39EJiHzr2yzFC" 'True) (C1 ('MetaCons "VersionRange" 'PrefixI 'True) (S1 ('MetaSel ('Just "runVersionRange") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))) | |||||
data BowerError #
Constructors
| InvalidPackageName PackageNameError | |
| InvalidModuleType Text |
Instances
| Generic BowerError # | |||||
Defined in Web.Bower.PackageMeta.Internal Associated Types
| |||||
| Show BowerError # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods showsPrec :: Int -> BowerError -> ShowS # show :: BowerError -> String # showList :: [BowerError] -> ShowS # | |||||
| NFData BowerError # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods rnf :: BowerError -> () # | |||||
| Eq BowerError # | |||||
Defined in Web.Bower.PackageMeta.Internal | |||||
| Ord BowerError # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods compare :: BowerError -> BowerError -> Ordering # (<) :: BowerError -> BowerError -> Bool # (<=) :: BowerError -> BowerError -> Bool # (>) :: BowerError -> BowerError -> Bool # (>=) :: BowerError -> BowerError -> Bool # max :: BowerError -> BowerError -> BowerError # min :: BowerError -> BowerError -> BowerError # | |||||
| type Rep BowerError # | |||||
Defined in Web.Bower.PackageMeta.Internal type Rep BowerError = D1 ('MetaData "BowerError" "Web.Bower.PackageMeta.Internal" "bower-json-1.1.0.0-BlHudveib39EJiHzr2yzFC" 'False) (C1 ('MetaCons "InvalidPackageName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageNameError)) :+: C1 ('MetaCons "InvalidModuleType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))) | |||||
showBowerError :: BowerError -> Text #
data PackageNameError #
Constructors
| NotEmpty | |
| TooLong Int | |
| InvalidChars [Char] | |
| RepeatedSeparators | |
| MustNotBeginSeparator | |
| MustNotEndSeparator |
Instances
| Generic PackageNameError # | |||||
Defined in Web.Bower.PackageMeta.Internal Associated Types
Methods from :: PackageNameError -> Rep PackageNameError x # to :: Rep PackageNameError x -> PackageNameError # | |||||
| Show PackageNameError # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods showsPrec :: Int -> PackageNameError -> ShowS # show :: PackageNameError -> String # showList :: [PackageNameError] -> ShowS # | |||||
| NFData PackageNameError # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods rnf :: PackageNameError -> () # | |||||
| Eq PackageNameError # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods (==) :: PackageNameError -> PackageNameError -> Bool # (/=) :: PackageNameError -> PackageNameError -> Bool # | |||||
| Ord PackageNameError # | |||||
Defined in Web.Bower.PackageMeta.Internal Methods compare :: PackageNameError -> PackageNameError -> Ordering # (<) :: PackageNameError -> PackageNameError -> Bool # (<=) :: PackageNameError -> PackageNameError -> Bool # (>) :: PackageNameError -> PackageNameError -> Bool # (>=) :: PackageNameError -> PackageNameError -> Bool # max :: PackageNameError -> PackageNameError -> PackageNameError # min :: PackageNameError -> PackageNameError -> PackageNameError # | |||||
| type Rep PackageNameError # | |||||
Defined in Web.Bower.PackageMeta.Internal type Rep PackageNameError = D1 ('MetaData "PackageNameError" "Web.Bower.PackageMeta.Internal" "bower-json-1.1.0.0-BlHudveib39EJiHzr2yzFC" 'False) ((C1 ('MetaCons "NotEmpty" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TooLong" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :+: C1 ('MetaCons "InvalidChars" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Char])))) :+: (C1 ('MetaCons "RepeatedSeparators" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MustNotBeginSeparator" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MustNotEndSeparator" 'PrefixI 'False) (U1 :: Type -> Type)))) | |||||
Parsing
decodeFile :: FilePath -> IO (Either (ParseError BowerError) PackageMeta) #
Read and attempt to decode a bower.json file.
displayError :: ParseError BowerError -> Text #
asPackageMeta :: Parse BowerError PackageMeta #
A parser for bower.json files, using the aeson-better-errors package.
asRepository :: Parse e Repository #