Recipes
Hooks
Use lifecycle hooks to stay synced with NuxtHub.
onHubReady()
Use onHubReady() to ensure the execution of some code once NuxtHub environment bindings are set up.
onHubReady() is a shortcut using the hubHooks object under the hood to listen to the bindings:ready event.This is useful to run database migrations inside your server/plugins/.
server/plugins/migrations.ts
export default defineNitroPlugin(() => {
  // Only run migrations in development
  if (import.meta.dev) {
    onHubReady(async () => {
      await hubDatabase().exec(`
        CREATE TABLE IF NOT EXISTS todos (
          id INTEGER PRIMARY KEY,
          title TEXT NOT NULL,
          completed INTEGER NOT NULL DEFAULT 0
        )
      `.replace(/\n/g, ''))
    })
  }
})
hubHooks
The hubHooks object is a collection of hooks that can be used to stay synced with NuxtHub.
Signature
Signature
export interface HubHooks {
  'bindings:ready': () => any | void
}
Usage
You can use the hubHooks object to listen to the bindings:ready event in your server plugins:
server/plugins/hub.ts
export default defineNitroPlugin(() => {
  hubHooks.hook('bindings:ready', () => {
    console.log('NuxtHub bindings are ready!')
    const db = hubDatabase()
  })
})
Note that 
hubHooks is a hookable instance.