Skip to content

Built for people who want to own their automations. Join the waitlist for an invite.

Package listing

@kody/bluesky

src/migrate-from-values.ts

30 lines · 1.1 KB · TypeScript
import { kody, packageStorage } from 'kody:runtime'
import { getDefaultHandle } from './client.ts'

/**
 * Copy a leftover user value into package storage, or report the stored handle.
 * Authenticated exports no longer read `value_get('blueskyHandle')`.
 */
export default async function migrateBlueskyFromValues() {
  try {
    const handle = await getDefaultHandle()
    return { copied: [], handleLength: handle.length, alreadyPresent: true }
  } catch {
    // Package storage may be empty while a leftover value still exists.
  }

  let value = ''
  try {
    const result = await kody.value_get({ name: 'blueskyHandle', scope: 'user' })
    value = typeof result?.value === 'string' ? result.value.trim() : ''
  } catch {
    // Values retirement: leftover rows may already be gone.
  }
  if (!value) {
    throw new Error(
      'Missing packageStorage blueskyHandle and leftover user value blueskyHandle is gone.',
    )
  }
  await packageStorage().set('blueskyHandle', value)
  return { copied: ['blueskyHandle'], handleLength: value.length, alreadyPresent: false }
}