UNPKG

alinea

Version:

[![npm](https://img.shields.io/npm/v/alinea.svg)](https://npmjs.org/package/alinea) [![install size](https://packagephobia.com/badge?p=alinea)](https://packagephobia.com/result?p=alinea)

47 lines (45 loc) 1.25 kB
import "../chunks/chunk-U5RRZUYZ.js"; // src/core/Workspace.ts import { Meta } from "./Meta.js"; import { getRandomColor } from "./util/GetRandomColor.js"; var Workspace; ((Workspace2) => { Workspace2.Data = Symbol.for("@alinea/Workspace.Data"); Workspace2.Meta = Symbol.for("@alinea/Workspace.Meta"); function data(workspace2) { return workspace2[Workspace2.Data]; } Workspace2.data = data; function roots(workspace2) { return workspace2[Workspace2.Data].roots; } Workspace2.roots = roots; function label(workspace2) { return workspace2[Workspace2.Data].label; } Workspace2.label = label; function isWorkspace(value) { return Boolean(value && value[Workspace2.Data]); } Workspace2.isWorkspace = isWorkspace; })(Workspace || (Workspace = {})); function workspace(label, definition) { if (!definition[Meta]) throw new Error(`Workspace definition must contain a meta property`); return { ...definition, [Workspace.Data]: { label, roots: definition, ...definition[Meta], color: definition[Meta].color ?? getRandomColor(JSON.stringify(label)) } }; } ((workspace2) => { workspace2.meta = Meta; })(workspace || (workspace = {})); export { Workspace, workspace };