From 7cc0e9491fab38235c7e845f983c4dc54560f439 Mon Sep 17 00:00:00 2001 From: Lucas Cordeiro Date: Sun, 8 Nov 2020 11:59:22 -0300 Subject: [PATCH] Fix global fetch polyfill causing build errors --- packages/react-app-server/bin/rs.ts | 14 ++++---------- packages/react-app-server/server/defaultServer.tsx | 9 +++++++++ 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/packages/react-app-server/bin/rs.ts b/packages/react-app-server/bin/rs.ts index 0ab89e6e..9c5039a0 100755 --- a/packages/react-app-server/bin/rs.ts +++ b/packages/react-app-server/bin/rs.ts @@ -28,13 +28,7 @@ process.env.NODE_ENV = process.env.NODE_ENV || defaultEnv commands[command]() // @ts-ignore -const { Request, Response, Headers } = require('minipass-fetch') -const Body = require('minipass-fetch/lib/body') - -Object.assign( - global, - { Request, Response, Headers, Body }, - { - fetch: require('make-fetch-happen'), - } -) +global.Body = require('minipass-fetch/lib/body') +global.Request = require('minipass-fetch').Request +global.Response = require('minipass-fetch').Response +global.Headers = require('minipass-fetch').Headers diff --git a/packages/react-app-server/server/defaultServer.tsx b/packages/react-app-server/server/defaultServer.tsx index 2a1c475f..ef106135 100644 --- a/packages/react-app-server/server/defaultServer.tsx +++ b/packages/react-app-server/server/defaultServer.tsx @@ -1,6 +1,7 @@ import * as fs from 'fs' import { IncomingMessage, ServerResponse } from 'http' import * as path from 'path' +import { Writable } from 'stream' import { parse as parseUrl } from 'url' import { RootContext } from '@app-server/components' @@ -24,6 +25,12 @@ import { requestContainsPrecondition, } from './utils' +declare global { + const Body: { + writeToStream(stream: Writable, body: Body): void + } +} + const readJSON = (filePath: string) => { const file = fs.readFileSync(filePath) return JSON.parse(file.toString()) @@ -244,6 +251,8 @@ export class DefaultServer { ]) as Array<[string, string]>, }) + global.fetch = require('make-fetch-happen') + const handleRequest = await this.getAppRequestHandler() let response = handleRequest(request, 200, request.headers, serverContext)