/** * Mark a build done (or failed) so the build feed shows it finished. * * @param input - `{ buildId, status?: 'done' | 'failed' }` * @returns `{ buildId, status }` * @example * import finishBuild from 'kody:@kentcdodds/world-builder/finish-build' * await finishBuild({ buildId }) */ import { getCaller } from './lib/identity.ts' import { WorldError, finishBuild as finish, ownedBuild, requireUuid } from './lib/world-ops.ts' export default async function finishBuild(input: { buildId: string; status?: 'done' | 'failed' }) { const caller = await getCaller() if (!caller) throw new WorldError('Sign in to Kody to build.', 401) const buildId = requireUuid(input?.buildId, 'buildId') await ownedBuild(buildId, caller.username) const status = input?.status === 'failed' ? 'failed' : 'done' await finish(buildId, status) return { buildId, status } }