/
Alex_Ural
/
opencode
Обзор
Документация
Войти
/
Alex_Ural
/
opencode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
packages/schema/src/project.ts
44 строки
2 KB
Kit Langton
refactor(schema): tighten public contracts (#33771)
25 июн 2026, 20:10
Не верифицирован
25 июн 2026, 20:10
9e9d405
Код
Авторство
О чём код?
export * as Project from "./project" import { Schema } from "effect" import { define, inventory } from "./event" import { NonNegativeInt, optional } from "./schema" import { ProjectID } from "./project-id" export const ID = ProjectID export type ID = typeof ID.Type export const Vcs = Schema.Literal("git").annotate({ identifier: "Project.Vcs" }) export const Icon = Schema.Struct({ url: optional(Schema.String), override: optional(Schema.String), color: optional(Schema.String), }).annotate({ identifier: "Project.Icon" }) export interface Icon extends Schema.Schema.Type<typeof Icon> {} export const Commands = Schema.Struct({ start: optional( Schema.String.annotate({ description: "Startup script to run when creating a new workspace (worktree)" }), ), }).annotate({ identifier: "Project.Commands" }) export interface Commands extends Schema.Schema.Type<typeof Commands> {} export const Time = Schema.Struct({ created: NonNegativeInt, updated: NonNegativeInt, initialized: optional(NonNegativeInt), }).annotate({ identifier: "Project.Time" }) export interface Time extends Schema.Schema.Type<typeof Time> {} export const Info = Schema.Struct({ id: ID, worktree: Schema.String, vcs: optional(Vcs), name: optional(Schema.String), icon: optional(Icon), commands: optional(Commands), time: Time, sandboxes: Schema.Array(Schema.String), }).annotate({ identifier: "Project" }) export interface Info extends Schema.Schema.Type<typeof Info> {} const Updated = define({ type: "project.updated", schema: Info.fields }) export const Event = { Updated, Definitions: inventory(Updated) }