From d881b9fb17533712745b9ae1a75fe96b7ce178a6 Mon Sep 17 00:00:00 2001 From: Travis Fischer Date: Sat, 16 Jan 2021 15:15:30 -0500 Subject: [PATCH] feat: remove notion page ids from URLs --- components/styles.module.css | 2 +- lib/get-all-pages.ts | 9 +++----- lib/resolve-notion-page.ts | 41 +++++++++++++++--------------------- lib/types.ts | 5 +---- 4 files changed, 22 insertions(+), 35 deletions(-) diff --git a/components/styles.module.css b/components/styles.module.css index 5cb9d8f..f5b0bfa 100644 --- a/components/styles.module.css +++ b/components/styles.module.css @@ -62,7 +62,7 @@ .social a { font-size: 2em; display: inline-block; - padding: 0.5em; + padding: 0.25; margin-right: 1vw; transition: color 250ms ease-out; } diff --git a/lib/get-all-pages.ts b/lib/get-all-pages.ts index 2796356..35615f8 100644 --- a/lib/get-all-pages.ts +++ b/lib/get-all-pages.ts @@ -25,20 +25,17 @@ export async function getAllPagesImpl( if (map[canonicalPageId]) { console.error( - 'duplicate canonical page id', + 'error duplicate canonical page id', canonicalPageId, pageId, - map[canonicalPageId].pageId + map[canonicalPageId] ) return map } else { return { ...map, - [canonicalPageId]: { - pageId, - recordMap - } + [canonicalPageId]: pageId } } }, diff --git a/lib/resolve-notion-page.ts b/lib/resolve-notion-page.ts index e474e8c..d1140c5 100644 --- a/lib/resolve-notion-page.ts +++ b/lib/resolve-notion-page.ts @@ -13,40 +13,33 @@ export async function resolveNotionPage(domain: string, rawPageId?: string) { if (rawPageId && rawPageId !== 'index') { pageId = parsePageId(rawPageId) - // handle mapping user-friendly canonical page paths to Notion page IDs - // e.g., /developer-x-entrepreneur versus /71201624b204481f862630ea25ce62fe - if (!pageId) { + if (pageId) { + const resources = await Promise.all([ + getSiteForDomain(domain), + getPage(pageId) + ]) + + site = resources[0] + recordMap = resources[1] + } else { + // handle mapping of user-friendly canonical page paths to Notion page IDs + // e.g., /developer-x-entrepreneur versus /71201624b204481f862630ea25ce62fe const siteMaps = await getSiteMaps() const siteMap = siteMaps[0] - console.log(siteMap) - pageId = siteMap.canonicalPageMap[pageId]?.pageId + pageId = siteMap.canonicalPageMap[rawPageId] - if (!pageId) { + if (pageId) { + site = await getSiteForDomain(domain) + recordMap = siteMap.pageMap[pageId] + } else { return { error: { - message: `Invalid notion page ID "${rawPageId}"`, + message: `Not found "${rawPageId}"`, statusCode: 404 } } } } - - if (!pageId) { - return { - error: { - message: `Invalid notion page ID "${rawPageId}"`, - statusCode: 404 - } - } - } - - const resources = await Promise.all([ - getSiteForDomain(domain), - getPage(pageId) - ]) - - site = resources[0] - recordMap = resources[1] } else { site = await getSiteForDomain(domain) pageId = site.rootNotionPageId diff --git a/lib/types.ts b/lib/types.ts index 244ffba..8974e72 100644 --- a/lib/types.ts +++ b/lib/types.ts @@ -52,10 +52,7 @@ export interface SiteMap { } export interface CanonicalPageMap { - [canonicalPagePath: string]: { - pageId: string - recordMap: ExtendedRecordMap | null - } + [canonicalPageId: string]: string } export interface PreviewImage {