Spaces:
Paused
Paused
| import { invariant } from 'outvariant' | |
| import { DeferredPromise } from '@open-draft/deferred-promise' | |
| export class RequestController { | |
| public responsePromise: DeferredPromise<Response | undefined> | |
| constructor(protected request: Request) { | |
| this.responsePromise = new DeferredPromise() | |
| } | |
| public respondWith(response?: Response): void { | |
| invariant( | |
| this.responsePromise.state === 'pending', | |
| 'Failed to respond to "%s %s" request: the "request" event has already been responded to.', | |
| this.request.method, | |
| this.request.url | |
| ) | |
| this.responsePromise.resolve(response) | |
| } | |
| } | |