Dancer2

 view release on metacpan or  search on metacpan

lib/Dancer2/ConfigReader.pm  view on Meta::CPAN

# ABSTRACT: Config reader for Dancer2 App
package Dancer2::ConfigReader;
$Dancer2::ConfigReader::VERSION = '2.1.0';
use Moo;

use Config::Any;
use Hash::Merge::Simple;
use Carp 'croak';
use Module::Runtime qw{ use_module };
use Ref::Util qw/ is_arrayref is_hashref /;
use Scalar::Util qw/ blessed /;
use Path::Tiny ();

use Dancer2::Core::Factory;
use Dancer2::Core;
use Dancer2::Core::Types;
use Dancer2::ConfigUtils 'normalize_config_entry';

our $MAX_CONFIGS = $ENV{DANCER_MAX_CONFIGS} || 100;

my %KNOWN_CORE_KEYS = map +( $_ => 1 ), qw(
    additional_config_readers
    appdir
    apphandler
    appname
    auto_page
    behind_proxy
    charset
    content_type
    default_mime_type
    engines
    environment
    error_template
    host
    layout
    layout_dir
    log
    logger
    no_default_middleware
    no_server_tokens
    plugins
    port
    public_dir
    route_handlers
    serializer
    session
    show_errors
    show_stacktrace
    startup_info
    static_handler
    template
    timeout
    traces
    type_library
    views
    strict_config
    strict_config_allow
);

my %KNOWN_ENGINE_CONFIG = (
    'logger' => {
        'base_keys' => {
            'app_name'              => 1,
            'auto_encoding_charset' => 1,
            'log_format'            => 1,
            'log_level'             => 1,
        },
        'engines' => {
            'capture' => { keys => {} },
            'console' => { keys => {} },



( run in 0.704 second using v1.01-cache-2.11-cpan-39bf76dae61 )