@cfp-studio/analyzer-api
v0.1.12
Published
核心分析 API,用于组件/Story/TS 类型的静态分析、可预览 ID 生成与解析、分析器工厂等。为 CFP Studio 设计器和相关工具提供统一的类型分析与组件元数据抽象。
Readme
@cfp-studio/analyzer-api
核心分析 API,用于组件/Story/TS 类型的静态分析、可预览 ID 生成与解析、分析器工厂等。为 CFP Studio 设计器和相关工具提供统一的类型分析与组件元数据抽象。
特性
- 提供统一的
Analyzer接口,支持 TS 组件/Story 批量分析、属性/类型收集、资源释放 - 支持可预览 ID 的生成与解析,便于组件/Story 的唯一定位
- 支持分析器工厂模式,可自定义 reader/logger
- 类型定义清晰,便于二次开发和类型推断
- 内置 Vitest 测试用例
主要 API/模块
Analyzer/AnalyzerFactory:分析器主接口与工厂Component/Story/BasePreviewable:可预览对象抽象generatePreviewableId/decodePreviewableId:可预览 ID 生成与解析factoryWithDefaultOptions:分析器工厂默认参数包装
用法示例
import { AnalyzerFactory } from '@cfp-studio/analyzer-api';
const factory: AnalyzerFactory = ...;
const analyzer = factory({ rootDir: '/project/root' });
const { components, stories } = await analyzer.crawlFiles(['src/App.tsx']);
await components[0].analyze();
analyzer.dispose();可预览 ID:
import { generatePreviewableId, decodePreviewableId } from '@cfp-studio/analyzer-api';
const id = generatePreviewableId({ filePath: '/src/App.tsx', name: 'App' });
const { filePath, name } = decodePreviewableId(id);依赖
@cfp-studio/jsx-processor:JSX 结构分析@cfp-studio/serializable-values:可序列化值类型@cfp-studio/type-analyzer:TS 类型分析@cfp-studio/vfs:虚拟文件系统pino:日志unbuild:打包vitest:测试
构建
pnpm build许可证
MIT
