app->when(CorsService::class) ->needs(ValidatesArray::class) ->give(fn () => static::determineConfigValidator()); } private static function determineConfigValidator(): ValidatesArray { return new NetteValidator( new \Nette\Schema\Processor(), static::getConfigValidationSchema(), ); } private static function getConfigValidationSchema(): Schema { return Expect::structure([ 'path' => Expect::string(), 'origin' => Expect::string()->nullable(), 'methods' => Expect::arrayOf(Expect::string()), 'headers' => Expect::arrayOf(Expect::string()), ]); } }