chore: fix linting

This commit is contained in:
Travis Fischer
2021-01-27 18:42:11 -05:00
parent 02640c96de
commit da29754f6e
13 changed files with 294 additions and 104 deletions

View File

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

View File

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

View File

@@ -36,6 +36,8 @@ export async function getPage(pageId: string): Promise<ExtendedRecordMap> {
}
}
}
return null
})
.filter(Boolean)
.map(({ block, url }) => mapNotionImageUrl(url, block))

View File

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

View File

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