Standard libraries that lift up your code.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
893 B

import {ResponseFactory} from './ResponseFactory'
import {Rehydratable} from '../../util'
import {Request} from '../lifecycle/Request'
* Helper function that creates a DehydratedStateResponseFactory.
* @param value
export function dehydrate(value: Rehydratable): DehydratedStateResponseFactory {
return new DehydratedStateResponseFactory(value)
* Response factor that sends a Rehydratable class' data as JSON.
export class DehydratedStateResponseFactory extends ResponseFactory {
public readonly rehydratable: Rehydratable,
) {
public async write(request: Request): Promise<Request> {
request = await super.write(request)
request.response.body = JSON.stringify(this.rehydratable.dehydrate())
request.response.setHeader('Content-Type', 'application/json')
return request