From c437a463dc71dd6657afb78fd9c4feed40dbf4a0 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Mon, 2 Mar 2020 18:03:44 -0500 Subject: [PATCH 1/2] Measure `getStaticProps`, `getServerSideProps` --- packages/next/build/index.ts | 6 +++++- packages/next/telemetry/events/build.ts | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/next/build/index.ts b/packages/next/build/index.ts index bed816ee2103f35..39b3bcfd36468b7 100644 --- a/packages/next/build/index.ts +++ b/packages/next/build/index.ts @@ -815,7 +815,11 @@ export default async function build(dir: string, conf = null): Promise { eventBuildOptimize(pagePaths, { durationInSeconds: analysisEnd[0], staticPageCount: staticPages.size, - ssrPageCount: pagePaths.length - staticPages.size, + staticPropsPageCount: ssgPages.size, + serverPropsPageCount: serverPropsPages.size, + ssrPageCount: + pagePaths.length - + (staticPages.size + ssgPages.size + serverPropsPages.size), hasStatic404: useStatic404, }) ) diff --git a/packages/next/telemetry/events/build.ts b/packages/next/telemetry/events/build.ts index 8ab16b812ae208b..e2dc9487381d03d 100644 --- a/packages/next/telemetry/events/build.ts +++ b/packages/next/telemetry/events/build.ts @@ -37,6 +37,8 @@ type EventBuildOptimized = { durationInSeconds: number totalPageCount: number staticPageCount: number + staticPropsPageCount: number + serverPropsPageCount: number ssrPageCount: number hasDunderPages: boolean hasTestPages: boolean From 177426ed1979d9c7101e942787b886f63db4f31c Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Mon, 2 Mar 2020 18:46:45 -0500 Subject: [PATCH 2/2] Test new fields --- test/integration/telemetry/pages/gip.js | 7 +++++++ test/integration/telemetry/pages/gssp.js | 5 +++++ test/integration/telemetry/pages/ssg.js | 5 +++++ .../integration/telemetry/pages/ssg/[dynamic].js | 9 +++++++++ test/integration/telemetry/test/index.test.js | 16 ++++++++++++++-- 5 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 test/integration/telemetry/pages/gip.js create mode 100644 test/integration/telemetry/pages/gssp.js create mode 100644 test/integration/telemetry/pages/ssg.js create mode 100644 test/integration/telemetry/pages/ssg/[dynamic].js diff --git a/test/integration/telemetry/pages/gip.js b/test/integration/telemetry/pages/gip.js new file mode 100644 index 000000000000000..6721b431e4307f8 --- /dev/null +++ b/test/integration/telemetry/pages/gip.js @@ -0,0 +1,7 @@ +function A() { + return 'Hello World' +} + +A.getInitialProps = () => ({ foo: 'bar' }) + +export default A diff --git a/test/integration/telemetry/pages/gssp.js b/test/integration/telemetry/pages/gssp.js new file mode 100644 index 000000000000000..ccc46b9970a6aa3 --- /dev/null +++ b/test/integration/telemetry/pages/gssp.js @@ -0,0 +1,5 @@ +export default () => 'Hello World' + +export function getServerSideProps() { + return { props: {} } +} diff --git a/test/integration/telemetry/pages/ssg.js b/test/integration/telemetry/pages/ssg.js new file mode 100644 index 000000000000000..381cfdeaf14abea --- /dev/null +++ b/test/integration/telemetry/pages/ssg.js @@ -0,0 +1,5 @@ +export default () => 'Hello World' + +export function getStaticProps() { + return { props: {} } +} diff --git a/test/integration/telemetry/pages/ssg/[dynamic].js b/test/integration/telemetry/pages/ssg/[dynamic].js new file mode 100644 index 000000000000000..a8561c54c896666 --- /dev/null +++ b/test/integration/telemetry/pages/ssg/[dynamic].js @@ -0,0 +1,9 @@ +export default () => 'Hello World' + +export function getStaticProps() { + return { props: {} } +} + +export function getStaticPaths() { + return { paths: [], fallback: true } +} diff --git a/test/integration/telemetry/test/index.test.js b/test/integration/telemetry/test/index.test.js index f059b50af04bed7..7bcf48d4f461126 100644 --- a/test/integration/telemetry/test/index.test.js +++ b/test/integration/telemetry/test/index.test.js @@ -224,8 +224,6 @@ describe('Telemetry CLI', () => { path.join(appDir, 'package.babel') ) - console.log(stderr) - const event = /NEXT_CLI_SESSION_STARTED[\s\S]+?{([\s\S]+?)}/ .exec(stderr) .pop() @@ -324,6 +322,20 @@ describe('Telemetry CLI', () => { expect(event1).toMatch(/hasStatic404.*?true/) }) + it('detect page counts correctly for `next build`', async () => { + const { stderr } = await nextBuild(appDir, [], { + stderr: true, + env: { NEXT_TELEMETRY_DEBUG: 1 }, + }) + + const event1 = /NEXT_BUILD_OPTIMIZED[\s\S]+?{([\s\S]+?)}/.exec(stderr).pop() + expect(event1).toMatch(/"staticPropsPageCount": 2/) + expect(event1).toMatch(/"serverPropsPageCount": 1/) + expect(event1).toMatch(/"ssrPageCount": 1/) + expect(event1).toMatch(/"staticPageCount": 2/) + expect(event1).toMatch(/"totalPageCount": 6/) + }) + it('detects isSrcDir dir correctly for `next dev`', async () => { let port = await findPort() let stderr = ''