Safe Haskell | None |
---|---|
Language | Haskell2010 |
The package provides configuration loader and pre-defined resolver.
An configuration example:
_vars: window: width: 800 height: 600 app: - name: message-layer properties: window: image: resources/window-base.png position: x: 0 y: ${${var:window.height} - ${ref:..size.height}} size: width: ${var:window.width} height: 150
Syntax
_vars
You can define a new variable. Use object syntax under the _vars
field.
The variables can be referenced in all siblings and under their siblings to the _vars
, in the variable syntax ${var:_path_}
.
Expr
In each field, you can specify an expression defined in the loader.
${}
: enclose the expr by${}
, to tell the parsers that the field is an expr not a plain string.${ref:_path_}
: specify any path to refer any other value. The path resolution is performed once, not recursively resolved._path_
consists of field names splitted by a period. Use double dots..
for a parent.${var:_path_}
: specify any path to value defined at the field._path_
consists of field names splitted by a period.- arithmetic operator: addition, subtraction, multiplication and division (
+,-,*,/
) can also be used in${}
.
Synopsis
- module MiniLight.Component.Types
- loadAppConfig :: (HasLightEnv env, MonadIO m) => FilePath -> (Text -> Value -> LightT env m Component) -> LightT env m [Component]
- type Resolver = Text -> Value -> MiniLight Component
- defResolver :: Resolver
Documentation
module MiniLight.Component.Types
:: (HasLightEnv env, MonadIO m) | |
=> FilePath | Filepath to the yaml file. |
-> (Text -> Value -> LightT env m Component) | Specify any resolver. |
-> LightT env m [Component] |
Load an config file and construct components.
defResolver :: Resolver Source #
Pre-defined resolver supports all components in this library.