@ordojs/dev-tools
Version:
Advanced developer tools for OrdoJS with component inspector, AST explorer, and performance profiling
238 lines (236 loc) • 5.68 kB
TypeScript
/**
* @fileoverview OrdoJS Dev Tools - Shared Types
*
* Common types and interfaces used across all dev tools modules.
*/
/**
* Component information for inspection
*/
interface ComponentInfo {
/** Component name */
name: string;
/** Component file path */
filePath: string;
/** Component props interface */
props: Record<string, any>;
/** Component state */
state: Record<string, any>;
/** Component children */
children: ComponentInfo[];
/** Component render count */
renderCount: number;
/** Component mount time */
mountTime: number;
/** Component last update time */
lastUpdateTime: number;
/** Component performance metrics */
performance: ComponentPerformance;
}
/**
* Component performance metrics
*/
interface ComponentPerformance {
/** Render time in milliseconds */
renderTime: number;
/** Memory usage in bytes */
memoryUsage: number;
/** Number of re-renders */
reRenderCount: number;
/** Average render time */
averageRenderTime: number;
/** Peak memory usage */
peakMemoryUsage: number;
}
/**
* AST node information
*/
interface ASTNode {
/** Node type */
type: string;
/** Node position */
position: {
start: {
line: number;
column: number;
};
end: {
line: number;
column: number;
};
};
/** Node children */
children?: ASTNode[];
/** Node value */
value?: string;
/** Node attributes */
attributes?: Record<string, any>;
}
/**
* Performance profile data
*/
interface PerformanceProfile {
/** Profile name */
name: string;
/** Profile start time */
startTime: number;
/** Profile end time */
endTime: number;
/** Profile duration */
duration: number;
/** Profile measurements */
measurements: PerformanceMeasurement[];
/** Profile metadata */
metadata: Record<string, any>;
}
/**
* Performance measurement
*/
interface PerformanceMeasurement {
/** Measurement name */
name: string;
/** Measurement start time */
startTime: number;
/** Measurement end time */
endTime: number;
/** Measurement duration */
duration: number;
/** Measurement category */
category: string;
/** Measurement metadata */
metadata?: Record<string, any>;
}
/**
* Bundle analysis result
*/
interface BundleAnalysis {
/** Bundle size in bytes */
size: number;
/** Bundle gzipped size */
gzippedSize: number;
/** Bundle modules */
modules: BundleModule[];
/** Bundle chunks */
chunks: BundleChunk[];
/** Bundle dependencies */
dependencies: BundleDependency[];
/** Bundle warnings */
warnings: string[];
/** Bundle errors */
errors: string[];
}
/**
* Bundle module information
*/
interface BundleModule {
/** Module name */
name: string;
/** Module size */
size: number;
/** Module dependencies */
dependencies: string[];
/** Module exports */
exports: string[];
/** Module path */
path: string;
}
/**
* Bundle chunk information
*/
interface BundleChunk {
/** Chunk name */
name: string;
/** Chunk size */
size: number;
/** Chunk modules */
modules: string[];
/** Chunk entry point */
entry: boolean;
}
/**
* Bundle dependency information
*/
interface BundleDependency {
/** Dependency name */
name: string;
/** Dependency version */
version: string;
/** Dependency size */
size: number;
/** Dependency type */
type: 'production' | 'development' | 'peer';
}
/**
* HMR update information
*/
interface HMRUpdate {
/** Update type */
type: 'component' | 'style' | 'asset' | 'full-reload';
/** Updated file path */
filePath: string;
/** Update timestamp */
timestamp: number;
/** Update data */
data?: any;
/** Affected components */
affectedComponents?: string[];
}
/**
* Error overlay information
*/
interface ErrorInfo {
/** Error message */
message: string;
/** Error stack trace */
stack: string;
/** Error file path */
filePath?: string;
/** Error line number */
lineNumber?: number;
/** Error column number */
columnNumber?: number;
/** Error code frame */
codeFrame?: string;
/** Error suggestions */
suggestions?: string[];
}
/**
* Development server configuration
*/
interface DevServerConfig {
/** Server port */
port: number;
/** Server host */
host: string;
/** Enable HMR */
hmr: boolean;
/** Enable HTTPS */
https: boolean;
/** Enable compression */
compression: boolean;
/** Enable CORS */
cors: boolean;
/** Static file directory */
staticDir: string;
/** API proxy configuration */
proxy?: Record<string, string>;
}
/**
* Dev tools configuration
*/
interface DevToolsConfig {
/** Enable component inspector */
inspector: boolean;
/** Enable performance profiler */
profiler: boolean;
/** Enable AST explorer */
astExplorer: boolean;
/** Enable bundle analyzer */
bundleAnalyzer: boolean;
/** Enable error overlay */
errorOverlay: boolean;
/** Enable enhanced HMR */
enhancedHMR: boolean;
/** Development server configuration */
devServer: DevServerConfig;
}
export type { ASTNode as A, BundleAnalysis as B, ComponentInfo as C, DevToolsConfig as D, ErrorInfo as E, HMRUpdate as H, PerformanceProfile as P, ComponentPerformance as a, PerformanceMeasurement as b, BundleModule as c, BundleChunk as d, BundleDependency as e, DevServerConfig as f };