lib/src/http/response/JSONResponseFactory.ts

29 lines
796 B
TypeScript
Raw Normal View History

2021-06-03 03:36:25 +00:00
import {ResponseFactory} from './ResponseFactory'
import {Request} from '../lifecycle/Request'
2021-03-25 13:50:13 +00:00
/**
* Helper function to create a new JSONResponseFactory of the given value.
* @param value
*/
2021-06-03 03:36:25 +00:00
export function json(value: unknown): JSONResponseFactory {
return new JSONResponseFactory(value)
}
2021-03-25 13:50:13 +00:00
/**
* Response factory that writes the given object as JSON to the response.
*/
export class JSONResponseFactory extends ResponseFactory {
constructor(
2021-06-03 03:36:25 +00:00
public readonly value: unknown,
) {
super()
}
2021-06-03 03:36:25 +00:00
public async write(request: Request): Promise<Request> {
request = await super.write(request)
request.response.setHeader('Content-Type', 'application/json')
request.response.body = JSON.stringify(this.value)
return request
}
}