A http-client for your Cockpit CMS content.
yarn add cockpit-http-client
cockpit-http-client
exposes basic get methods for collections
and singletons
including a sync endpoint that syncs all collections
and singletons
data.
initiate client
import { cockpitClient } from 'cockpit-http-client'
const client = cockpitClient({
apiURL: process.env.COCKPIT_API_URL,
apiToken: process.env.COCKPIT_API_TOKEN,
})
list all collections or singletons
// lists collections
const collections = await client.collections.list()
if (collections.success) {
console.log(collections.data)
}
// lists singletons
const singletons = await client.singletons.list()
if (singletons.success) {
console.log(singletons.data)
}
// create collection entry
const create = await client.collections.createEntry('myCollection', {
name: 'Post 1',
url: 'post-1',
})
if (create.success) {
console.log(create.data)
}
// update collection entry
const update = await client.collections.updateEntry('myCollection', 'myEntryID', {
name: 'Post 1',
url: 'post-1',
})
if (update.success) {
console.log(update.data)
}
for collections and singletons methods the API responds in the format:
Succesful response:
{success: true, data: 'your data'}
Error response:
{success: false, message: 'error message'}
sync example
const data = await client.sync.all()
if (data && data.collections) {
console.log(data.collections)
}
entries and sync methods can take optional types for collections and singletons check cockpit-type for types generation.
const syncCollections = await client.sync.collections<MyCollections>()
const singleton = await client.singletons.entry<MySingleton>('mySingleton')
const update = await client.collections.updateEntry<MyCollection>('myCollection', 'myEntryID', {
name: 'Post 1',
url: 'post-1',
})