From bf0d6658665a5dbad5121800df65af69076153ea Mon Sep 17 00:00:00 2001 From: Sam Carlton Date: Sat, 13 Mar 2021 21:40:02 -0600 Subject: [PATCH] Fix eleventy route collisions --- build-lists.js | 10 ++++++++-- helpers/app-derived.js | 4 ++++ pages-eleventy/app.11ty.js | 8 ++++---- pages-eleventy/story.11ty.js | 4 ++-- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/build-lists.js b/build-lists.js index 3675860..be64232 100644 --- a/build-lists.js +++ b/build-lists.js @@ -9,7 +9,13 @@ import buildVideoList from './helpers/build-video-list.js' import { buildVideoPayload, buildAppBenchmarkPayload } from './helpers/build-payload.js' import { categories, getAppCategory } from './helpers/categories.js' -import { hasStory, getAppType, getAppEndpoint, getVideoEndpoint } from './helpers/app-derived.js' +import { + hasStory, + getAppType, + getAppEndpoint, + getStoryEndpoint, + getVideoEndpoint +} from './helpers/app-derived.js' import { makeSearchableList } from './helpers/searchable-list.js' // Setup dotenv @@ -240,7 +246,7 @@ class BuildLists { if ( hasStory( app ) ) { const payload = buildAppBenchmarkPayload( app, this.allVideoAppsList, this.lists.video ) - this.endpointMaps.eleventy.set( `${getAppEndpoint(app)}/story/`, payload ) + this.endpointMaps.eleventy.set( getStoryEndpoint(app), payload ) } diff --git a/helpers/app-derived.js b/helpers/app-derived.js index 5a3d5f9..84ba460 100644 --- a/helpers/app-derived.js +++ b/helpers/app-derived.js @@ -46,6 +46,10 @@ export function getAppEndpoint ( app ) { return `/${appType}/${app.slug}` } +export function getStoryEndpoint( app ) { + return `${getAppEndpoint(app)}/story/` +} + export function getVideoEndpoint ( video ) { return `/tv/${video.slug}` diff --git a/pages-eleventy/app.11ty.js b/pages-eleventy/app.11ty.js index 1d49a15..640fe99 100644 --- a/pages-eleventy/app.11ty.js +++ b/pages-eleventy/app.11ty.js @@ -2,7 +2,7 @@ import dotenv from 'dotenv' import config from '../nuxt.config.js' -import { getAppType } from '../helpers/app-derived.js' +import { getAppType, getAppEndpoint } from '../helpers/app-derived.js' import { makeLastUpdatedFriendly } from '../helpers/parse-date' @@ -35,10 +35,10 @@ export class AppTemplate { alias: 'app', before: function( data ) { - return data.filter( entry => { - const appType = getAppType( entry.payload.app ) + return data.filter( endpoint => { + const appType = getAppType( endpoint.payload.app ) - return appType === 'app' + return appType === 'app' && endpoint.route === getAppEndpoint( endpoint.payload.app ) }) } }, diff --git a/pages-eleventy/story.11ty.js b/pages-eleventy/story.11ty.js index 823a35c..d2b8d87 100644 --- a/pages-eleventy/story.11ty.js +++ b/pages-eleventy/story.11ty.js @@ -2,7 +2,7 @@ import dotenv from 'dotenv' import config from '../nuxt.config.js' -import { hasStory } from '../helpers/app-derived.js' +import { hasStory, getStoryEndpoint } from '../helpers/app-derived.js' import { makeLastUpdatedFriendly } from '../helpers/parse-date' @@ -38,7 +38,7 @@ export class Story { return data.filter( entry => { // const appType = getAppType( entry.payload.app ) - return hasStory ( entry.payload.app ) + return hasStory ( entry.payload.app ) && entry.route === getStoryEndpoint( entry.payload.app ) }) } },