mirror of
https://github.com/anomalyco/opencode.git
synced 2026-07-24 04:01:10 -04:00
22 lines
617 B
TypeScript
22 lines
617 B
TypeScript
export * as Workspace from "./workspace"
|
|
|
|
import { Schema } from "effect"
|
|
import { ascending } from "./identifier"
|
|
import { withStatics } from "./schema"
|
|
|
|
export const ID = Schema.String.check(Schema.isStartsWith("wrk")).pipe(
|
|
Schema.brand("WorkspaceV2.ID"),
|
|
withStatics((schema) => {
|
|
const create = () => schema.make("wrk_" + ascending())
|
|
return {
|
|
ascending: (id?: string) => {
|
|
if (!id) return create()
|
|
if (!id.startsWith("wrk")) throw new Error(`ID ${id} does not start with wrk`)
|
|
return schema.make(id)
|
|
},
|
|
create,
|
|
}
|
|
}),
|
|
)
|
|
export type ID = typeof ID.Type
|