| 12345678910111213141516171819 |
- import { Schema } from "effect"
- import { ascending } from "./identifier"
- import { statics } from "./schema"
- export const WorkspaceID = Schema.String.check(Schema.isStartsWith("wrk")).pipe(
- Schema.brand("WorkspaceV2.ID"),
- statics((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 WorkspaceID = typeof WorkspaceID.Type
|