import ResponseFactory from './ResponseFactory.ts' import {Rehydratable} from '../../support/Rehydratable.ts' import {Request} from '../Request.ts' /** * Response factory that returns a JSON object of the state of a rehydratable object. * @extends ResponseFactory */ export default class DehydratedStateResponseFactory extends ResponseFactory { constructor( /** * The object to dehydrate. * @type Rehydratable */ public readonly rehydratable: Rehydratable ) { super() } public async write(request: Request): Promise { request = await super.write(request) request.response.body = JSON.stringify(this.rehydratable.dehydrate()) return request } }