@ordojs/core
Version:
Core compiler and runtime for OrdoJS framework
80 lines (66 loc) • 2.67 kB
text/typescript
/**
* @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
};
}