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

Commit

Permalink
fix(nuxt)!: remove support for 404.vue shorthand
Browse files Browse the repository at this point in the history
  • Loading branch information
danielroe committed Nov 8, 2022
1 parent 507f444 commit 17ac03c
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 38 deletions.
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

0 comments on commit 17ac03c

Please sign in to comment.