notion-astro-loader
Version:
Notion loader for the Astro Content Layer API. It allows you to load pages from a Notion database then render them as pages in a collection.
32 lines • 1.23 kB
TypeScript
import type { Client, isFullPage, isFullDatabase } from "@notionhq/client";
/**
* @module
* Types from the internal Notion JS API, exposed for use in this project.
*/
type Asserts<Function> = Function extends (input: any) => input is infer Type ? Type : never;
export type ClientOptions = NonNullable<ConstructorParameters<typeof Client>[0]>;
export interface QueryDatabaseParameters extends NonNullable<Parameters<Client["databases"]["query"]>[0]> {
}
export type DatabasePropertyConfigResponse = Asserts<typeof isFullDatabase>["properties"][string];
export type PageObjectResponse = Asserts<typeof isFullPage>;
export type PageProperty = PageObjectResponse["properties"][string];
export type EmojiRequest = Extract<PageObjectResponse["icon"], {
type: "emoji";
}>["emoji"];
export type RichTextItemResponse = Extract<PageProperty, {
type: "rich_text";
}>["rich_text"][number];
export type NotionPageData = Pick<PageObjectResponse, "icon" | "cover" | "archived" | "in_trash" | "url" | "public_url" | "properties">;
export type FileObject = {
type: "external";
external: {
url: string;
};
} | {
type: "file";
file: {
url: string;
};
};
export {};
//# sourceMappingURL=types.d.ts.map