UNPKG

@memberjunction/react-runtime

Version:

Platform-agnostic React component runtime for MemberJunction. Provides core compilation, registry, and execution capabilities for React components in any JavaScript environment.

162 lines (140 loc) 3.5 kB
/** * @fileoverview Main entry point for the MemberJunction React Runtime. * Exports all public APIs for platform-agnostic React component compilation and execution. * @module @memberjunction/react-runtime */ // Import necessary classes for createReactRuntime function import { ComponentCompiler } from './compiler'; import { ComponentRegistry } from './registry'; import { ComponentResolver } from './registry'; // Export all types export * from './types'; // Export compiler APIs export { ComponentCompiler } from './compiler'; export { DEFAULT_PRESETS, DEFAULT_PLUGINS, PRODUCTION_CONFIG, DEVELOPMENT_CONFIG, getBabelConfig, validateBabelPresets, getJSXConfig } from './compiler'; // Export registry APIs export { ComponentRegistry } from './registry'; export { ComponentResolver, ComponentSpec, ResolvedComponents } from './registry'; // Export runtime APIs export { createErrorBoundary, withErrorBoundary, formatComponentError, createErrorLogger } from './runtime'; export { buildComponentProps, normalizeCallbacks, normalizeStyles, validateComponentProps, mergeProps, createPropsTransformer, wrapCallbacksWithLogging, extractPropPaths, PropBuilderOptions } from './runtime'; export { ComponentHierarchyRegistrar, registerComponentHierarchy, validateComponentSpec, flattenComponentHierarchy, countComponentsInHierarchy, HierarchyRegistrationResult, ComponentRegistrationError, HierarchyRegistrationOptions } from './runtime'; export { ReactRootManager, reactRootManager, ManagedReactRoot } from './runtime'; // Export utilities export { SetupStyles, createDefaultComponentStyles } from './utilities/component-styles'; export { StandardLibraries, StandardLibraryManager, createStandardLibraries } from './utilities/standard-libraries'; export { LibraryLoader, LibraryLoadOptions, LibraryLoadResult } from './utilities/library-loader'; export { LibraryRegistry, LibraryDefinition } from './utilities/library-registry'; export { ComponentErrorAnalyzer, FailedComponentInfo } from './utilities/component-error-analyzer'; export { ResourceManager, resourceManager, ManagedResource } from './utilities/resource-manager'; export { CacheManager, CacheEntry, CacheOptions } from './utilities/cache-manager'; // Version information export const VERSION = '2.69.1'; // Default configurations export const DEFAULT_CONFIGS = { compiler: { babel: { presets: ['react'], plugins: [] }, minify: false, sourceMaps: false, cache: true, maxCacheSize: 100 }, registry: { maxComponents: 1000, cleanupInterval: 60000, useLRU: true, enableNamespaces: true } }; /** * Creates a complete React runtime instance with all necessary components * @param babelInstance - Babel standalone instance for compilation * @param config - Optional configuration overrides * @returns Object containing compiler, registry, and resolver instances */ export function createReactRuntime( babelInstance: any, config?: { compiler?: Partial<import('./types').CompilerConfig>; registry?: Partial<import('./types').RegistryConfig>; } ) { const compiler = new ComponentCompiler(config?.compiler); compiler.setBabelInstance(babelInstance); const registry = new ComponentRegistry(config?.registry); const resolver = new ComponentResolver(registry); return { compiler, registry, resolver, version: VERSION }; }