     ///   - allowCredentials: If cookies and other credentials will be sent in the response.
     ///   - cacheExpiration: Optionally sets expiration of the cached pre-flight request in seconds.
     ///   - exposedHeaders: Headers exposed in the response of pre-flight request.
-    public init(allowedOrigin: AllowOriginSetting,
-                allowedMethods: [Method],
-                allowedHeaders: [String],
-                allowCredentials: Bool = false,
-                cacheExpiration: Int? = 600,
-                exposedHeaders: [String]? = nil) {
+    public init(
+        allowedOrigin: AllowOriginSetting,
+        allowedMethods: [Method],
+        allowedHeaders: [String],
+        allowCredentials: Bool = false,
+        cacheExpiration: Int? = 600,
+        exposedHeaders: [String]? = nil
+    ) {
         self.allowedOrigin = allowedOrigin
         self.allowedMethods = allowedMethods.map({ $0.description }).joined(separator: ", ")
         self.allowedHeaders = allowedHeaders.joined(separator: ", ")

        // Allowed origin
        do {
            let originString: String = try cors.get("allowedOrigin")
            switch originString {
            case "all", "*": self.allowedOrigin = .all
            case "none", "": self.allowedOrigin = .none
            case "origin", "Origin": self.allowedOrigin = .originBased
            default: self.allowedOrigin = .custom(originString)
            }
        } catch {
            throw CORSConfigurationError.missingRequiredConfigurationKey("allowedOrigin")

        // Get methods
        do {
            let methodArray: [String] = try cors.get("allowedMethods")
            allowedMethods = methodArray.joined(separator: ", ").uppercased()
        } catch {
            throw CORSConfigurationError.missingRequiredConfigurationKey("allowedMethods")
        }
