@coherent.js/core 1.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +130 -0
- package/dist/coherent.d.ts +472 -0
- package/dist/coherent.d.ts.map +1 -0
- package/dist/coherent.js +590 -0
- package/dist/coherent.js.map +1 -0
- package/dist/components/component-system.d.ts +1138 -0
- package/dist/components/component-system.d.ts.map +1 -0
- package/dist/components/component-system.js +2220 -0
- package/dist/components/component-system.js.map +1 -0
- package/dist/components/lifecycle.d.ts +212 -0
- package/dist/components/lifecycle.d.ts.map +1 -0
- package/dist/components/lifecycle.js +525 -0
- package/dist/components/lifecycle.js.map +1 -0
- package/dist/core/html-utils.d.ts +14 -0
- package/dist/core/html-utils.d.ts.map +1 -0
- package/dist/core/html-utils.js +166 -0
- package/dist/core/html-utils.js.map +1 -0
- package/dist/core/object-factory.d.ts +38 -0
- package/dist/core/object-factory.d.ts.map +1 -0
- package/dist/core/object-factory.js +63 -0
- package/dist/core/object-factory.js.map +1 -0
- package/dist/core/object-utils.d.ts +77 -0
- package/dist/core/object-utils.d.ts.map +1 -0
- package/dist/core/object-utils.js +502 -0
- package/dist/core/object-utils.js.map +1 -0
- package/dist/dev/dev-tools.d.ts +194 -0
- package/dist/dev/dev-tools.d.ts.map +1 -0
- package/dist/dev/dev-tools.js +846 -0
- package/dist/dev/dev-tools.js.map +1 -0
- package/dist/forms/validation.d.ts +271 -0
- package/dist/forms/validation.d.ts.map +1 -0
- package/dist/forms/validation.js +573 -0
- package/dist/forms/validation.js.map +1 -0
- package/dist/index.cjs +5281 -0
- package/dist/index.cjs.map +7 -0
- package/dist/index.js +5204 -0
- package/dist/index.js.map +7 -0
- package/dist/performance/bundle-optimizer.d.ts +95 -0
- package/dist/performance/bundle-optimizer.d.ts.map +1 -0
- package/dist/performance/bundle-optimizer.js +192 -0
- package/dist/performance/bundle-optimizer.js.map +1 -0
- package/dist/performance/cache-manager.d.ts +107 -0
- package/dist/performance/cache-manager.d.ts.map +1 -0
- package/dist/performance/cache-manager.js +314 -0
- package/dist/performance/cache-manager.js.map +1 -0
- package/dist/performance/component-cache.d.ts +120 -0
- package/dist/performance/component-cache.d.ts.map +1 -0
- package/dist/performance/component-cache.js +364 -0
- package/dist/performance/component-cache.js.map +1 -0
- package/dist/performance/monitor.d.ts +189 -0
- package/dist/performance/monitor.d.ts.map +1 -0
- package/dist/performance/monitor.js +347 -0
- package/dist/performance/monitor.js.map +1 -0
- package/dist/rendering/base-renderer.d.ts +140 -0
- package/dist/rendering/base-renderer.d.ts.map +1 -0
- package/dist/rendering/base-renderer.js +409 -0
- package/dist/rendering/base-renderer.js.map +1 -0
- package/dist/rendering/css-manager.d.ts +73 -0
- package/dist/rendering/css-manager.d.ts.map +1 -0
- package/dist/rendering/css-manager.js +176 -0
- package/dist/rendering/css-manager.js.map +1 -0
- package/dist/rendering/dom-renderer.d.ts +62 -0
- package/dist/rendering/dom-renderer.d.ts.map +1 -0
- package/dist/rendering/dom-renderer.js +252 -0
- package/dist/rendering/dom-renderer.js.map +1 -0
- package/dist/rendering/html-renderer.d.ts +67 -0
- package/dist/rendering/html-renderer.d.ts.map +1 -0
- package/dist/rendering/html-renderer.js +444 -0
- package/dist/rendering/html-renderer.js.map +1 -0
- package/dist/rendering/renderer-config.d.ts +282 -0
- package/dist/rendering/renderer-config.d.ts.map +1 -0
- package/dist/rendering/renderer-config.js +144 -0
- package/dist/rendering/renderer-config.js.map +1 -0
- package/dist/rendering/streaming-renderer.d.ts +117 -0
- package/dist/rendering/streaming-renderer.d.ts.map +1 -0
- package/dist/rendering/streaming-renderer.js +326 -0
- package/dist/rendering/streaming-renderer.js.map +1 -0
- package/dist/rendering/vdom-diff.d.ts +47 -0
- package/dist/rendering/vdom-diff.d.ts.map +1 -0
- package/dist/rendering/vdom-diff.js +416 -0
- package/dist/rendering/vdom-diff.js.map +1 -0
- package/dist/routing/router.d.ts +241 -0
- package/dist/routing/router.d.ts.map +1 -0
- package/dist/routing/router.js +648 -0
- package/dist/routing/router.js.map +1 -0
- package/dist/state/reactive-state.d.ts +166 -0
- package/dist/state/reactive-state.d.ts.map +1 -0
- package/dist/state/reactive-state.js +546 -0
- package/dist/state/reactive-state.js.map +1 -0
- package/dist/state/state-manager.d.ts +45 -0
- package/dist/state/state-manager.d.ts.map +1 -0
- package/dist/state/state-manager.js +151 -0
- package/dist/state/state-manager.js.map +1 -0
- package/dist/types/constants.d.ts +8 -0
- package/dist/types/constants.d.ts.map +1 -0
- package/dist/types/constants.js +36 -0
- package/dist/types/constants.js.map +1 -0
- package/dist/utils/dependency-utils.d.ts +43 -0
- package/dist/utils/dependency-utils.d.ts.map +1 -0
- package/dist/utils/dependency-utils.js +105 -0
- package/dist/utils/dependency-utils.js.map +1 -0
- package/dist/utils/error-handler.d.ts +148 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +468 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/normalization.d.ts +3 -0
- package/dist/utils/normalization.d.ts.map +1 -0
- package/dist/utils/normalization.js +24 -0
- package/dist/utils/normalization.js.map +1 -0
- package/dist/utils/validation.d.ts +10 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +32 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +44 -0
- package/types/index.d.ts +734 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"css-manager.js","sourceRoot":"","sources":["../../../../src/rendering/css-manager.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Main DOM render function - converts object components to DOM elements
|
|
3
|
+
*/
|
|
4
|
+
export function renderToDOM(component: any, container?: null, options?: {}): any;
|
|
5
|
+
/**
|
|
6
|
+
* Update DOM element with new component using virtual DOM diffing
|
|
7
|
+
*/
|
|
8
|
+
export function updateDOM(element: any, newComponent: any, componentId: any, options?: {}): any;
|
|
9
|
+
/**
|
|
10
|
+
* DOM Renderer class - extends BaseRenderer for shared functionality
|
|
11
|
+
*/
|
|
12
|
+
export class DOMRenderer extends BaseRenderer {
|
|
13
|
+
utils: {
|
|
14
|
+
isCoherentObject: typeof isCoherentObject;
|
|
15
|
+
hasChildren: typeof hasChildren;
|
|
16
|
+
getChildren: typeof getChildren;
|
|
17
|
+
};
|
|
18
|
+
vdomDiffer: VDOMDiffer | undefined;
|
|
19
|
+
componentCache: Map<any, any> | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Render component to DOM element
|
|
22
|
+
*/
|
|
23
|
+
render(component: any, container?: null): any;
|
|
24
|
+
/**
|
|
25
|
+
* Render component to DOM element (overrides BaseRenderer method)
|
|
26
|
+
*/
|
|
27
|
+
renderComponent(component: any, options?: {}, depth?: number): any;
|
|
28
|
+
/**
|
|
29
|
+
* Render object-based element to DOM
|
|
30
|
+
*/
|
|
31
|
+
renderObjectElement(component: any, depth: any): any;
|
|
32
|
+
/**
|
|
33
|
+
* Render a single DOM element
|
|
34
|
+
*/
|
|
35
|
+
renderDOMElement(tagName: any, props: any, depth: any): any;
|
|
36
|
+
/**
|
|
37
|
+
* Set DOM attributes from props
|
|
38
|
+
*/
|
|
39
|
+
setDOMAttributes(element: any, props: any): void;
|
|
40
|
+
/**
|
|
41
|
+
* Update existing DOM element with new component using virtual DOM diffing
|
|
42
|
+
*/
|
|
43
|
+
update(element: any, newComponent: any, componentId?: string): any;
|
|
44
|
+
/**
|
|
45
|
+
* Clear component cache (useful for development or memory management)
|
|
46
|
+
*/
|
|
47
|
+
clearCache(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Get cache statistics
|
|
50
|
+
*/
|
|
51
|
+
getCacheStats(): {
|
|
52
|
+
componentsCached: number;
|
|
53
|
+
vdomCached: number;
|
|
54
|
+
patchesApplied: any;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
import { BaseRenderer } from './base-renderer.js';
|
|
58
|
+
import { isCoherentObject } from '../core/object-utils.js';
|
|
59
|
+
import { hasChildren } from '../core/object-utils.js';
|
|
60
|
+
import { getChildren } from '../core/object-utils.js';
|
|
61
|
+
import { VDOMDiffer } from './vdom-diff.js';
|
|
62
|
+
//# sourceMappingURL=dom-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom-renderer.d.ts","sourceRoot":"","sources":["../../../../src/rendering/dom-renderer.js"],"names":[],"mappings":"AAgRA;;GAEG;AACH,iFAGC;AAED;;GAEG;AACH,gGAGC;AA7QD;;GAEG;AACH;IAWQ;;;;MAIC;IAIG,mCAAkC;IAClC,0CAA+B;IAIvC;;OAEG;IACH,8CAsBC;IAED;;OAEG;IACH,mEAsCC;IAED;;OAEG;IACH,qDAYC;IAED;;OAEG;IACH,4DAkCC;IAED;;OAEG;IACH,iDAkCC;IAED;;OAEG;IACH,mEAkCC;IAED;;OAEG;IACH,mBAOC;IAED;;OAEG;IACH;;;;MAMC;CACJ;6BAvQ4B,oBAAoB;iCAK1C,yBAAyB;4BAAzB,yBAAyB;4BAAzB,yBAAyB;2BACL,gBAAgB"}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOM Renderer for Coherent.js
|
|
3
|
+
*
|
|
4
|
+
* Provides client-side DOM rendering with hydration support.
|
|
5
|
+
* Extends BaseRenderer for shared functionality.
|
|
6
|
+
*/
|
|
7
|
+
import { BaseRenderer } from './base-renderer.js';
|
|
8
|
+
import { isCoherentObject, hasChildren, getChildren } from '../core/object-utils.js';
|
|
9
|
+
import { VDOMDiffer } from './vdom-diff.js';
|
|
10
|
+
/**
|
|
11
|
+
* DOM Renderer class - extends BaseRenderer for shared functionality
|
|
12
|
+
*/
|
|
13
|
+
export class DOMRenderer extends BaseRenderer {
|
|
14
|
+
constructor(options = {}) {
|
|
15
|
+
// Call parent constructor with DOM-specific defaults
|
|
16
|
+
super({
|
|
17
|
+
enableHydration: true,
|
|
18
|
+
maxDepth: 100, // Lower depth for DOM rendering
|
|
19
|
+
enableVDOMDiff: options.enableVDOMDiff !== false, // Enable VDOM diffing by default
|
|
20
|
+
...options
|
|
21
|
+
});
|
|
22
|
+
// Set up utilities for easy access
|
|
23
|
+
this.utils = {
|
|
24
|
+
isCoherentObject,
|
|
25
|
+
hasChildren,
|
|
26
|
+
getChildren
|
|
27
|
+
};
|
|
28
|
+
// Initialize virtual DOM differ for efficient updates
|
|
29
|
+
if (this.config.enableVDOMDiff) {
|
|
30
|
+
this.vdomDiffer = new VDOMDiffer();
|
|
31
|
+
this.componentCache = new Map(); // Cache previous component states
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Render component to DOM element
|
|
36
|
+
*/
|
|
37
|
+
render(component, container = null) {
|
|
38
|
+
this.resetMetrics();
|
|
39
|
+
this.metrics.startTime = performance.now();
|
|
40
|
+
try {
|
|
41
|
+
const element = this.renderComponent(component, {}, 0);
|
|
42
|
+
if (container && element) {
|
|
43
|
+
// Clear container first if hydration is disabled
|
|
44
|
+
if (!this.config.enableHydration) {
|
|
45
|
+
container.replaceChildren();
|
|
46
|
+
}
|
|
47
|
+
container.appendChild(element);
|
|
48
|
+
}
|
|
49
|
+
this.metrics.endTime = performance.now();
|
|
50
|
+
return element;
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
this.recordError('render', error);
|
|
54
|
+
console.error('Error rendering to DOM:', error);
|
|
55
|
+
throw error;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Render component to DOM element (overrides BaseRenderer method)
|
|
60
|
+
*/
|
|
61
|
+
renderComponent(component, options = {}, depth = 0) {
|
|
62
|
+
// Use parent validation
|
|
63
|
+
this.validateDepth(depth);
|
|
64
|
+
this.metrics.elementsProcessed++;
|
|
65
|
+
// Handle different component types
|
|
66
|
+
if (component === null || component === undefined) {
|
|
67
|
+
return document.createTextNode('');
|
|
68
|
+
}
|
|
69
|
+
if (typeof component === 'string') {
|
|
70
|
+
return document.createTextNode(component);
|
|
71
|
+
}
|
|
72
|
+
if (typeof component === 'number' || typeof component === 'boolean') {
|
|
73
|
+
return document.createTextNode(String(component));
|
|
74
|
+
}
|
|
75
|
+
if (typeof component === 'function') {
|
|
76
|
+
// Execute function components using parent method
|
|
77
|
+
const result = this.executeFunctionComponent(component, depth);
|
|
78
|
+
return this.renderComponent(result, options, depth + 1);
|
|
79
|
+
}
|
|
80
|
+
if (Array.isArray(component)) {
|
|
81
|
+
// Create a fragment for multiple elements
|
|
82
|
+
const fragment = document.createDocumentFragment();
|
|
83
|
+
component.forEach(child => {
|
|
84
|
+
const childElement = this.renderComponent(child, options, depth + 1);
|
|
85
|
+
if (childElement) {
|
|
86
|
+
fragment.appendChild(childElement);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
return fragment;
|
|
90
|
+
}
|
|
91
|
+
// Handle object-based components
|
|
92
|
+
return this.renderObjectElement(component, depth);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Render object-based element to DOM
|
|
96
|
+
*/
|
|
97
|
+
renderObjectElement(component, depth) {
|
|
98
|
+
if (!this.utils.isCoherentObject(component)) {
|
|
99
|
+
return document.createTextNode(''); // Skip invalid objects
|
|
100
|
+
}
|
|
101
|
+
// Process object-based component (expects single element)
|
|
102
|
+
const entries = Object.entries(component);
|
|
103
|
+
if (entries.length > 0) {
|
|
104
|
+
const [tagName, props] = entries[0];
|
|
105
|
+
return this.renderDOMElement(tagName, props, depth + 1);
|
|
106
|
+
}
|
|
107
|
+
return document.createTextNode('');
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Render a single DOM element
|
|
111
|
+
*/
|
|
112
|
+
renderDOMElement(tagName, props, depth) {
|
|
113
|
+
// Create element with namespace support
|
|
114
|
+
const element = this.config.namespace
|
|
115
|
+
? document.createElementNS(this.config.namespace, tagName)
|
|
116
|
+
: document.createElement(tagName);
|
|
117
|
+
// Set attributes
|
|
118
|
+
this.setDOMAttributes(element, _props);
|
|
119
|
+
// Handle text content
|
|
120
|
+
if (props && props.text !== undefined) {
|
|
121
|
+
const text = typeof props.text === 'function' ? props.text() : props.text;
|
|
122
|
+
element.textContent = String(text);
|
|
123
|
+
}
|
|
124
|
+
// Handle children
|
|
125
|
+
if (props && this.utils.hasChildren(_props)) {
|
|
126
|
+
const children = this.utils.getChildren(_props);
|
|
127
|
+
if (Array.isArray(children)) {
|
|
128
|
+
children.forEach(child => {
|
|
129
|
+
const childElement = this.renderComponent(child, {}, depth + 1);
|
|
130
|
+
if (childElement) {
|
|
131
|
+
element.appendChild(childElement);
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
else if (children) {
|
|
136
|
+
const childElement = this.renderComponent(children, {}, depth + 1);
|
|
137
|
+
if (childElement) {
|
|
138
|
+
element.appendChild(childElement);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return element;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Set DOM attributes from props
|
|
146
|
+
*/
|
|
147
|
+
setDOMAttributes(element, _props) {
|
|
148
|
+
if (!props || typeof props !== 'object')
|
|
149
|
+
return;
|
|
150
|
+
const skipProps = ['text', 'children'];
|
|
151
|
+
for (const [key, value] of Object.entries(_props)) {
|
|
152
|
+
if (skipProps.includes(key) || value === undefined || value === null) {
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
if (typeof value === 'function') {
|
|
156
|
+
// Handle event listeners
|
|
157
|
+
if (key.startsWith('on')) {
|
|
158
|
+
// Normalize DOM event names to lowercase (e.g., onClick -> 'click')
|
|
159
|
+
const eventType = key.slice(2).toLowerCase();
|
|
160
|
+
// Store listener reference for potential cleanup
|
|
161
|
+
element.addEventListener(eventType, value);
|
|
162
|
+
element._listeners = element._listeners || [];
|
|
163
|
+
element._listeners.push({ type: eventType, handler: value });
|
|
164
|
+
}
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
if (key === 'class' || key === 'className') {
|
|
168
|
+
element.className = String(value);
|
|
169
|
+
}
|
|
170
|
+
else if (typeof value === 'boolean') {
|
|
171
|
+
if (value) {
|
|
172
|
+
element.setAttribute(key, '');
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
element.removeAttribute(key);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
element.setAttribute(key, String(value));
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Update existing DOM element with new component using virtual DOM diffing
|
|
185
|
+
*/
|
|
186
|
+
update(element, newComponent, componentId = 'default') {
|
|
187
|
+
if (!this.config.enableVDOMDiff || !this.vdomDiffer) {
|
|
188
|
+
// Fallback to full re-render
|
|
189
|
+
return this.render(newComponent, element.parentNode);
|
|
190
|
+
}
|
|
191
|
+
const oldComponent = this.componentCache.get(componentId);
|
|
192
|
+
if (!oldComponent) {
|
|
193
|
+
// First render, cache the component and render normally
|
|
194
|
+
this.componentCache.set(componentId, newComponent);
|
|
195
|
+
return this.render(newComponent, element.parentNode);
|
|
196
|
+
}
|
|
197
|
+
// Perform virtual DOM diffing
|
|
198
|
+
try {
|
|
199
|
+
const patchCount = this.vdomDiffer.update(element, oldComponent, newComponent);
|
|
200
|
+
// Update cache with new component
|
|
201
|
+
this.componentCache.set(componentId, newComponent);
|
|
202
|
+
// Log performance metrics
|
|
203
|
+
if (this.config.enableMonitoring) {
|
|
204
|
+
this.metrics.patchesApplied = (this.metrics.patchesApplied || 0) + patchCount;
|
|
205
|
+
}
|
|
206
|
+
return element;
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
console.warn('VDOM diffing failed, falling back to full re-render:', error);
|
|
210
|
+
// Clear corrupted cache entry
|
|
211
|
+
this.componentCache.delete(componentId);
|
|
212
|
+
// Fall back to full re-render
|
|
213
|
+
return this.render(newComponent, element.parentNode);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Clear component cache (useful for development or memory management)
|
|
218
|
+
*/
|
|
219
|
+
clearCache() {
|
|
220
|
+
if (this.componentCache) {
|
|
221
|
+
this.componentCache.clear();
|
|
222
|
+
}
|
|
223
|
+
if (this.vdomDiffer) {
|
|
224
|
+
this.vdomDiffer.clearCache();
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Get cache statistics
|
|
229
|
+
*/
|
|
230
|
+
getCacheStats() {
|
|
231
|
+
return {
|
|
232
|
+
componentsCached: this.componentCache ? this.componentCache.size : 0,
|
|
233
|
+
vdomCached: this.vdomDiffer ? this.vdomDiffer.cache.size : 0,
|
|
234
|
+
patchesApplied: this.metrics.patchesApplied || 0
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Main DOM render function - converts object components to DOM elements
|
|
240
|
+
*/
|
|
241
|
+
export function renderToDOM(component, container = null, options = {}) {
|
|
242
|
+
const renderer = new DOMRenderer(options);
|
|
243
|
+
return renderer.render(component, container);
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Update DOM element with new component using virtual DOM diffing
|
|
247
|
+
*/
|
|
248
|
+
export function updateDOM(element, newComponent, componentId, options = {}) {
|
|
249
|
+
const renderer = new DOMRenderer(options);
|
|
250
|
+
return renderer.update(element, newComponent, componentId);
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=dom-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom-renderer.js","sourceRoot":"","sources":["../../../../src/rendering/dom-renderer.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Main render function - converts object components to HTML
|
|
3
|
+
*/
|
|
4
|
+
export function renderToString(component: any, options?: {}): string;
|
|
5
|
+
/**
|
|
6
|
+
* Renders component to complete HTML document with DOCTYPE
|
|
7
|
+
* Better alternative to manual DOCTYPE concatenation
|
|
8
|
+
* Supports CSS file inclusion and inline styles
|
|
9
|
+
*/
|
|
10
|
+
export function renderHTML(component: any, options?: {}): Promise<string>;
|
|
11
|
+
/**
|
|
12
|
+
* Synchronous version of renderHTML for cases without CSS files
|
|
13
|
+
* Falls back to async if CSS files are detected
|
|
14
|
+
*/
|
|
15
|
+
export function renderHTMLSync(component: any, options?: {}): string | Promise<string>;
|
|
16
|
+
/**
|
|
17
|
+
* Alias for renderHTML - more semantic name for HTML rendering
|
|
18
|
+
*/
|
|
19
|
+
export function render(component: any, options?: {}): Promise<string>;
|
|
20
|
+
/**
|
|
21
|
+
* Batch rendering for multiple components
|
|
22
|
+
*/
|
|
23
|
+
export function renderBatch(components: any, options?: {}): string[];
|
|
24
|
+
/**
|
|
25
|
+
* Render to chunks for large output (fake streaming - renders full HTML then chunks it)
|
|
26
|
+
* For true progressive streaming, use the streaming-renderer.js renderToStream function
|
|
27
|
+
*/
|
|
28
|
+
export function renderToChunks(component: any, options?: {}): Generator<string, void, unknown>;
|
|
29
|
+
/**
|
|
30
|
+
* @deprecated Use renderToChunks instead. This function will be removed in a future version.
|
|
31
|
+
* For true progressive streaming, use the streaming-renderer.js renderToStream function.
|
|
32
|
+
*/
|
|
33
|
+
export function renderToStream(component: any, options?: {}): AsyncGenerator<string, void, unknown>;
|
|
34
|
+
/**
|
|
35
|
+
* Get global cache instance for external access
|
|
36
|
+
*/
|
|
37
|
+
export function getCache(): Object;
|
|
38
|
+
/**
|
|
39
|
+
* Reset cache (useful for testing)
|
|
40
|
+
*/
|
|
41
|
+
export function resetCache(): void;
|
|
42
|
+
/**
|
|
43
|
+
* Get rendering statistics
|
|
44
|
+
*/
|
|
45
|
+
export function getRenderingStats(): {
|
|
46
|
+
cache: any;
|
|
47
|
+
performance: any;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Precompile static components for maximum performance
|
|
51
|
+
*/
|
|
52
|
+
export function precompileComponent(component: any, options?: {}): {
|
|
53
|
+
html: string;
|
|
54
|
+
isPrecompiled: boolean;
|
|
55
|
+
render: () => string;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Development helper - render with detailed timing
|
|
59
|
+
*/
|
|
60
|
+
export function renderWithTiming(component: any, options?: {}): {
|
|
61
|
+
html: string;
|
|
62
|
+
timing: {
|
|
63
|
+
total: number;
|
|
64
|
+
breakdown: any;
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=html-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html-renderer.d.ts","sourceRoot":"","sources":["../../../../src/rendering/html-renderer.js"],"names":[],"mappings":"AAySA;;GAEG;AACH,qEAUC;AAED;;;;GAIG;AACH,0EAqCC;AAED;;;GAGG;AACH,uFA2CC;AAED;;GAEG;AACH,sEAEC;AAMD;;GAEG;AACH,qEAcC;AAED;;;GAGG;AACH,+FAcC;AAED;;;GAGG;AACH,oGAGC;AAED;;GAEG;AACH,mCAEC;AAED;;GAEG;AACH,mCAIC;AAED;;GAEG;AACH;;;EAKC;AAED;;GAEG;AACH;;;;EAYC;AAED;;GAEG;AACH;;;;;;EAYC"}
|