JSPM

  • Created
  • Published
  • Downloads 112
  • Score
    100M100P100Q73690F
  • License MIT

Notion: Custom Wrapper

Package Exports

  • @jeromefitz/notion
  • @jeromefitz/notion/queries/getInfoType
  • @jeromefitz/notion/queries/getPathVariables
  • @jeromefitz/notion/schema
  • @jeromefitz/notion/utils/avoidRateLimit
  • @jeromefitz/notion/utils/dataNormalized
  • @jeromefitz/notion/utils/dataNormalizedResults
  • @jeromefitz/notion/utils/dataSorted
  • @jeromefitz/notion/utils/getImages
  • @jeromefitz/notion/utils/getTitle

Readme

@jeromefitz/notion

Wrapper stuff for jeromefitzgerald.com.

📝️ Please Note:

  • 🧐 Very specific to an implementation I re-use a lot
  • 😬 Lots of any types (currently)
  • 🤔️ Would be good to build this out to be more generic

This is really a custom thing, so not sure how useful this would be for anyone else.

This will not be ready for production/OSS use until 2.0.0 at the earliest. I would imagine all attempts at documentation will wildy fluctuate.

Overview

Notion + Next.js + swr

The concept is kind of mapping databases from Notion to routeTypes in Next being kept in-sync post build via swr.

You will need a few values set up in Notion and identified in a configuration file within your repo provided to this package. (And by few, this is an understatement. [Good news! You can create all the values dynamically, howver, that is outside of this package currently.])

Quick

This API extends @notionhq/client so you will extend this one instead.

import { Client } from '@jeromefitz/notion'

import { notionConfig as config } from '~config/websites'

const notion = new Client({ auth: process.env.NOTION_API_KEY, config })

You need to pass config which informs the package of all the wonderful Notion stuff you have. Will fill this out as I go (I hope haha).

(alias) const config: {
    DATABASES: Databases;
    NOTION: DatabaseInfo;
    PAGES__HOMEPAGE: string;
    PAGES: string[];
    ROUTE_TYPES: any[];
}

Why

Next and Notion are awesome.

Before @notionhq/client this was really hacky (cough actually more than this, haha). And now that the API is public, figured I would move this out to keep myself honest and find ways to continually improve it since I had this as a private repo with no documentation (hence a lot of any types and a lack of a formal or even informal README).