amplify-swift/AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Environment/CredentialStoreEnvironment....

46 lines
1.6 KiB
Swift

//
// Copyright Amazon.com Inc. or its affiliates.
// All Rights Reserved.
//
// SPDX-License-Identifier: Apache-2.0
//
import AWSPluginsCore
import Amplify
struct CredentialEnvironment: Environment, LoggerProvider {
let authConfiguration: AuthConfiguration
let credentialStoreEnvironment: CredentialStoreEnvironment
let logger: Logger
}
protocol CredentialStoreEnvironment: Environment {
typealias AmplifyAuthCredentialStoreFactory = () -> AmplifyAuthCredentialStoreBehavior
typealias KeychainStoreFactory = (_ service: String) -> KeychainStoreBehavior
var amplifyCredentialStoreFactory: AmplifyAuthCredentialStoreFactory { get }
var legacyKeychainStoreFactory: KeychainStoreFactory { get }
var eventIDFactory: EventIDFactory { get }
}
struct BasicCredentialStoreEnvironment: CredentialStoreEnvironment {
typealias AmplifyAuthCredentialStoreFactory = () -> AmplifyAuthCredentialStoreBehavior
typealias KeychainStoreFactory = (_ service: String) -> KeychainStoreBehavior
// Required
let amplifyCredentialStoreFactory: AmplifyAuthCredentialStoreFactory
let legacyKeychainStoreFactory: KeychainStoreFactory
// Optional
let eventIDFactory: EventIDFactory
init(amplifyCredentialStoreFactory: @escaping AmplifyAuthCredentialStoreFactory,
legacyKeychainStoreFactory: @escaping KeychainStoreFactory,
eventIDFactory: @escaping EventIDFactory = UUIDFactory.factory) {
self.amplifyCredentialStoreFactory = amplifyCredentialStoreFactory
self.legacyKeychainStoreFactory = legacyKeychainStoreFactory
self.eventIDFactory = eventIDFactory
}
}