next.js/test/e2e/edge-pages-support/app/my-adapter.js
my-adapter.js41 lines1.4 KB
module.exports = {
  onBuildComplete({ outputs }) {
    const pagesDataPathnames = outputs.pages
      .map((item) => item.pathname)
      .filter((item) => item.startsWith('/_next/data/'))
    const appPagesDataPathnames = outputs.appPages
      .map((item) => item.pathname)
      .filter((item) => item.startsWith('/_next/data/'))

    const hasIndexData = pagesDataPathnames.some((item) =>
      /^\/_next\/data\/[^/]+\/index\.json$/.test(item)
    )
    const hasDynamicData = pagesDataPathnames.some((item) =>
      /^\/_next\/data\/[^/]+\/\[id\]\.json$/.test(item)
    )
    const hasDoubleIndexData = [
      ...pagesDataPathnames,
      ...appPagesDataPathnames,
    ].some((item) => /^\/_next\/data\/[^/]+\/index\/index\.json$/.test(item))

    if (!hasIndexData || !hasDynamicData || hasDoubleIndexData) {
      throw new Error(
        [
          'Unexpected edge pages data output from adapter build:',
          `pagesDataPathnames=${JSON.stringify(pagesDataPathnames)}`,
          `appPagesDataPathnames=${JSON.stringify(appPagesDataPathnames)}`,
          `hasIndexData=${hasIndexData}`,
          `hasDynamicData=${hasDynamicData}`,
          `hasDoubleIndexData=${hasDoubleIndexData}`,
        ].join('\n')
      )
    }

    if (appPagesDataPathnames.length > 0) {
      throw new Error(
        `Expected no pages-router data outputs in appPages: ${JSON.stringify(appPagesDataPathnames)}`
      )
    }
  },
}
Quest for Codev2.0.0
/
SIGN IN