UNPKG

mini-framework-z01

Version:

Mini Framework is designed to provide a simple yet powerful approach to building web applications with minimal overhead.

64 lines (57 loc) 2.06 kB
import VirtualDOM from './core/dom.js'; import Router from './core/router.js'; import stateSingleton, { StateManager } from './core/state.js'; import EventManager from './core/events.js'; import Signal from './core/signal.js'; class MiniFramework { constructor(root = document) { this.DOM = new VirtualDOM(); this.Router = new Router(); this.State = stateSingleton; this.Events = new EventManager(root); this.root = root; } createStore(initialState) { return new StateManager(initialState); } createRouter() { return new Router(); } createEventManager() { return new EventManager(this.root); } createVirtualDOM() { return new VirtualDOM(); } createSignal(initialValue) { return new Signal(initialValue); } } const miniFramework = new MiniFramework(); // === Public API Exports === // Virtual DOM API export const createElement = (...args) => miniFramework.DOM.createElement(...args); export const render = (...args) => miniFramework.DOM.render(...args); // State Management export const createStore = (...args) => miniFramework.createStore(...args); export const setRef = miniFramework.State.setRef.bind(miniFramework.State); export const getRef = miniFramework.State.getRef.bind(miniFramework.State); export const removeRef = miniFramework.State.removeRef.bind(miniFramework.State); export const createRef = miniFramework.State.createRef.bind(miniFramework.State); // Routing export const createRouter = (...args) => miniFramework.createRouter(...args); // Event Handling export const createEventManager = () => miniFramework.createEventManager(); // Signals & Effects export const createSignal = (...args) => miniFramework.createSignal(...args); export const effect = fn => { Signal.currentEffect = fn; fn(); Signal.currentEffect = null; }; // Direct access to core singletons if needed export const dom = miniFramework.DOM; export const router = miniFramework.Router; export const state = miniFramework.State; export const events = miniFramework.Events; export default miniFramework;