Commons recipes
Getting all the posts (including Authors) with pagination
Here we will use the paginate
function of the fetcher to get the next page fetcher directly if it is defined.
import { TSGhostContentAPI, type Post } from "@ts-ghost/content-api";
let url = "https://demo.ghost.io";
let key = "22444f78447824223cefc48062"; // Content API KEY
const api = new TSGhostContentAPI(url, key, "v5.0");
const posts: Post[] = [];
let cursor = await api.posts
.browse()
.include({ authors: true, tags: true })
.paginate();
if (cursor.current.success) posts.push(...cursor.current.data);
while (cursor.next) {
cursor = await cursor.next.paginate();
if (cursor.current.success) posts.push(...cursor.current.data);
}
return posts;
Fetching the Settings of your Ghost instance
Settings is a specific resource, you cannot build query against it like the other resources. You can only fetch the settings, so calling api.settings
will directly give you a fetcher.
import { TSGhostContentAPI, type Post } from "@ts-ghost/content-api";
let url = "https://demo.ghost.io";
let key = "22444f78447824223cefc48062"; // Content API KEY
const api = new TSGhostContentAPI(url, key, "v5.0");
let result = await api.settings.fetch();
if (result.success) {
const settings = result.data;
// ^? type Settings {title: string; description: string; ...
}