sveltekit-notion-blog
Version:
A plug and play library for setting up blogs in subdirectory or main directory in Sveltekit projects using Notion as CMS.
85 lines (84 loc) • 2.13 kB
TypeScript
import type { ServerLoadEvent } from "@sveltejs/kit";
import BlogPost from "./components/BlogPost.svelte";
import PostsList from "./components/PostsList.svelte";
type Tokens = {
notionToken: string;
databaseId: string;
vercelByPassToken?: string;
};
type BlogSettings = {
blogTitle?: string;
blogDescription?: string;
};
type BlogSEO = {
siteUrl: string;
siteName: string;
siteSlogan?: string;
twitterHandle?: string;
logo: string;
ogImage: string;
};
type InitConfig = {
tokens: Tokens;
settings: BlogSettings;
seo: BlogSEO;
};
export type BlogClient = {
config: Tokens;
settings: BlogSettings;
seo: BlogSEO;
};
export declare const initNotionBlog: (config: InitConfig) => BlogClient | null;
export declare const getAllPosts: () => Promise<{
error: {
code: number;
message: string;
};
pages?: undefined;
settings?: undefined;
seo?: undefined;
} | {
pages: import("./types").PageObjectResponse[];
settings: BlogSettings;
seo: BlogSEO;
error?: undefined;
} | undefined>;
export declare const getBlogPageBySlug: (event: ServerLoadEvent) => Promise<{
error: {
code: number;
message: string;
};
blocks?: undefined;
title?: undefined;
description?: undefined;
cover?: undefined;
slug?: undefined;
published?: undefined;
author?: undefined;
faqs?: undefined;
settings?: undefined;
seo?: undefined;
} | {
blocks: import("./notion/api").CustomBlockObjectResponse[];
title: string | undefined;
description: string | undefined;
cover: string | undefined;
slug: string;
published: string | undefined;
author: import("./types").PersonUserObjectResponse | undefined;
faqs: import("./types").FAQ[] | null;
settings: BlogSettings;
seo: BlogSEO;
error?: undefined;
} | undefined>;
export declare const getAllBlogSlugs: () => Promise<{
error: {
code: number;
message: string;
};
slugs?: undefined;
} | {
slugs: string[];
error?: undefined;
} | undefined>;
export { BlogPost, PostsList };