astronotion
Version:
Library to make Astro sites with content from Notion
33 lines (32 loc) • 1.1 kB
TypeScript
import type { Decoration, ExtendedRecordMap } from "notion-types";
import type { AnContentBlock } from "./filter-blocks";
import { getCover } from "./get-cover";
declare type AnPageBase = {
title: string;
icon?: string;
cover?: ReturnType<typeof getCover>;
description?: Decoration[];
};
export declare type AnExcerpt = AnPageBase & {
id: string;
taxonomies: string[];
created: number;
updated: number;
};
export declare type AnParentPage = {
pageType: "NOTION_PARENT";
pageData: AnPageBase & {
childPages: AnExcerpt[];
};
};
export declare type AnEntryPage = {
pageType: "NOTION_ENTRY";
pageData: AnExcerpt & {
contents: AnContentBlock[];
};
};
export declare type AnTopLevelPage = AnParentPage | AnEntryPage;
export declare const transformParentPage: (data: ExtendedRecordMap) => AnParentPage | undefined;
export declare const transformEntryPage: (data: ExtendedRecordMap) => AnEntryPage | undefined;
export declare const transformTopLevelPage: (data: ExtendedRecordMap) => AnParentPage | AnEntryPage | undefined;
export {};