From 396aee01f534efcd357bd0cbd13fe2766bfbd9bb Mon Sep 17 00:00:00 2001 From: Travis Fischer Date: Wed, 10 Feb 2021 21:34:45 -0500 Subject: [PATCH] feat: invert pageUrlOverrides --- lib/config.ts | 15 ++++++++------- lib/get-canonical-page-id.ts | 4 ++-- lib/resolve-notion-page.ts | 8 +++++--- lib/types.ts | 6 +++--- site.config.js | 4 ++-- 5 files changed, 20 insertions(+), 17 deletions(-) diff --git a/lib/config.ts b/lib/config.ts index 68e6a25..b49c7ec 100644 --- a/lib/config.ts +++ b/lib/config.ts @@ -30,8 +30,7 @@ export const pageUrlOverrides = cleanPageUrlOverrides( export const inversePageUrlOverrides = invertPageUrlOverrides(pageUrlOverrides) -console.log('pageUrlOverrides', pageUrlOverrides) -console.log('inversePageUrlOverrides', inversePageUrlOverrides) +// export const inversePageUrlAdditions = invertPageUrlOverrides(pageUrlOverrides) // general site config export const name: string = getSiteConfig('name') @@ -160,9 +159,9 @@ function getGoogleApplicationCredentials() { function cleanPageUrlOverrides( pageUrlOverrides: PageUrlOverridesMap ): PageUrlOverridesMap { - return Object.keys(pageUrlOverrides).reduce((acc, pageId) => { + return Object.keys(pageUrlOverrides).reduce((acc, uri) => { + const pageId = pageUrlOverrides[uri] const uuid = parsePageId(pageId, { uuid: false }) - const uri = pageUrlOverrides[pageId] if (!uuid) { throw new Error(`Invalid pageUrlOverrides page id "${pageId}"`) @@ -182,7 +181,7 @@ function cleanPageUrlOverrides( return { ...acc, - [uuid]: path + [path]: uuid } }, {}) } @@ -190,10 +189,12 @@ function cleanPageUrlOverrides( function invertPageUrlOverrides( pageUrlOverrides: PageUrlOverridesMap ): PageUrlOverridesInverseMap { - return Object.keys(pageUrlOverrides).reduce((acc, pageId) => { + return Object.keys(pageUrlOverrides).reduce((acc, uri) => { + const pageId = pageUrlOverrides[uri] + return { ...acc, - [pageUrlOverrides[pageId]]: pageId + [pageId]: uri } }, {}) } diff --git a/lib/get-canonical-page-id.ts b/lib/get-canonical-page-id.ts index 46bd64b..85f0c48 100644 --- a/lib/get-canonical-page-id.ts +++ b/lib/get-canonical-page-id.ts @@ -4,7 +4,7 @@ import { getCanonicalPageId as getCanonicalPageIdImpl } from 'notion-utils' -import { pageUrlOverrides } from './config' +import { inversePageUrlOverrides } from './config' export function getCanonicalPageId( pageId: string, @@ -18,7 +18,7 @@ export function getCanonicalPageId( console.log('getCanonicalPageId', pageId) - const override = pageUrlOverrides[cleanPageId] + const override = inversePageUrlOverrides[cleanPageId] if (override) { return override } else { diff --git a/lib/resolve-notion-page.ts b/lib/resolve-notion-page.ts index ad9a725..bd18cb3 100644 --- a/lib/resolve-notion-page.ts +++ b/lib/resolve-notion-page.ts @@ -1,7 +1,9 @@ import { parsePageId } from 'notion-utils' +import { ExtendedRecordMap } from 'notion-types' + import * as acl from './acl' import * as types from './types' -import { inversePageUrlOverrides } from './config' +import { pageUrlOverrides } from './config' import { getPage } from './notion' import { getSiteMaps } from './get-site-maps' import { getSiteForDomain } from './get-site-for-domain' @@ -9,13 +11,13 @@ import { getSiteForDomain } from './get-site-for-domain' export async function resolveNotionPage(domain: string, rawPageId?: string) { let site: types.Site let pageId: string - let recordMap: types.ExtendedRecordMap + let recordMap: ExtendedRecordMap if (rawPageId && rawPageId !== 'index') { pageId = parsePageId(rawPageId) if (!pageId) { - const override = inversePageUrlOverrides[rawPageId] + const override = pageUrlOverrides[rawPageId] if (override) { pageId = parsePageId(override) diff --git a/lib/types.ts b/lib/types.ts index 8e7cbf5..3ac70f0 100644 --- a/lib/types.ts +++ b/lib/types.ts @@ -55,13 +55,13 @@ export interface CanonicalPageMap { } export interface PageUrlOverridesMap { - // maps from a notion page id to the URL path the page should be resolved to + // maps from a URL path to the notion page id the page should be resolved to // (this overrides the built-in URL path generation for these pages) - [pageId: string]: string + [pagePath: string]: string } export interface PageUrlOverridesInverseMap { - // maps from a URL path to the notion page id the page should be resolved to + // maps from a notion page id to the URL path the page should be resolved to // (this overrides the built-in URL path generation for these pages) [pageId: string]: string } diff --git a/site.config.js b/site.config.js index e0f4080..c0e7683 100644 --- a/site.config.js +++ b/site.config.js @@ -44,8 +44,8 @@ module.exports = { // example: // // pageUrlOverrides: { - // '067dd719a912471ea9a3ac10710e7fdf': '/foo', - // '0be6efce9daf42688f65c76b89f8eb27': '/bar' + // '/foo': '067dd719a912471ea9a3ac10710e7fdf', + // '/bar': '0be6efce9daf42688f65c76b89f8eb27' // } pageUrlOverrides: null }