bower-json-1.0.0.1: Read bower.json from Haskell

Safe HaskellNone
LanguageHaskell2010

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 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.

Instances
Eq PackageMeta # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Ord PackageMeta # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Show PackageMeta # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Generic PackageMeta # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Associated Types

type Rep PackageMeta :: * -> * #

ToJSON PackageMeta # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

FromJSON PackageMeta # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

NFData PackageMeta # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

rnf :: PackageMeta -> () #

type Rep PackageMeta # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep PackageMeta = D1 (MetaData "PackageMeta" "Web.Bower.PackageMeta.Internal" "bower-json-1.0.0.1-5a8UM0CKX2x7JlxHDsGKaI" False) (C1 (MetaCons "PackageMeta" PrefixI True) (((S1 (MetaSel (Just "bowerName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 PackageName) :*: (S1 (MetaSel (Just "bowerDescription") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe Text)) :*: S1 (MetaSel (Just "bowerMain") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [FilePath]))) :*: ((S1 (MetaSel (Just "bowerModuleType") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [ModuleType]) :*: S1 (MetaSel (Just "bowerLicense") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Text])) :*: (S1 (MetaSel (Just "bowerIgnore") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Text]) :*: S1 (MetaSel (Just "bowerKeywords") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Text])))) :*: ((S1 (MetaSel (Just "bowerAuthors") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Author]) :*: (S1 (MetaSel (Just "bowerHomepage") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe Text)) :*: S1 (MetaSel (Just "bowerRepository") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe Repository)))) :*: ((S1 (MetaSel (Just "bowerDependencies") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(PackageName, VersionRange)]) :*: S1 (MetaSel (Just "bowerDevDependencies") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(PackageName, VersionRange)])) :*: (S1 (MetaSel (Just "bowerResolutions") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(PackageName, Version)]) :*: S1 (MetaSel (Just "bowerPrivate") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool))))))

data PackageName #

A valid package name for a Bower package.

Instances
Eq PackageName # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Ord PackageName # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Show PackageName # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Generic PackageName # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Associated Types

type Rep PackageName :: * -> * #

ToJSON PackageName # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

FromJSON PackageName # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

NFData PackageName # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

rnf :: PackageName -> () #

type Rep PackageName # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep PackageName = D1 (MetaData "PackageName" "Web.Bower.PackageMeta.Internal" "bower-json-1.0.0.1-5a8UM0CKX2x7JlxHDsGKaI" True) (C1 (MetaCons "PackageName" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 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.

data Author #

Instances
Eq Author # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

(==) :: Author -> Author -> Bool #

(/=) :: Author -> Author -> Bool #

Ord Author # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Show Author # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Generic Author # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Associated Types

type Rep Author :: * -> * #

Methods

from :: Author -> Rep Author x #

to :: Rep Author x -> Author #

ToJSON Author # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

FromJSON Author # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

NFData Author # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

rnf :: Author -> () #

type Rep Author # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep Author = D1 (MetaData "Author" "Web.Bower.PackageMeta.Internal" "bower-json-1.0.0.1-5a8UM0CKX2x7JlxHDsGKaI" 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 #

Constructors

Globals 
AMD 
Node 
ES6 
YUI 
Instances
Bounded ModuleType # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Enum ModuleType # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Eq ModuleType # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Ord ModuleType # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Show ModuleType # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Generic ModuleType # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Associated Types

type Rep ModuleType :: * -> * #

ToJSON ModuleType # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

FromJSON ModuleType # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

NFData ModuleType # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

rnf :: ModuleType -> () #

type Rep ModuleType # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep ModuleType = D1 (MetaData "ModuleType" "Web.Bower.PackageMeta.Internal" "bower-json-1.0.0.1-5a8UM0CKX2x7JlxHDsGKaI" False) ((C1 (MetaCons "Globals" PrefixI False) (U1 :: * -> *) :+: C1 (MetaCons "AMD" PrefixI False) (U1 :: * -> *)) :+: (C1 (MetaCons "Node" PrefixI False) (U1 :: * -> *) :+: (C1 (MetaCons "ES6" PrefixI False) (U1 :: * -> *) :+: C1 (MetaCons "YUI" PrefixI False) (U1 :: * -> *))))

data Repository #

Constructors

Repository 
Instances
Eq Repository # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Ord Repository # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Show Repository # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Generic Repository # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Associated Types

type Rep Repository :: * -> * #

ToJSON Repository # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

FromJSON Repository # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

NFData Repository # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

rnf :: Repository -> () #

type Rep Repository # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep Repository = D1 (MetaData "Repository" "Web.Bower.PackageMeta.Internal" "bower-json-1.0.0.1-5a8UM0CKX2x7JlxHDsGKaI" False) (C1 (MetaCons "Repository" PrefixI True) (S1 (MetaSel (Just "repositoryUrl") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text) :*: S1 (MetaSel (Just "repositoryType") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text)))

newtype Version #

Constructors

Version 

Fields

Instances
Eq Version # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

(==) :: Version -> Version -> Bool #

(/=) :: Version -> Version -> Bool #

Ord Version # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Show Version # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Generic Version # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Associated Types

type Rep Version :: * -> * #

Methods

from :: Version -> Rep Version x #

to :: Rep Version x -> Version #

ToJSON Version # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

FromJSON Version # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

NFData Version # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

rnf :: Version -> () #

type Rep Version # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep Version = D1 (MetaData "Version" "Web.Bower.PackageMeta.Internal" "bower-json-1.0.0.1-5a8UM0CKX2x7JlxHDsGKaI" True) (C1 (MetaCons "Version" PrefixI True) (S1 (MetaSel (Just "runVersion") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text)))

newtype VersionRange #

Constructors

VersionRange 
Instances
Eq VersionRange # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Ord VersionRange # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Show VersionRange # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Generic VersionRange # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Associated Types

type Rep VersionRange :: * -> * #

ToJSON VersionRange # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

FromJSON VersionRange # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

NFData VersionRange # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

rnf :: VersionRange -> () #

type Rep VersionRange # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep VersionRange = D1 (MetaData "VersionRange" "Web.Bower.PackageMeta.Internal" "bower-json-1.0.0.1-5a8UM0CKX2x7JlxHDsGKaI" True) (C1 (MetaCons "VersionRange" PrefixI True) (S1 (MetaSel (Just "runVersionRange") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text)))

data BowerError #

Instances
Eq BowerError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Ord BowerError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Show BowerError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Generic BowerError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Associated Types

type Rep BowerError :: * -> * #

NFData BowerError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

rnf :: BowerError -> () #

type Rep BowerError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep BowerError = D1 (MetaData "BowerError" "Web.Bower.PackageMeta.Internal" "bower-json-1.0.0.1-5a8UM0CKX2x7JlxHDsGKaI" 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)))

data PackageNameError #

Instances
Eq PackageNameError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Ord PackageNameError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Show PackageNameError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Generic PackageNameError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Associated Types

type Rep PackageNameError :: * -> * #

NFData PackageNameError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

rnf :: PackageNameError -> () #

type Rep PackageNameError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep PackageNameError = D1 (MetaData "PackageNameError" "Web.Bower.PackageMeta.Internal" "bower-json-1.0.0.1-5a8UM0CKX2x7JlxHDsGKaI" False) ((C1 (MetaCons "NotEmpty" PrefixI False) (U1 :: * -> *) :+: (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 :: * -> *) :+: (C1 (MetaCons "MustNotBeginSeparator" PrefixI False) (U1 :: * -> *) :+: C1 (MetaCons "MustNotEndSeparator" PrefixI False) (U1 :: * -> *))))

Parsing

decodeFile :: FilePath -> IO (Either (ParseError BowerError) PackageMeta) #

Read and attempt to decode a bower.json file.

asPackageMeta :: Parse BowerError PackageMeta #

A parser for bower.json files, using the aeson-better-errors package.