mirror of
https://github.com/d0zingcat/nextjs-notion-starter-kit.git
synced 2026-05-13 15:09:47 +00:00
chore: fix linting
This commit is contained in:
40
lib/db.ts
40
lib/db.ts
@@ -1,5 +1,4 @@
|
||||
import * as firestore from '@google-cloud/firestore'
|
||||
import * as types from './types'
|
||||
import * as config from './config'
|
||||
|
||||
export let db: firestore.Firestore = null
|
||||
@@ -13,42 +12,3 @@ if (config.isPreviewImageSupportEnabled) {
|
||||
|
||||
images = db.collection(config.firebaseCollectionImages)
|
||||
}
|
||||
|
||||
async function get<T extends types.Model>(
|
||||
doc: firestore.DocumentReference,
|
||||
userId?: string
|
||||
): Promise<T> {
|
||||
const snapshot = await doc.get()
|
||||
|
||||
if (snapshot.exists) {
|
||||
const res = getSnapshot<T>(snapshot)
|
||||
|
||||
if (userId && res.userId && res.userId !== userId) {
|
||||
throw {
|
||||
message: 'Unauthorized',
|
||||
status: 403
|
||||
}
|
||||
}
|
||||
|
||||
return res
|
||||
}
|
||||
|
||||
throw {
|
||||
message: 'Not found',
|
||||
status: 404
|
||||
}
|
||||
}
|
||||
|
||||
function getSnapshot<T extends types.Model>(
|
||||
snapshot: firestore.DocumentSnapshot<firestore.DocumentData>
|
||||
): T {
|
||||
const data = snapshot.data()
|
||||
delete data.timestamp
|
||||
|
||||
return {
|
||||
...data,
|
||||
id: snapshot.id,
|
||||
createdAt: (snapshot.createTime.toDate().getTime() / 1000) | 0,
|
||||
updatedAt: (snapshot.updateTime.toDate().getTime() / 1000) | 0
|
||||
} as T
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ export const mapPageUrl = (
|
||||
site: types.Site,
|
||||
recordMap: types.ExtendedRecordMap,
|
||||
searchParams: URLSearchParams
|
||||
) => (pageId: string = '') => {
|
||||
) => (pageId = '') => {
|
||||
if (uuidToId(pageId) === site.rootNotionPageId) {
|
||||
return createUrl('/', searchParams)
|
||||
} else {
|
||||
@@ -24,7 +24,7 @@ export const mapPageUrl = (
|
||||
export const getCanonicalPageUrl = (
|
||||
site: types.Site,
|
||||
recordMap: types.ExtendedRecordMap
|
||||
) => (pageId: string = '') => {
|
||||
) => (pageId = '') => {
|
||||
const pageUuid = parsePageId(pageId, { uuid: true })
|
||||
|
||||
if (uuidToId(pageId) === site.rootNotionPageId) {
|
||||
|
||||
@@ -36,6 +36,8 @@ export async function getPage(pageId: string): Promise<ExtendedRecordMap> {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null
|
||||
})
|
||||
.filter(Boolean)
|
||||
.map(({ block, url }) => mapNotionImageUrl(url, block))
|
||||
|
||||
@@ -19,21 +19,18 @@ export const oembed = async ({
|
||||
let title = config.name
|
||||
let authorName = config.author
|
||||
|
||||
try {
|
||||
const page = await getPage(pageId)
|
||||
const pageTitle = getPageTitle(page)
|
||||
if (pageTitle) title = pageTitle
|
||||
// TODO: handle errors gracefully
|
||||
|
||||
const user = page.notion_user[Object.keys(page.notion_user)[0]]?.value
|
||||
const name = [user.given_name, user.family_name]
|
||||
.filter(Boolean)
|
||||
.join(' ')
|
||||
.trim()
|
||||
if (name) authorName = name
|
||||
} catch (err) {
|
||||
// TODO: handle gracefully
|
||||
throw err
|
||||
}
|
||||
const page = await getPage(pageId)
|
||||
const pageTitle = getPageTitle(page)
|
||||
if (pageTitle) title = pageTitle
|
||||
|
||||
const user = page.notion_user[Object.keys(page.notion_user)[0]]?.value
|
||||
const name = [user.given_name, user.family_name]
|
||||
.filter(Boolean)
|
||||
.join(' ')
|
||||
.trim()
|
||||
if (name) authorName = name
|
||||
|
||||
const params: any = { lite: 'true' }
|
||||
if (dark) {
|
||||
|
||||
@@ -29,15 +29,18 @@ export async function resolveNotionPage(domain: string, rawPageId?: string) {
|
||||
pageId = siteMap.canonicalPageMap[rawPageId]
|
||||
|
||||
if (pageId) {
|
||||
site = await getSiteForDomain(domain)
|
||||
recordMap = siteMap.pageMap[pageId]
|
||||
// TODO: we're not re-using the site from siteMaps because it is
|
||||
// cachd aggressively
|
||||
// site = await getSiteForDomain(domain)
|
||||
// recordMap = siteMap.pageMap[pageId]
|
||||
|
||||
// TODO: we can't re-use the recordMap because our wrapper adds
|
||||
// additional preview_images data to the recordMap...
|
||||
// const resources = await Promise.all([
|
||||
// getSiteForDomain(domain),
|
||||
// getPage(pageId)
|
||||
// ])
|
||||
const resources = await Promise.all([
|
||||
getSiteForDomain(domain),
|
||||
getPage(pageId)
|
||||
])
|
||||
|
||||
site = resources[0]
|
||||
recordMap = resources[1]
|
||||
} else {
|
||||
return {
|
||||
error: {
|
||||
|
||||
Reference in New Issue
Block a user