设计原则
ts-graphviz 围绕几个关键概念构建,使其模块化、可扩展且易于使用:
-
TypeScript 优先设计与类型定义
ts-graphviz 主要以 TypeScript 为中心设计,提供强类型和与 TypeScript 项目的无缝集成。对 DOT 语言元素的全面类型定义使交互具有类型安全性,提高了开发效率并减少了错误。
-
面向对象的 API
该库提供了面向对象的 API,用于创建和操作图形元素,如图、节点和边。这种方法使处理复杂的图结构变得直观且高效,利用了熟悉的编程范式。
-
模块化设计
ts-graphviz 采用模块化架构,分为多个包,每个包服务于特定的目的。这种模块化允许用户仅包含所需的功能 ,提高了可维护性、灵活性,并减少了不必要的依赖。
-
AST 支持
该库包含对抽象语法树(AST)的支持,用于处理 DOT 语言。这使得在保留结构的同时解析和生成 DOT 语言,便于对图进行编程式操作和转换。
-
运行时适配器
为确保在不同运行时环境中的兼容性,ts-graphviz 提供了适用于 Node.js 和 Deno 等环境的适配器函数。这些适配器作为包装器,无论底层平台如何,都能无缝执行 Graphviz 命令。
-
可扩展性
设计时考虑到可扩展性,ts-graphviz 允许用户通过自定义实现来扩展其功能,以满足特定用例的需求。这种灵活性支持了广泛的应用和集成场景。
-
多范式支持
该库适应多种编程范式,包括面向对象编程和声明式编程。用户可以选择最适合其需求的风格,使该库具有多功能性和适应性。