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

This commit is contained in:
Daniel Roe 2022-11-09 10:05:22 +01:00 committed by GitHub
parent 0cf0f59bc5
commit 10c2272f4f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 38 deletions

View File

@ -177,8 +177,6 @@ export default defineNuxtPlugin(async (nuxtApp) => {
fatal: false, fatal: false,
statusMessage: `Page not found: ${to.fullPath}` 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) { } else if (process.server) {
const currentURL = to.fullPath || '/' const currentURL = to.fullPath || '/'
if (!isEqual(currentURL, initialURL)) { if (!isEqual(currentURL, initialURL)) {

View File

@ -68,7 +68,6 @@ export function generateRoutesFromFiles (files: string[], pagesDir: string): Nux
const tokens = parseSegment(segment) const tokens = parseSegment(segment)
const segmentName = tokens.map(({ value }) => value).join('') const segmentName = tokens.map(({ value }) => value).join('')
const isSingleSegment = segments.length === 1
// ex: parent/[slug].vue -> parent-slug // ex: parent/[slug].vue -> parent-slug
route.name += (route.name && '-') + segmentName route.name += (route.name && '-') + segmentName
@ -79,8 +78,6 @@ export function generateRoutesFromFiles (files: string[], pagesDir: string): Nux
if (child && child.children) { if (child && child.children) {
parent = child.children parent = child.children
route.path = '' route.path = ''
} else if (segmentName === '404' && isSingleSegment) {
route.path += '/:catchAll(.*)*'
} else if (segmentName === 'index' && !route.path) { } else if (segmentName === 'index' && !route.path) {
route.path += '/' route.path += '/'
} else if (segmentName !== 'index') { } else if (segmentName !== 'index') {

View File

@ -5,24 +5,12 @@ import { generateRouteKey } from '../src/pages/runtime/utils'
describe('pages:generateRoutesFromFiles', () => { describe('pages:generateRoutesFromFiles', () => {
const pagesDir = 'pages' const pagesDir = 'pages'
const tests = [ 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', description: 'should generate correct routes for index pages',
files: [ files: [
`${pagesDir}/index.vue`, `${pagesDir}/index.vue`,
`${pagesDir}/parent/index.vue`, `${pagesDir}/parent/index.vue`,
`${pagesDir}/parent/child/index.vue` `${pagesDir}/parent/child/index.vue`
], ],
output: [ output: [
{ {
@ -48,8 +36,8 @@ describe('pages:generateRoutesFromFiles', () => {
{ {
description: 'should generate correct routes for parent/child', description: 'should generate correct routes for parent/child',
files: [ files: [
`${pagesDir}/parent.vue`, `${pagesDir}/parent.vue`,
`${pagesDir}/parent/child.vue` `${pagesDir}/parent/child.vue`
], ],
output: [ output: [
{ {
@ -70,8 +58,8 @@ describe('pages:generateRoutesFromFiles', () => {
{ {
description: 'should generate correct id for catchall (order 1)', description: 'should generate correct id for catchall (order 1)',
files: [ files: [
`${pagesDir}/[...stories].vue`, `${pagesDir}/[...stories].vue`,
`${pagesDir}/stories/[id].vue` `${pagesDir}/stories/[id].vue`
], ],
output: [ output: [
{ {
@ -112,7 +100,7 @@ describe('pages:generateRoutesFromFiles', () => {
{ {
description: 'should generate correct route for snake_case file', description: 'should generate correct route for snake_case file',
files: [ files: [
`${pagesDir}/snake_case.vue` `${pagesDir}/snake_case.vue`
], ],
output: [ output: [
{ {
@ -138,14 +126,14 @@ describe('pages:generateRoutesFromFiles', () => {
{ {
description: 'should generate correct dynamic routes', description: 'should generate correct dynamic routes',
files: [ files: [
`${pagesDir}/index.vue`, `${pagesDir}/index.vue`,
`${pagesDir}/[slug].vue`, `${pagesDir}/[slug].vue`,
`${pagesDir}/[[foo]]`, `${pagesDir}/[[foo]]`,
`${pagesDir}/[[foo]]/index.vue`, `${pagesDir}/[[foo]]/index.vue`,
`${pagesDir}/[bar]/index.vue`, `${pagesDir}/[bar]/index.vue`,
`${pagesDir}/nonopt/[slug].vue`, `${pagesDir}/nonopt/[slug].vue`,
`${pagesDir}/opt/[[slug]].vue`, `${pagesDir}/opt/[[slug]].vue`,
`${pagesDir}/[[sub]]/route-[slug].vue` `${pagesDir}/[[sub]]/route-[slug].vue`
], ],
output: [ output: [
{ {
@ -225,17 +213,17 @@ describe('pages:generateRoutesFromFiles', () => {
{ {
description: 'should throw empty param error for dynamic route', description: 'should throw empty param error for dynamic route',
files: [ files: [
`${pagesDir}/[].vue` `${pagesDir}/[].vue`
], ],
error: 'Empty param' error: 'Empty param'
}, },
{ {
description: 'should only allow "_" & "." as special character for dynamic route', description: 'should only allow "_" & "." as special character for dynamic route',
files: [ files: [
`${pagesDir}/[a1_1a].vue`, `${pagesDir}/[a1_1a].vue`,
`${pagesDir}/[b2.2b].vue`, `${pagesDir}/[b2.2b].vue`,
`${pagesDir}/[[c3@3c]].vue`, `${pagesDir}/[[c3@3c]].vue`,
`${pagesDir}/[[d4-4d]].vue` `${pagesDir}/[[d4-4d]].vue`
], ],
output: [ output: [
{ {