feat: invert pageUrlOverrides

This commit is contained in:
Travis Fischer
2021-02-10 21:34:45 -05:00
parent 9e1462955a
commit 396aee01f5
5 changed files with 20 additions and 17 deletions

View File

@@ -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
}
}, {})
}

View File

@@ -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 {

View File

@@ -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)

View File

@@ -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
}