File tree Expand file tree Collapse file tree 15 files changed +225
-9
lines changed
dev-packages/e2e-tests/test-applications/nextjs-14
test-outgoing-fetch-external-disallowed
test-outgoing-http-external-disallowed
packages/nextjs/src/server Expand file tree Collapse file tree 15 files changed +225
-9
lines changed Original file line number Diff line number Diff line change 1+ import { checkHandler } from '../../utils' ;
2+
3+ export const dynamic = 'force-dynamic' ;
4+
5+ export const GET = checkHandler ;
Original file line number Diff line number Diff line change 1+ import { NextResponse } from 'next/server' ;
2+
3+ export const dynamic = 'force-dynamic' ;
4+
5+ export async function GET ( ) {
6+ const data = await fetch ( `http://localhost:3030/propagation/test-outgoing-fetch-external-disallowed/check` ) . then (
7+ res => res . json ( ) ,
8+ ) ;
9+ return NextResponse . json ( data ) ;
10+ }
Original file line number Diff line number Diff line change 1+ import { checkHandler } from '../../utils' ;
2+
3+ export const dynamic = 'force-dynamic' ;
4+
5+ export const GET = checkHandler ;
Original file line number Diff line number Diff line change 1+ import { NextResponse } from 'next/server' ;
2+
3+ export const dynamic = 'force-dynamic' ;
4+
5+ export async function GET ( ) {
6+ const data = await fetch ( `http://localhost:3030/propagation/test-outgoing-fetch/check` ) . then ( res => res . json ( ) ) ;
7+ return NextResponse . json ( data ) ;
8+ }
Original file line number Diff line number Diff line change 1+ import { checkHandler } from '../../utils' ;
2+
3+ export const dynamic = 'force-dynamic' ;
4+
5+ export const GET = checkHandler ;
Original file line number Diff line number Diff line change 1+ import { NextResponse } from 'next/server' ;
2+ import { makeHttpRequest } from '../utils' ;
3+
4+ export const dynamic = 'force-dynamic' ;
5+
6+ export async function GET ( ) {
7+ const data = await makeHttpRequest ( `http://localhost:3030/propagation/test-outgoing-http-external-disallowed/check` ) ;
8+ return NextResponse . json ( data ) ;
9+ }
Original file line number Diff line number Diff line change 1+ import { checkHandler } from '../../utils' ;
2+
3+ export const dynamic = 'force-dynamic' ;
4+
5+ export const GET = checkHandler ;
Original file line number Diff line number Diff line change 1+ import { NextResponse } from 'next/server' ;
2+ import { makeHttpRequest } from '../utils' ;
3+
4+ export const dynamic = 'force-dynamic' ;
5+
6+ export async function GET ( ) {
7+ const data = await makeHttpRequest ( `http://localhost:3030/propagation/test-outgoing-http/check` ) ;
8+ return NextResponse . json ( data ) ;
9+ }
Original file line number Diff line number Diff line change 1+ import http from 'http' ;
2+ import { headers } from 'next/headers' ;
3+ import { NextResponse } from 'next/server' ;
4+
5+ export function makeHttpRequest ( url : string ) {
6+ return new Promise ( resolve => {
7+ const data : any [ ] = [ ] ;
8+ http
9+ . request ( url , httpRes => {
10+ httpRes . on ( 'data' , chunk => {
11+ data . push ( chunk ) ;
12+ } ) ;
13+ httpRes . on ( 'error' , error => {
14+ resolve ( { error : error . message , url } ) ;
15+ } ) ;
16+ httpRes . on ( 'end' , ( ) => {
17+ try {
18+ const json = JSON . parse ( Buffer . concat ( data ) . toString ( ) ) ;
19+ resolve ( json ) ;
20+ } catch {
21+ resolve ( { data : Buffer . concat ( data ) . toString ( ) , url } ) ;
22+ }
23+ } ) ;
24+ } )
25+ . end ( ) ;
26+ } ) ;
27+ }
28+
29+ export function checkHandler ( ) {
30+ const headerList = headers ( ) ;
31+
32+ const headerObj : Record < string , unknown > = { } ;
33+ headerList . forEach ( ( value , key ) => {
34+ headerObj [ key ] = value ;
35+ } ) ;
36+
37+ return NextResponse . json ( { headers : headerObj } ) ;
38+ }
Original file line number Diff line number Diff line change @@ -3,7 +3,7 @@ import http from 'http';
33export const dynamic = 'force-dynamic' ;
44
55export default async function Page ( ) {
6- await fetch ( 'http://example.com/' , { cache : 'no-cache' } ) ;
6+ await fetch ( 'http://example.com/' , { cache : 'no-cache' } ) . then ( res => res . text ( ) ) ;
77 await new Promise < void > ( resolve => {
88 http . get ( 'http://example.com/' , res => {
99 res . on ( 'data' , ( ) => {
You can’t perform that action at this time.
0 commit comments