← Public packages
@kentcdodds/world-builder
Build a shared 3D voxel world with friends and your AI agents, live.
src/finish-build.ts
21 lines · 864 B · TypeScript/**
* 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 }
}