Skip to content
This repository has been archived by the owner on Apr 6, 2023. It is now read-only.

refactor(nuxt)!: remove support for 404.vue shorthand #8809

Merged
merged 1 commit into from Nov 9, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 0 additions & 2 deletions packages/nuxt/src/pages/runtime/router.ts
Expand Up @@ -177,8 +177,6 @@ export default defineNuxtPlugin(async (nuxtApp) => {
fatal: false,
statusMessage: `Page not found: ${to.fullPath}`
})])
} else if (process.server && to.matched[0].name === '404' && nuxtApp.ssrContext) {
nuxtApp.ssrContext.event.res.statusCode = 404
} else if (process.server) {
const currentURL = to.fullPath || '/'
if (!isEqual(currentURL, initialURL)) {
Expand Down
3 changes: 0 additions & 3 deletions packages/nuxt/src/pages/utils.ts
Expand Up @@ -68,7 +68,6 @@ export function generateRoutesFromFiles (files: string[], pagesDir: string): Nux

const tokens = parseSegment(segment)
const segmentName = tokens.map(({ value }) => value).join('')
const isSingleSegment = segments.length === 1

// ex: parent/[slug].vue -> parent-slug
route.name += (route.name && '-') + segmentName
Expand All @@ -79,8 +78,6 @@ export function generateRoutesFromFiles (files: string[], pagesDir: string): Nux
if (child && child.children) {
parent = child.children
route.path = ''
} else if (segmentName === '404' && isSingleSegment) {
route.path += '/:catchAll(.*)*'
} else if (segmentName === 'index' && !route.path) {
route.path += '/'
} else if (segmentName !== 'index') {
Expand Down
54 changes: 21 additions & 33 deletions packages/nuxt/test/pages.test.ts
Expand Up @@ -5,24 +5,12 @@ import { generateRouteKey } from '../src/pages/runtime/utils'
describe('pages:generateRoutesFromFiles', () => {
const pagesDir = 'pages'
const tests = [
{
description: 'should generate correct route for 404',
files: [`${pagesDir}/404.vue`],
output: [
{
name: '404',
path: '/:catchAll(.*)*',
file: `${pagesDir}/404.vue`,
children: []
}
]
},
{
description: 'should generate correct routes for index pages',
files: [
`${pagesDir}/index.vue`,
`${pagesDir}/parent/index.vue`,
`${pagesDir}/parent/child/index.vue`
`${pagesDir}/index.vue`,
`${pagesDir}/parent/index.vue`,
`${pagesDir}/parent/child/index.vue`
],
output: [
{
Expand All @@ -48,8 +36,8 @@ describe('pages:generateRoutesFromFiles', () => {
{
description: 'should generate correct routes for parent/child',
files: [
`${pagesDir}/parent.vue`,
`${pagesDir}/parent/child.vue`
`${pagesDir}/parent.vue`,
`${pagesDir}/parent/child.vue`
],
output: [
{
Expand All @@ -70,8 +58,8 @@ describe('pages:generateRoutesFromFiles', () => {
{
description: 'should generate correct id for catchall (order 1)',
files: [
`${pagesDir}/[...stories].vue`,
`${pagesDir}/stories/[id].vue`
`${pagesDir}/[...stories].vue`,
`${pagesDir}/stories/[id].vue`
],
output: [
{
Expand Down Expand Up @@ -112,7 +100,7 @@ describe('pages:generateRoutesFromFiles', () => {
{
description: 'should generate correct route for snake_case file',
files: [
`${pagesDir}/snake_case.vue`
`${pagesDir}/snake_case.vue`
],
output: [
{
Expand All @@ -138,14 +126,14 @@ describe('pages:generateRoutesFromFiles', () => {
{
description: 'should generate correct dynamic routes',
files: [
`${pagesDir}/index.vue`,
`${pagesDir}/[slug].vue`,
`${pagesDir}/[[foo]]`,
`${pagesDir}/[[foo]]/index.vue`,
`${pagesDir}/[bar]/index.vue`,
`${pagesDir}/nonopt/[slug].vue`,
`${pagesDir}/opt/[[slug]].vue`,
`${pagesDir}/[[sub]]/route-[slug].vue`
`${pagesDir}/index.vue`,
`${pagesDir}/[slug].vue`,
`${pagesDir}/[[foo]]`,
`${pagesDir}/[[foo]]/index.vue`,
`${pagesDir}/[bar]/index.vue`,
`${pagesDir}/nonopt/[slug].vue`,
`${pagesDir}/opt/[[slug]].vue`,
`${pagesDir}/[[sub]]/route-[slug].vue`
],
output: [
{
Expand Down Expand Up @@ -225,17 +213,17 @@ describe('pages:generateRoutesFromFiles', () => {
{
description: 'should throw empty param error for dynamic route',
files: [
`${pagesDir}/[].vue`
`${pagesDir}/[].vue`
],
error: 'Empty param'
},
{
description: 'should only allow "_" & "." as special character for dynamic route',
files: [
`${pagesDir}/[a1_1a].vue`,
`${pagesDir}/[b2.2b].vue`,
`${pagesDir}/[[c3@3c]].vue`,
`${pagesDir}/[[d4-4d]].vue`
`${pagesDir}/[a1_1a].vue`,
`${pagesDir}/[b2.2b].vue`,
`${pagesDir}/[[c3@3c]].vue`,
`${pagesDir}/[[d4-4d]].vue`
],
output: [
{
Expand Down