24 lines
815 B
TypeScript
24 lines
815 B
TypeScript
import {Instantiable, FactoryProducer} from '../../../di'
|
|
import {TokenRepository} from '../types'
|
|
import {ORMTokenRepository} from './ORMTokenRepository'
|
|
import {ConfiguredSingletonFactory} from '../../../di/factory/ConfiguredSingletonFactory'
|
|
|
|
/**
|
|
* A dependency injection factory that matches the abstract TokenRepository class
|
|
* and produces an instance of the configured repository driver implementation.
|
|
*/
|
|
@FactoryProducer()
|
|
export class TokenRepositoryFactory extends ConfiguredSingletonFactory<TokenRepository> {
|
|
protected getConfigKey(): string {
|
|
return 'oauth2.repository.token'
|
|
}
|
|
|
|
protected getDefaultImplementation(): Instantiable<TokenRepository> {
|
|
return ORMTokenRepository
|
|
}
|
|
|
|
protected getAbstractImplementation(): any {
|
|
return TokenRepository
|
|
}
|
|
}
|