@dataset-viewer/sdk
Version:
Dataset Viewer Plugin SDK - Types, utilities, and tools for plugin development
63 lines (62 loc) • 1.89 kB
TypeScript
import { PluginBundle, PluginMetadata, PluginInitializeContext } from '../types';
/**
* 插件构建选项
*/
export interface CreatePluginOptions {
/** 插件元数据 */
metadata: PluginMetadata;
/** 插件组件 */
component: React.ComponentType<any>;
/** 初始化函数 */
initialize?: (context: PluginInitializeContext) => Promise<void>;
/** 清理函数 */
cleanup?: () => Promise<void>;
/** 国际化资源 */
i18nResources?: {
[language: string]: {
translation: Record<string, string>;
};
};
}
/**
* 创建插件包的辅助函数
* @param options 插件配置选项
* @returns 标准的插件包对象
*/
export declare function createPlugin(options: CreatePluginOptions): PluginBundle;
/**
* 验证插件元数据的完整性
* @param metadata 插件元数据
* @returns 验证结果和错误信息
*/
export declare function validatePluginMetadata(metadata: PluginMetadata): {
valid: boolean;
errors: string[];
};
/**
* 从包名推导插件ID
* @param packageName npm包名
* @returns 插件ID
*/
export declare function getPluginIdFromPackageName(packageName: string): string;
/**
* 检查文件是否被插件支持
* @param filename 文件名
* @param supportedExtensions 支持的扩展名列表
* @returns 是否支持
*/
export declare function isFileSupported(filename: string, supportedExtensions: string[]): boolean;
/**
* 格式化文件大小
* @param bytes 字节数
* @returns 格式化的文件大小字符串
*/
export declare function formatFileSize(bytes: number): string;
/**
* 检查是否为大文件
* @param fileSize 文件大小(字节)
* @param threshold 阈值(字节),默认10MB
* @returns 是否为大文件
*/
export declare function isLargeFile(fileSize: number, threshold?: number): boolean;
//# sourceMappingURL=index.d.ts.map