APICORSConfig.resolve constructor

APICORSConfig.resolve({
  1. APIConfig? apiConfig,
  2. ArgsSimple? args,
})

Resolves from the cross_origin/api entry of apiConfig, overridden by the command-line options in args.

Implementation

factory APICORSConfig.resolve({APIConfig? apiConfig, ArgsSimple? args}) {
  Object? opt(String argKey, String configKey) =>
      args?.optionAsString(argKey) ??
      apiConfig?.getPath('cross_origin', 'api', configKey);

  return APICORSConfig(
    allowOrigin: opt('cross-origin-api-allow-origin', 'allow_origin'),
    allowMethods: opt('cross-origin-api-allow-methods', 'allow_methods'),
    allowHeaders: opt('cross-origin-api-allow-headers', 'allow_headers'),
    allowCredentials: parseBool(
      opt('cross-origin-api-allow-credentials', 'allow_credentials'),
    ),
    exposeHeaders: opt('cross-origin-api-expose-headers', 'expose_headers'),
    maxAge: parseMaxAge(opt('cross-origin-api-max-age', 'max_age')),
    varyOrigin: parseBool(opt('cross-origin-api-vary-origin', 'vary_origin')),
  );
}