mirror of
https://github.com/d0zingcat/nextjs-notion-starter-kit.git
synced 2026-05-13 15:09:47 +00:00
feat: invert pageUrlOverrides
This commit is contained in:
@@ -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
|
||||
}
|
||||
}, {})
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user