UNPKG

@ordojs/core

Version:

Core compiler and runtime for OrdoJS framework

80 lines (66 loc) 2.67 kB
/** * @fileoverview Core OrdoJS Framework - Main entry point (Refactored) * @author OrdoJS Framework Team */ import type { ComponentDefinition } from './runtime/component-system.js'; import { ComponentFactory } from './runtime/component-system.js'; // Core compiler exports (refactored modular versions) export { OrdoJSCodeGenerator, type CodeGeneratorOptions, type CodeTransformer } from './compiler/code-generator-refactored.js'; export { OrdoJSLexer, type LexerOptions, type TokenProcessor } from './compiler/lexer-refactored.js'; export { OrdoJSParser, type ASTNodeProcessor, type ParserOptions } from './compiler/parser-refactored.js'; // Runtime exports (new signal-based reactivity) export { batch, combineSignals, computed, debouncedSignal, derived, effect, fromEvent, fromPromise, persistentSignal, reactivity, signal, throttledSignal, writableDerived, type ComputedSignal, type EffectCleanup, type Signal } from './runtime/reactivity.js'; // Component system exports export { ComponentFactory, ComponentLifecycle, Fragment, componentFactory, createComponent, createComponentByName, defineComponent, h, registerComponent, type ComponentContext, type ComponentDefinition, type ComponentInstance, type LifecycleHooks, type PropSchema, type SetupContext, type VNode } from './runtime/component-system.js'; // Legacy exports (for backward compatibility) export * from './compiler/index.js'; export * from './runtime/index.js'; export * from './types/index.js'; /** * Version information for the OrdoJS core package */ export const VERSION = '0.5.0-beta.5'; /** * Framework metadata */ export const FRAMEWORK_INFO = { name: 'OrdoJS', version: VERSION, description: 'A revolutionary web framework with compile-time optimizations and signal-based reactivity', architecture: 'modular', features: [ 'Signal-based reactivity', 'Modular compiler architecture', 'Plugin-based transformations', 'Component composition', 'TypeScript-first' ] } as const; /** * Create a new OrdoJS application */ export function createApp(rootComponent: ComponentDefinition, props: any = {}) { const factory = new ComponentFactory({ devMode: process.env.NODE_ENV !== 'production' }); const instance = factory.create(rootComponent, props); return { mount: (selector: string | Element) => { const target = typeof selector === 'string' ? document.querySelector(selector) : selector; if (!target) { throw new Error(`Mount target not found: ${selector}`); } return instance.mount(target as Element); }, unmount: () => instance.unmount(), instance }; }