2020-07-22 14:38:17 +00:00
|
|
|
import Module from '../Module.ts'
|
|
|
|
import Kernel from '../Kernel.ts'
|
|
|
|
import {Request} from '../../Request.ts'
|
|
|
|
import {Injectable} from '../../../../../di/src/decorator/Injection.ts'
|
|
|
|
import Config from '../../../unit/Config.ts'
|
|
|
|
|
2020-08-16 19:31:47 +00:00
|
|
|
/**
|
|
|
|
* Apply the default Daton headers to the outgoing response.
|
|
|
|
* @extends Module
|
|
|
|
*/
|
2020-07-22 14:38:17 +00:00
|
|
|
@Injectable()
|
|
|
|
export default class SetDatonHeaders extends Module {
|
|
|
|
public static register(kernel: Kernel) {
|
|
|
|
kernel.register(this).after()
|
|
|
|
}
|
|
|
|
|
|
|
|
constructor(
|
|
|
|
protected readonly config: Config,
|
|
|
|
) {
|
|
|
|
super()
|
|
|
|
}
|
|
|
|
|
2020-08-16 19:31:47 +00:00
|
|
|
/**
|
|
|
|
* Apply the outgoing response headers.
|
|
|
|
* @param request
|
|
|
|
*/
|
2020-07-22 14:38:17 +00:00
|
|
|
public async apply(request: Request): Promise<Request> {
|
|
|
|
const text = this.config.get('server.powered_by.text', 'Daton')
|
|
|
|
request.response.headers.set('X-Powered-By', text)
|
|
|
|
return request
|
|
|
|
}
|
|
|
|
}
|