Skip to content

Commit 39dbe3e

Browse files
fix: nextjs config file read (#261)
1 parent 507345c commit 39dbe3e

File tree

8 files changed

+275
-71
lines changed

8 files changed

+275
-71
lines changed
+87
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
// This module simulates external API calls
2+
3+
const POSTS = [
4+
{
5+
"userId": 1,
6+
"id": 1,
7+
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
8+
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
9+
},
10+
{
11+
"userId": 1,
12+
"id": 2,
13+
"title": "qui est esse",
14+
"body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla"
15+
},
16+
{
17+
"userId": 1,
18+
"id": 3,
19+
"title": "ea molestias quasi exercitationem repellat qui ipsa sit aut",
20+
"body": "et iusto sed quo iure\nvoluptatem occaecati omnis eligendi aut ad\nvoluptatem doloribus vel accusantium quis pariatur\nmolestiae porro eius odio et labore et velit aut"
21+
},
22+
{
23+
"userId": 1,
24+
"id": 4,
25+
"title": "eum et est occaecati",
26+
"body": "ullam et saepe reiciendis voluptatem adipisci\nsit amet autem assumenda provident rerum culpa\nquis hic commodi nesciunt rem tenetur doloremque ipsam iure\nquis sunt voluptatem rerum illo velit"
27+
},
28+
{
29+
"userId": 1,
30+
"id": 5,
31+
"title": "nesciunt quas odio",
32+
"body": "repudiandae veniam quaerat sunt sed\nalias aut fugiat sit autem sed est\nvoluptatem omnis possimus esse voluptatibus quis\nest aut tenetur dolor neque"
33+
},
34+
{
35+
"userId": 1,
36+
"id": 6,
37+
"title": "dolorem eum magni eos aperiam quia",
38+
"body": "ut aspernatur corporis harum nihil quis provident sequi\nmollitia nobis aliquid molestiae\nperspiciatis et ea nemo ab reprehenderit accusantium quas\nvoluptate dolores velit et doloremque molestiae"
39+
},
40+
{
41+
"userId": 1,
42+
"id": 7,
43+
"title": "magnam facilis autem",
44+
"body": "dolore placeat quibusdam ea quo vitae\nmagni quis enim qui quis quo nemo aut saepe\nquidem repellat excepturi ut quia\nsunt ut sequi eos ea sed quas"
45+
},
46+
{
47+
"userId": 1,
48+
"id": 8,
49+
"title": "dolorem dolore est ipsam",
50+
"body": "dignissimos aperiam dolorem qui eum\nfacilis quibusdam animi sint suscipit qui sint possimus cum\nquaerat magni maiores excepturi\nipsam ut commodi dolor voluptatum modi aut vitae"
51+
},
52+
{
53+
"userId": 1,
54+
"id": 9,
55+
"title": "nesciunt iure omnis dolorem tempora et accusantium",
56+
"body": "consectetur animi nesciunt iure dolore\nenim quia ad\nveniam autem ut quam aut nobis\net est aut quod aut provident voluptas autem voluptas"
57+
},
58+
{
59+
"userId": 1,
60+
"id": 10,
61+
"title": "optio molestias id quia eum",
62+
"body": "quo et expedita modi cum officia vel magni\ndoloribus qui repudiandae\nvero nisi sit\nquos veniam quod sed accusamus veritatis error"
63+
}
64+
]
65+
66+
// sleep for n seconds
67+
async function sleep(seconds) {
68+
const ms = seconds * 1000;
69+
70+
return new Promise((resolve) => setTimeout(resolve, ms));
71+
}
72+
73+
export async function getPosts() {
74+
// simulates delay
75+
await sleep(1);
76+
77+
return POSTS;
78+
}
79+
80+
export async function getPostById(id) {
81+
// simulates delay
82+
await sleep(0.5);
83+
84+
const post = POSTS.filter((p) => p.id === parseInt(id))[0];
85+
86+
return post;
87+
}

examples/next/next-12-static/pages/index.jsx

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
import Head from 'next/head'
22

33
import Post from '../components/post'
4+
import { getPosts } from '../lib/posts'
45

56
export async function getStaticProps() {
67
// fetch list of posts
7-
const response = await fetch(
8-
'https://jsonplaceholder.typicode.com/posts?_page=1'
9-
)
10-
const postList = await response.json()
8+
const postList = await getPosts();
9+
1110
return {
1211
props: {
1312
postList,
1413
},
15-
}
14+
};
1615
}
1716

1817
export default function IndexPage({ postList }) {
@@ -30,5 +29,5 @@ export default function IndexPage({ postList }) {
3029
))}
3130
</section>
3231
</main>
33-
)
32+
);
3433
}

examples/next/next-12-static/pages/post/[id].jsx

+5-8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import Link from 'next/link';
22
import Head from 'next/head';
33
import React, { useState } from 'react';
4+
import { getPosts, getPostById } from "../../lib/posts";
45

56
function Example() {
67
// Declare a new state variable, which we'll call "count"
@@ -16,10 +17,8 @@ function Example() {
1617
}
1718

1819
export async function getStaticPaths() {
19-
const response = await fetch(
20-
'https://jsonplaceholder.typicode.com/posts?_page=1'
21-
);
22-
const postList = await response.json();
20+
const postList = await getPosts();
21+
2322
return {
2423
paths: postList.map((post) => {
2524
return {
@@ -34,10 +33,8 @@ export async function getStaticPaths() {
3433

3534
export async function getStaticProps({ params }) {
3635
// fetch single post detail
37-
const response = await fetch(
38-
`https://jsonplaceholder.typicode.com/posts/${params.id}`
39-
);
40-
const post = await response.json();
36+
const post = await getPostById(params.id);
37+
4138
return {
4239
props: post,
4340
};
+87
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
// This module simulates external API calls
2+
3+
const POSTS = [
4+
{
5+
"userId": 1,
6+
"id": 1,
7+
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
8+
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
9+
},
10+
{
11+
"userId": 1,
12+
"id": 2,
13+
"title": "qui est esse",
14+
"body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla"
15+
},
16+
{
17+
"userId": 1,
18+
"id": 3,
19+
"title": "ea molestias quasi exercitationem repellat qui ipsa sit aut",
20+
"body": "et iusto sed quo iure\nvoluptatem occaecati omnis eligendi aut ad\nvoluptatem doloribus vel accusantium quis pariatur\nmolestiae porro eius odio et labore et velit aut"
21+
},
22+
{
23+
"userId": 1,
24+
"id": 4,
25+
"title": "eum et est occaecati",
26+
"body": "ullam et saepe reiciendis voluptatem adipisci\nsit amet autem assumenda provident rerum culpa\nquis hic commodi nesciunt rem tenetur doloremque ipsam iure\nquis sunt voluptatem rerum illo velit"
27+
},
28+
{
29+
"userId": 1,
30+
"id": 5,
31+
"title": "nesciunt quas odio",
32+
"body": "repudiandae veniam quaerat sunt sed\nalias aut fugiat sit autem sed est\nvoluptatem omnis possimus esse voluptatibus quis\nest aut tenetur dolor neque"
33+
},
34+
{
35+
"userId": 1,
36+
"id": 6,
37+
"title": "dolorem eum magni eos aperiam quia",
38+
"body": "ut aspernatur corporis harum nihil quis provident sequi\nmollitia nobis aliquid molestiae\nperspiciatis et ea nemo ab reprehenderit accusantium quas\nvoluptate dolores velit et doloremque molestiae"
39+
},
40+
{
41+
"userId": 1,
42+
"id": 7,
43+
"title": "magnam facilis autem",
44+
"body": "dolore placeat quibusdam ea quo vitae\nmagni quis enim qui quis quo nemo aut saepe\nquidem repellat excepturi ut quia\nsunt ut sequi eos ea sed quas"
45+
},
46+
{
47+
"userId": 1,
48+
"id": 8,
49+
"title": "dolorem dolore est ipsam",
50+
"body": "dignissimos aperiam dolorem qui eum\nfacilis quibusdam animi sint suscipit qui sint possimus cum\nquaerat magni maiores excepturi\nipsam ut commodi dolor voluptatum modi aut vitae"
51+
},
52+
{
53+
"userId": 1,
54+
"id": 9,
55+
"title": "nesciunt iure omnis dolorem tempora et accusantium",
56+
"body": "consectetur animi nesciunt iure dolore\nenim quia ad\nveniam autem ut quam aut nobis\net est aut quod aut provident voluptas autem voluptas"
57+
},
58+
{
59+
"userId": 1,
60+
"id": 10,
61+
"title": "optio molestias id quia eum",
62+
"body": "quo et expedita modi cum officia vel magni\ndoloribus qui repudiandae\nvero nisi sit\nquos veniam quod sed accusamus veritatis error"
63+
}
64+
]
65+
66+
// sleep for n seconds
67+
async function sleep(seconds) {
68+
const ms = seconds * 1000;
69+
70+
return new Promise((resolve) => setTimeout(resolve, ms));
71+
}
72+
73+
export async function getPosts() {
74+
// simulates delay
75+
await sleep(1);
76+
77+
return POSTS;
78+
}
79+
80+
export async function getPostById(id) {
81+
// simulates delay
82+
await sleep(0.5);
83+
84+
const post = POSTS.filter((p) => p.id === parseInt(id))[0];
85+
86+
return post;
87+
}

examples/next/next-13-static/src/pages/index.jsx

+5-7
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
11
import Head from 'next/head'
22
import styles from '@/styles/Home.module.css'
33
import Post from '../components/post'
4-
4+
import { getPosts } from "../../lib/posts"
55

66
export async function getStaticProps() {
77
// fetch list of posts
8-
const response = await fetch(
9-
'https://jsonplaceholder.typicode.com/posts?_page=1'
10-
)
11-
const postList = await response.json()
8+
const postList = await getPosts();
9+
1210
return {
1311
props: {
1412
postList,
1513
},
16-
}
14+
};
1715
}
1816

1917
export default function IndexPage({ postList }) {
@@ -42,5 +40,5 @@ export default function IndexPage({ postList }) {
4240
))}
4341
</section>
4442
</main>
45-
)
43+
);
4644
}

examples/next/next-13-static/src/pages/post/[id].jsx

+6-9
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
import Link from 'next/link';
22
import Head from 'next/head';
3-
import React, { useState } from 'react';
3+
import React from 'react';
44
import styles from '../../components/post.module.css'
5+
import { getPosts, getPostById } from "../../../lib/posts"
56

67
export async function getStaticPaths() {
7-
const response = await fetch(
8-
'https://jsonplaceholder.typicode.com/posts?_page=1'
9-
);
10-
const postList = await response.json();
8+
const postList = await getPosts();
9+
1110
return {
1211
paths: postList.map((post) => {
1312
return {
@@ -22,10 +21,8 @@ export async function getStaticPaths() {
2221

2322
export async function getStaticProps({ params }) {
2423
// fetch single post detail
25-
const response = await fetch(
26-
`https://jsonplaceholder.typicode.com/posts/${params.id}`
27-
);
28-
const post = await response.json();
24+
const post = await getPostById(params.id);
25+
2926
return {
3027
props: post,
3128
};

0 commit comments

Comments
 (0)