Files
lib/src/http/response/DehydratedStateResponseFactory.ts
garrettmills 4d39637f30
Some checks failed
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is failing
Fix more import issues from monorepo merge
2021-06-01 21:09:47 -05:00

28 lines
863 B
TypeScript

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 {
constructor(
public readonly rehydratable: Rehydratable
) { super() }
public async write(request: Request) {
request = await super.write(request)
request.response.body = JSON.stringify(this.rehydratable.dehydrate())
request.response.setHeader('Content-Type', 'application/json')
return request
}
}