@coherent.js/core 1.0.0-beta.2 → 1.0.0-beta.3
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/dist/coherent.d.ts +10 -150
- package/dist/coherent.d.ts.map +1 -1
- package/dist/coherent.js +33 -166
- package/dist/coherent.js.map +1 -1
- package/dist/components/component-system.js +109 -109
- package/dist/core/html-utils.js +5 -5
- package/dist/core/object-factory.js +21 -21
- package/dist/core/object-utils.js +2 -2
- package/dist/database/adapters/mongodb.d.ts +15 -0
- package/dist/database/adapters/mongodb.d.ts.map +1 -0
- package/dist/database/adapters/mongodb.js +216 -0
- package/dist/database/adapters/mongodb.js.map +1 -0
- package/dist/database/adapters/mysql.d.ts +12 -0
- package/dist/database/adapters/mysql.d.ts.map +1 -0
- package/dist/database/adapters/mysql.js +171 -0
- package/dist/database/adapters/mysql.js.map +1 -0
- package/dist/database/adapters/postgresql.d.ts +12 -0
- package/dist/database/adapters/postgresql.d.ts.map +1 -0
- package/dist/database/adapters/postgresql.js +177 -0
- package/dist/database/adapters/postgresql.js.map +1 -0
- package/dist/database/adapters/sqlite.d.ts +15 -0
- package/dist/database/adapters/sqlite.d.ts.map +1 -0
- package/dist/database/adapters/sqlite.js +241 -0
- package/dist/database/adapters/sqlite.js.map +1 -0
- package/dist/database/connection-manager.d.ts +135 -0
- package/dist/database/connection-manager.d.ts.map +1 -0
- package/dist/database/connection-manager.js +362 -0
- package/dist/database/connection-manager.js.map +1 -0
- package/dist/database/index.d.ts +38 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +60 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/middleware.d.ts +122 -0
- package/dist/database/middleware.d.ts.map +1 -0
- package/dist/database/middleware.js +390 -0
- package/dist/database/middleware.js.map +1 -0
- package/dist/database/migration.d.ts +62 -0
- package/dist/database/migration.d.ts.map +1 -0
- package/dist/database/migration.js +423 -0
- package/dist/database/migration.js.map +1 -0
- package/dist/database/model.d.ts +8 -0
- package/dist/database/model.d.ts.map +1 -0
- package/dist/database/model.js +167 -0
- package/dist/database/model.js.map +1 -0
- package/dist/database/query-builder.d.ts +111 -0
- package/dist/database/query-builder.d.ts.map +1 -0
- package/dist/database/query-builder.js +187 -0
- package/dist/database/query-builder.js.map +1 -0
- package/dist/database/utils.d.ts +196 -0
- package/dist/database/utils.d.ts.map +1 -0
- package/dist/database/utils.js +372 -0
- package/dist/database/utils.js.map +1 -0
- package/dist/dev/dev-tools.d.ts +1 -1
- package/dist/dev/dev-tools.js +28 -28
- package/dist/performance/bundle-optimizer.js +11 -11
- package/dist/performance/cache-manager.js +6 -6
- package/dist/performance/monitor.js +10 -10
- package/dist/performance/monitor.js.map +1 -1
- package/dist/rendering/base-renderer.js +13 -13
- package/dist/rendering/dom-renderer.d.ts +0 -23
- package/dist/rendering/dom-renderer.d.ts.map +1 -1
- package/dist/rendering/dom-renderer.js +9 -77
- package/dist/rendering/dom-renderer.js.map +1 -1
- package/dist/rendering/html-renderer.d.ts +0 -15
- package/dist/rendering/html-renderer.d.ts.map +1 -1
- package/dist/rendering/html-renderer.js +4 -85
- package/dist/rendering/html-renderer.js.map +1 -1
- package/dist/rendering/streaming-renderer.js +12 -12
- package/dist/utils/dependency-utils.js +2 -2
- package/dist/utils/normalization.js +1 -1
- package/dist/utils/validation.js +1 -1
- package/package.json +1 -1
- package/dist/components/lifecycle.d.ts +0 -212
- package/dist/components/lifecycle.d.ts.map +0 -1
- package/dist/components/lifecycle.js +0 -525
- package/dist/components/lifecycle.js.map +0 -1
- package/dist/forms/validation.d.ts +0 -271
- package/dist/forms/validation.d.ts.map +0 -1
- package/dist/forms/validation.js +0 -573
- package/dist/forms/validation.js.map +0 -1
- package/dist/performance/component-cache.d.ts +0 -120
- package/dist/performance/component-cache.d.ts.map +0 -1
- package/dist/performance/component-cache.js +0 -364
- package/dist/performance/component-cache.js.map +0 -1
- package/dist/rendering/css-manager.d.ts +0 -73
- package/dist/rendering/css-manager.d.ts.map +0 -1
- package/dist/rendering/css-manager.js +0 -176
- package/dist/rendering/css-manager.js.map +0 -1
- package/dist/rendering/vdom-diff.d.ts +0 -47
- package/dist/rendering/vdom-diff.d.ts.map +0 -1
- package/dist/rendering/vdom-diff.js +0 -416
- package/dist/rendering/vdom-diff.js.map +0 -1
- package/dist/routing/router.d.ts +0 -241
- package/dist/routing/router.d.ts.map +0 -1
- package/dist/routing/router.js +0 -648
- package/dist/routing/router.js.map +0 -1
- package/dist/state/reactive-state.d.ts +0 -166
- package/dist/state/reactive-state.d.ts.map +0 -1
- package/dist/state/reactive-state.js +0 -546
- package/dist/state/reactive-state.js.map +0 -1
- package/dist/utils/error-handler.d.ts +0 -148
- package/dist/utils/error-handler.d.ts.map +0 -1
- package/dist/utils/error-handler.js +0 -468
- package/dist/utils/error-handler.js.map +0 -1
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CSS Management System for Coherent.js
|
|
3
|
-
* Handles CSS file inclusion, inline styles, and optimization
|
|
4
|
-
*/
|
|
5
|
-
import fs from 'node:fs/promises';
|
|
6
|
-
import path from 'node:path';
|
|
7
|
-
/**
|
|
8
|
-
* CSS Manager Class
|
|
9
|
-
* Handles CSS file loading, processing, and injection
|
|
10
|
-
*/
|
|
11
|
-
export class CSSManager {
|
|
12
|
-
constructor(options = {}) {
|
|
13
|
-
this.options = {
|
|
14
|
-
basePath: process.cwd(),
|
|
15
|
-
minify: false,
|
|
16
|
-
cache: true,
|
|
17
|
-
autoprefixer: false,
|
|
18
|
-
...options
|
|
19
|
-
};
|
|
20
|
-
this.cache = new Map();
|
|
21
|
-
this.loadedFiles = new Set();
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Load CSS file content
|
|
25
|
-
*/
|
|
26
|
-
async loadCSSFile(filePath) {
|
|
27
|
-
const fullPath = path.resolve(this.options.basePath, filePath);
|
|
28
|
-
const cacheKey = fullPath;
|
|
29
|
-
// Return cached content if available
|
|
30
|
-
if (this.options.cache && this.cache.has(cacheKey)) {
|
|
31
|
-
return this.cache.get(cacheKey);
|
|
32
|
-
}
|
|
33
|
-
try {
|
|
34
|
-
let content = await fs.readFile(fullPath, 'utf8');
|
|
35
|
-
// Basic minification if enabled
|
|
36
|
-
if (this.options.minify) {
|
|
37
|
-
content = this.minifyCSS(content);
|
|
38
|
-
}
|
|
39
|
-
// Cache the content
|
|
40
|
-
if (this.options.cache) {
|
|
41
|
-
this.cache.set(cacheKey, content);
|
|
42
|
-
}
|
|
43
|
-
this.loadedFiles.add(filePath);
|
|
44
|
-
return content;
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
console.warn(`Failed to load CSS file: ${filePath}`, error.message);
|
|
48
|
-
return '';
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Load multiple CSS files
|
|
53
|
-
*/
|
|
54
|
-
async loadCSSFiles(filePaths) {
|
|
55
|
-
if (!Array.isArray(filePaths)) {
|
|
56
|
-
filePaths = [filePaths];
|
|
57
|
-
}
|
|
58
|
-
const cssContents = await Promise.all(filePaths.map(filePath => this.loadCSSFile(filePath)));
|
|
59
|
-
return cssContents.join('\n');
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Generate CSS link tags for external files
|
|
63
|
-
*/
|
|
64
|
-
generateCSSLinks(filePaths, baseUrl = '/') {
|
|
65
|
-
if (!Array.isArray(filePaths)) {
|
|
66
|
-
filePaths = [filePaths];
|
|
67
|
-
}
|
|
68
|
-
return filePaths
|
|
69
|
-
.map(filePath => {
|
|
70
|
-
const href = filePath.startsWith('http')
|
|
71
|
-
? filePath
|
|
72
|
-
: `${baseUrl}${filePath}`.replace(/\/+/g, '/');
|
|
73
|
-
return `<link rel="stylesheet" href="${this.escapeHtml(href)}" />`;
|
|
74
|
-
})
|
|
75
|
-
.join('\n');
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Generate inline style tag with CSS content
|
|
79
|
-
*/
|
|
80
|
-
generateInlineStyles(cssContent) {
|
|
81
|
-
if (!cssContent)
|
|
82
|
-
return '';
|
|
83
|
-
return `<style type="text/css">\n${cssContent}\n</style>`;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Basic CSS minification
|
|
87
|
-
*/
|
|
88
|
-
minifyCSS(css) {
|
|
89
|
-
return css
|
|
90
|
-
.replace(/\/\*[\s\S]*?\*\//g, '') // Remove comments
|
|
91
|
-
.replace(/\s+/g, ' ') // Collapse whitespace
|
|
92
|
-
.replace(/;\s*}/g, '}') // Remove last semicolon in blocks
|
|
93
|
-
.replace(/{\s+/g, '{') // Remove space after opening brace
|
|
94
|
-
.replace(/;\s+/g, ';') // Remove space after semicolons
|
|
95
|
-
.trim();
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Escape HTML entities
|
|
99
|
-
*/
|
|
100
|
-
escapeHtml(text) {
|
|
101
|
-
const div = { textContent: text };
|
|
102
|
-
return div.innerHTML || text;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Clear cache
|
|
106
|
-
*/
|
|
107
|
-
clearCache() {
|
|
108
|
-
this.cache.clear();
|
|
109
|
-
this.loadedFiles.clear();
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Get loaded file list
|
|
113
|
-
*/
|
|
114
|
-
getLoadedFiles() {
|
|
115
|
-
return Array.from(this.loadedFiles);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Default CSS Manager instance
|
|
120
|
-
*/
|
|
121
|
-
export const defaultCSSManager = new CSSManager();
|
|
122
|
-
/**
|
|
123
|
-
* CSS processing utilities
|
|
124
|
-
*/
|
|
125
|
-
export const cssUtils = {
|
|
126
|
-
/**
|
|
127
|
-
* Process CSS options from render options
|
|
128
|
-
*/
|
|
129
|
-
processCSSOptions(options = {}) {
|
|
130
|
-
const { css = {}, cssFiles = [], inlineCSS = '', cssLinks = [], cssBasePath = process.cwd(), cssMinify = false } = options;
|
|
131
|
-
return {
|
|
132
|
-
files: Array.isArray(cssFiles) ? cssFiles : [cssFiles].filter(Boolean),
|
|
133
|
-
inline: inlineCSS || css.inline || '',
|
|
134
|
-
links: Array.isArray(cssLinks) ? cssLinks : [cssLinks].filter(Boolean),
|
|
135
|
-
basePath: css.basePath || cssBasePath,
|
|
136
|
-
minify: css.minify || cssMinify,
|
|
137
|
-
loadInline: css.loadInline !== false // default true
|
|
138
|
-
};
|
|
139
|
-
},
|
|
140
|
-
/**
|
|
141
|
-
* Generate complete CSS HTML for head section
|
|
142
|
-
*/
|
|
143
|
-
async generateCSSHtml(cssOptions, cssManager = defaultCSSManager) {
|
|
144
|
-
const cssHtmlParts = [];
|
|
145
|
-
// Process external CSS links
|
|
146
|
-
if (cssOptions.links.length > 0) {
|
|
147
|
-
cssHtmlParts.push(cssManager.generateCSSLinks(cssOptions.links));
|
|
148
|
-
}
|
|
149
|
-
// Process CSS files (inline or as links)
|
|
150
|
-
if (cssOptions.files.length > 0) {
|
|
151
|
-
if (cssOptions.loadInline) {
|
|
152
|
-
// Load and inline CSS files
|
|
153
|
-
const cssContent = await cssManager.loadCSSFiles(cssOptions.files);
|
|
154
|
-
if (cssContent) {
|
|
155
|
-
cssHtmlParts.push(cssManager.generateInlineStyles(cssContent));
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
// Generate link tags for CSS files
|
|
160
|
-
cssHtmlParts.push(cssManager.generateCSSLinks(cssOptions.files));
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
// Process inline CSS
|
|
164
|
-
if (cssOptions.inline) {
|
|
165
|
-
cssHtmlParts.push(cssManager.generateInlineStyles(cssOptions.inline));
|
|
166
|
-
}
|
|
167
|
-
return cssHtmlParts.join('\n');
|
|
168
|
-
}
|
|
169
|
-
};
|
|
170
|
-
/**
|
|
171
|
-
* Create a new CSS Manager instance
|
|
172
|
-
*/
|
|
173
|
-
export function createCSSManager(options = {}) {
|
|
174
|
-
return new CSSManager(options);
|
|
175
|
-
}
|
|
176
|
-
//# sourceMappingURL=css-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"css-manager.js","sourceRoot":"","sources":["../../../../src/rendering/css-manager.js"],"names":[],"mappings":"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"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Virtual DOM node structure
|
|
3
|
-
*/
|
|
4
|
-
export function createVNode(type: any, props?: {}, children?: any[]): {
|
|
5
|
-
type: any;
|
|
6
|
-
props: {};
|
|
7
|
-
children: any[];
|
|
8
|
-
key: any;
|
|
9
|
-
_coherent: boolean;
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* Convert Coherent object to virtual DOM node
|
|
13
|
-
*/
|
|
14
|
-
export function objectToVNode(component: any, depth?: number): any;
|
|
15
|
-
/**
|
|
16
|
-
* Compare two virtual DOM nodes and generate patch operations
|
|
17
|
-
*/
|
|
18
|
-
export function diff(oldVNode: any, newVNode: any, patches?: any[], path?: any[]): any[];
|
|
19
|
-
/**
|
|
20
|
-
* Apply patches to a DOM element
|
|
21
|
-
*/
|
|
22
|
-
export function patch(element: any, patches: any): any;
|
|
23
|
-
export namespace VDOM_OPERATIONS {
|
|
24
|
-
let CREATE: string;
|
|
25
|
-
let UPDATE: string;
|
|
26
|
-
let REMOVE: string;
|
|
27
|
-
let REPLACE: string;
|
|
28
|
-
let MOVE: string;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Create a virtual DOM differ for component updates
|
|
32
|
-
*/
|
|
33
|
-
export class VDOMDiffer {
|
|
34
|
-
cache: Map<any, any>;
|
|
35
|
-
/**
|
|
36
|
-
* Perform efficient diff and patch
|
|
37
|
-
*/
|
|
38
|
-
update(element: any, oldComponent: any, newComponent: any): number;
|
|
39
|
-
/**
|
|
40
|
-
* Cache virtual nodes for performance
|
|
41
|
-
*/
|
|
42
|
-
cacheVNode(key: any, vnode: any): void;
|
|
43
|
-
getCachedVNode(key: any): any;
|
|
44
|
-
clearCache(): void;
|
|
45
|
-
}
|
|
46
|
-
export default VDOMDiffer;
|
|
47
|
-
//# sourceMappingURL=vdom-diff.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vdom-diff.d.ts","sourceRoot":"","sources":["../../../../src/rendering/vdom-diff.js"],"names":[],"mappings":"AAgBA;;GAEG;AACH;;;;;;EAQC;AAED;;GAEG;AACH,mEA6DC;AAED;;GAEG;AACH,yFA0DC;AAqGD;;GAEG;AACH,uDAiBC;;;;;;;;AA2JD;;GAEG;AACH;IAEQ,qBAAsB;IAG1B;;OAEG;IACH,mEAWC;IAED;;OAEG;IACH,uCAEC;IAED,8BAEC;IAED,mBAEC;CACJ"}
|
|
@@ -1,416 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Virtual DOM Diffing Engine for Coherent.js
|
|
3
|
-
* Implements efficient diffing algorithm to minimize DOM updates
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Types of virtual DOM operations
|
|
7
|
-
*/
|
|
8
|
-
export const VDOM_OPERATIONS = {
|
|
9
|
-
CREATE: 'CREATE',
|
|
10
|
-
UPDATE: 'UPDATE',
|
|
11
|
-
REMOVE: 'REMOVE',
|
|
12
|
-
REPLACE: 'REPLACE',
|
|
13
|
-
MOVE: 'MOVE'
|
|
14
|
-
};
|
|
15
|
-
/**
|
|
16
|
-
* Virtual DOM node structure
|
|
17
|
-
*/
|
|
18
|
-
export function createVNode(type, props = {}, children = []) {
|
|
19
|
-
return {
|
|
20
|
-
type,
|
|
21
|
-
props: props || {},
|
|
22
|
-
children: Array.isArray(children) ? children : [children].filter(Boolean),
|
|
23
|
-
key: props?.key,
|
|
24
|
-
_coherent: true
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Convert Coherent object to virtual DOM node
|
|
29
|
-
*/
|
|
30
|
-
export function objectToVNode(component, depth = 0) {
|
|
31
|
-
if (depth > 100) {
|
|
32
|
-
console.warn('Maximum depth reached in virtual DOM creation');
|
|
33
|
-
return createVNode('span', {}, ['Maximum depth exceeded']);
|
|
34
|
-
}
|
|
35
|
-
if (component === null || component === undefined) {
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
if (typeof component === 'string' || typeof component === 'number') {
|
|
39
|
-
return String(component);
|
|
40
|
-
}
|
|
41
|
-
if (typeof component === 'boolean') {
|
|
42
|
-
return component ? 'true' : 'false';
|
|
43
|
-
}
|
|
44
|
-
if (Array.isArray(component)) {
|
|
45
|
-
return component.map(child => objectToVNode(child, depth + 1)).filter(Boolean);
|
|
46
|
-
}
|
|
47
|
-
if (typeof component === 'function') {
|
|
48
|
-
try {
|
|
49
|
-
const result = component();
|
|
50
|
-
return objectToVNode(result, depth + 1);
|
|
51
|
-
}
|
|
52
|
-
catch (error) {
|
|
53
|
-
console.error('Error executing function component:', error);
|
|
54
|
-
return createVNode('span', { className: 'error' }, [`Error: ${error.message}`]);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
if (typeof component === 'object' && component !== null) {
|
|
58
|
-
const entries = Object.entries(component);
|
|
59
|
-
if (entries.length === 1) {
|
|
60
|
-
const [tagName, props] = entries[0];
|
|
61
|
-
if (typeof props === 'object' && props !== null) {
|
|
62
|
-
const { children, text, ...otherProps } = props;
|
|
63
|
-
let childNodes = [];
|
|
64
|
-
if (text !== undefined) {
|
|
65
|
-
childNodes = [String(text)];
|
|
66
|
-
}
|
|
67
|
-
else if (children) {
|
|
68
|
-
if (Array.isArray(children)) {
|
|
69
|
-
childNodes = children.map(child => objectToVNode(child, depth + 1)).filter(Boolean);
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
const child = objectToVNode(children, depth + 1);
|
|
73
|
-
if (child)
|
|
74
|
-
childNodes = [child];
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
return createVNode(tagName, otherProps, childNodes);
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
// Simple case: { div: 'text content' }
|
|
81
|
-
return createVNode(tagName, {}, [String(_props)]);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return null;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Compare two virtual DOM nodes and generate patch operations
|
|
89
|
-
*/
|
|
90
|
-
export function diff(oldVNode, newVNode, patches = [], path = []) {
|
|
91
|
-
// Handle null cases
|
|
92
|
-
if (!oldVNode && !newVNode) {
|
|
93
|
-
return patches;
|
|
94
|
-
}
|
|
95
|
-
if (!oldVNode && newVNode) {
|
|
96
|
-
patches.push({
|
|
97
|
-
type: VDOM_OPERATIONS.CREATE,
|
|
98
|
-
path: [...path],
|
|
99
|
-
vnode: newVNode
|
|
100
|
-
});
|
|
101
|
-
return patches;
|
|
102
|
-
}
|
|
103
|
-
if (oldVNode && !newVNode) {
|
|
104
|
-
patches.push({
|
|
105
|
-
type: VDOM_OPERATIONS.REMOVE,
|
|
106
|
-
path: [...path]
|
|
107
|
-
});
|
|
108
|
-
return patches;
|
|
109
|
-
}
|
|
110
|
-
// Handle text nodes
|
|
111
|
-
if (typeof oldVNode === 'string' || typeof newVNode === 'string') {
|
|
112
|
-
if (oldVNode !== newVNode) {
|
|
113
|
-
patches.push({
|
|
114
|
-
type: VDOM_OPERATIONS.REPLACE,
|
|
115
|
-
path: [...path],
|
|
116
|
-
vnode: newVNode
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
return patches;
|
|
120
|
-
}
|
|
121
|
-
// Handle array diffing (fragment children)
|
|
122
|
-
if (Array.isArray(oldVNode) || Array.isArray(newVNode)) {
|
|
123
|
-
return diffArrays(oldVNode, newVNode, patches, path);
|
|
124
|
-
}
|
|
125
|
-
// Handle element diffing
|
|
126
|
-
if (oldVNode.type !== newVNode.type) {
|
|
127
|
-
patches.push({
|
|
128
|
-
type: VDOM_OPERATIONS.REPLACE,
|
|
129
|
-
path: [...path],
|
|
130
|
-
vnode: newVNode
|
|
131
|
-
});
|
|
132
|
-
return patches;
|
|
133
|
-
}
|
|
134
|
-
// Diff props
|
|
135
|
-
const propPatches = diffProps(oldVNode.props, newVNode.props, path);
|
|
136
|
-
patches.push(...propPatches);
|
|
137
|
-
// Diff children
|
|
138
|
-
diffArrays(oldVNode.children, newVNode.children, patches, [...path, 'children']);
|
|
139
|
-
return patches;
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Diff arrays of virtual nodes (optimized for keyed elements)
|
|
143
|
-
*/
|
|
144
|
-
function diffArrays(oldChildren = [], newChildren = [], patches = [], path = []) {
|
|
145
|
-
const oldArray = Array.isArray(oldChildren) ? oldChildren : [oldChildren].filter(Boolean);
|
|
146
|
-
const newArray = Array.isArray(newChildren) ? newChildren : [newChildren].filter(Boolean);
|
|
147
|
-
// Simple case: lengths differ significantly, replace all
|
|
148
|
-
if (Math.abs(oldArray.length - newArray.length) > Math.max(oldArray.length, newArray.length) * 0.5) {
|
|
149
|
-
patches.push({
|
|
150
|
-
type: VDOM_OPERATIONS.REPLACE,
|
|
151
|
-
path: [...path],
|
|
152
|
-
vnode: newArray
|
|
153
|
-
});
|
|
154
|
-
return patches;
|
|
155
|
-
}
|
|
156
|
-
// Track keys for efficient reordering
|
|
157
|
-
const oldKeyMap = new Map();
|
|
158
|
-
const newKeyMap = new Map();
|
|
159
|
-
oldArray.forEach((child, index) => {
|
|
160
|
-
if (child && child.key !== undefined) {
|
|
161
|
-
oldKeyMap.set(child.key, { child, index });
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
newArray.forEach((child, index) => {
|
|
165
|
-
if (child && child.key !== undefined) {
|
|
166
|
-
newKeyMap.set(child.key, { child, index });
|
|
167
|
-
}
|
|
168
|
-
});
|
|
169
|
-
// Process children
|
|
170
|
-
const maxLength = Math.max(oldArray.length, newArray.length);
|
|
171
|
-
for (let i = 0; i < maxLength; i++) {
|
|
172
|
-
const oldChild = oldArray[i];
|
|
173
|
-
const newChild = newArray[i];
|
|
174
|
-
const childPath = [...path, i];
|
|
175
|
-
if (oldChild && newChild && oldChild.key && newChild.key) {
|
|
176
|
-
// Handle keyed elements
|
|
177
|
-
if (oldChild.key !== newChild.key) {
|
|
178
|
-
// Check if this is a move operation
|
|
179
|
-
const oldPos = newKeyMap.get(oldChild.key);
|
|
180
|
-
if (oldPos && oldPos.index !== i) {
|
|
181
|
-
patches.push({
|
|
182
|
-
type: VDOM_OPERATIONS.MOVE,
|
|
183
|
-
path: childPath,
|
|
184
|
-
from: oldPos.index,
|
|
185
|
-
to: i
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
else {
|
|
189
|
-
// Replace with new element
|
|
190
|
-
patches.push({
|
|
191
|
-
type: VDOM_OPERATIONS.REPLACE,
|
|
192
|
-
path: childPath,
|
|
193
|
-
vnode: newChild
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
else {
|
|
198
|
-
// Same key, diff the elements
|
|
199
|
-
diff(oldChild, newChild, patches, childPath);
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
else {
|
|
203
|
-
// Handle non-keyed elements
|
|
204
|
-
diff(oldChild, newChild, patches, childPath);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
return patches;
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* Diff element properties
|
|
211
|
-
*/
|
|
212
|
-
function diffProps(oldProps = {}, newProps = {}, path = []) {
|
|
213
|
-
const patches = [];
|
|
214
|
-
const allKeys = new Set([...Object.keys(oldProps), ...Object.keys(newProps)]);
|
|
215
|
-
for (const key of allKeys) {
|
|
216
|
-
if (key === 'children')
|
|
217
|
-
continue; // Children handled separately
|
|
218
|
-
const oldValue = oldProps[key];
|
|
219
|
-
const newValue = newProps[key];
|
|
220
|
-
if (oldValue !== newValue) {
|
|
221
|
-
patches.push({
|
|
222
|
-
type: VDOM_OPERATIONS.UPDATE,
|
|
223
|
-
path: [...path, 'props', key],
|
|
224
|
-
oldValue,
|
|
225
|
-
newValue
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
return patches;
|
|
230
|
-
}
|
|
231
|
-
/**
|
|
232
|
-
* Apply patches to a DOM element
|
|
233
|
-
*/
|
|
234
|
-
export function patch(element, patches) {
|
|
235
|
-
if (!element || !patches.length) {
|
|
236
|
-
return element;
|
|
237
|
-
}
|
|
238
|
-
const patchResults = [];
|
|
239
|
-
for (const p of patches) {
|
|
240
|
-
try {
|
|
241
|
-
const result = applyPatch(element, p);
|
|
242
|
-
patchResults.push(result);
|
|
243
|
-
}
|
|
244
|
-
catch (error) {
|
|
245
|
-
console.error('Error applying patch:', error, p);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
return element;
|
|
249
|
-
}
|
|
250
|
-
/**
|
|
251
|
-
* Apply a single patch operation
|
|
252
|
-
*/
|
|
253
|
-
function applyPatch(rootElement, patch) {
|
|
254
|
-
const target = getElementByPath(rootElement, patch.path);
|
|
255
|
-
switch (patch.type) {
|
|
256
|
-
case VDOM_OPERATIONS.CREATE:
|
|
257
|
-
const newElement = vnodeToDOM(patch.vnode);
|
|
258
|
-
if (target && target.parentNode) {
|
|
259
|
-
target.parentNode.appendChild(newElement);
|
|
260
|
-
}
|
|
261
|
-
return newElement;
|
|
262
|
-
case VDOM_OPERATIONS.REMOVE:
|
|
263
|
-
if (target && target.parentNode) {
|
|
264
|
-
target.parentNode.removeChild(target);
|
|
265
|
-
}
|
|
266
|
-
return null;
|
|
267
|
-
case VDOM_OPERATIONS.REPLACE:
|
|
268
|
-
const replacement = vnodeToDOM(patch.vnode);
|
|
269
|
-
if (target && target.parentNode) {
|
|
270
|
-
target.parentNode.replaceChild(replacement, target);
|
|
271
|
-
}
|
|
272
|
-
return replacement;
|
|
273
|
-
case VDOM_OPERATIONS.UPDATE:
|
|
274
|
-
if (target && patch.path[patch.path.length - 2] === 'props') {
|
|
275
|
-
const propName = patch.path[patch.path.length - 1];
|
|
276
|
-
updateDOMProperty(target, propName, patch.oldValue, patch.newValue);
|
|
277
|
-
}
|
|
278
|
-
return target;
|
|
279
|
-
case VDOM_OPERATIONS.MOVE:
|
|
280
|
-
if (target && target.parentNode) {
|
|
281
|
-
const parent = target.parentNode;
|
|
282
|
-
const children = Array.from(parent.children);
|
|
283
|
-
const fromElement = children[patch.from];
|
|
284
|
-
const toPosition = patch.to;
|
|
285
|
-
if (fromElement && toPosition < children.length) {
|
|
286
|
-
parent.insertBefore(fromElement, children[toPosition]);
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
return target;
|
|
290
|
-
default:
|
|
291
|
-
console.warn('Unknown patch operation:', patch.type);
|
|
292
|
-
return target;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
/**
|
|
296
|
-
* Navigate DOM tree by path
|
|
297
|
-
*/
|
|
298
|
-
function getElementByPath(element, path) {
|
|
299
|
-
let current = element;
|
|
300
|
-
for (const segment of path) {
|
|
301
|
-
if (!current)
|
|
302
|
-
return null;
|
|
303
|
-
if (segment === 'children') {
|
|
304
|
-
continue; // Skip children marker
|
|
305
|
-
}
|
|
306
|
-
if (typeof segment === 'number') {
|
|
307
|
-
current = current.children[segment];
|
|
308
|
-
}
|
|
309
|
-
else if (segment === 'props') {
|
|
310
|
-
continue; // Props handled in UPDATE operations
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
return current;
|
|
314
|
-
}
|
|
315
|
-
/**
|
|
316
|
-
* Convert virtual node to DOM element
|
|
317
|
-
*/
|
|
318
|
-
function vnodeToDOM(vnode) {
|
|
319
|
-
if (typeof vnode === 'string') {
|
|
320
|
-
return document.createTextNode(vnode);
|
|
321
|
-
}
|
|
322
|
-
if (Array.isArray(vnode)) {
|
|
323
|
-
const fragment = document.createDocumentFragment();
|
|
324
|
-
vnode.forEach(child => {
|
|
325
|
-
const childElement = vnodeToDOM(child);
|
|
326
|
-
if (childElement) {
|
|
327
|
-
fragment.appendChild(childElement);
|
|
328
|
-
}
|
|
329
|
-
});
|
|
330
|
-
return fragment;
|
|
331
|
-
}
|
|
332
|
-
if (vnode && vnode.type) {
|
|
333
|
-
const element = document.createElement(vnode.type);
|
|
334
|
-
// Set properties
|
|
335
|
-
Object.entries(vnode._props).forEach(([key, value]) => {
|
|
336
|
-
updateDOMProperty(element, key, undefined, value);
|
|
337
|
-
});
|
|
338
|
-
// Append children
|
|
339
|
-
vnode.children.forEach(child => {
|
|
340
|
-
const childElement = vnodeToDOM(child);
|
|
341
|
-
if (childElement) {
|
|
342
|
-
element.appendChild(childElement);
|
|
343
|
-
}
|
|
344
|
-
});
|
|
345
|
-
return element;
|
|
346
|
-
}
|
|
347
|
-
return null;
|
|
348
|
-
}
|
|
349
|
-
/**
|
|
350
|
-
* Update DOM element property
|
|
351
|
-
*/
|
|
352
|
-
function updateDOMProperty(element, name, oldValue, newValue) {
|
|
353
|
-
// Handle special properties
|
|
354
|
-
if (name === 'className' || name === 'class') {
|
|
355
|
-
element.className = newValue || '';
|
|
356
|
-
return;
|
|
357
|
-
}
|
|
358
|
-
if (name.startsWith('on') && typeof newValue === 'function') {
|
|
359
|
-
const eventType = name.slice(2).toLowerCase();
|
|
360
|
-
// Remove old event listener
|
|
361
|
-
if (typeof oldValue === 'function') {
|
|
362
|
-
element.removeEventListener(eventType, oldValue);
|
|
363
|
-
}
|
|
364
|
-
// Add new event listener
|
|
365
|
-
element.addEventListener(eventType, newValue);
|
|
366
|
-
return;
|
|
367
|
-
}
|
|
368
|
-
if (newValue === null || newValue === undefined) {
|
|
369
|
-
element.removeAttribute(name);
|
|
370
|
-
}
|
|
371
|
-
else if (typeof newValue === 'boolean') {
|
|
372
|
-
if (newValue) {
|
|
373
|
-
element.setAttribute(name, '');
|
|
374
|
-
}
|
|
375
|
-
else {
|
|
376
|
-
element.removeAttribute(name);
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
else {
|
|
380
|
-
element.setAttribute(name, String(newValue));
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
/**
|
|
384
|
-
* Create a virtual DOM differ for component updates
|
|
385
|
-
*/
|
|
386
|
-
export class VDOMDiffer {
|
|
387
|
-
constructor() {
|
|
388
|
-
this.cache = new Map();
|
|
389
|
-
}
|
|
390
|
-
/**
|
|
391
|
-
* Perform efficient diff and patch
|
|
392
|
-
*/
|
|
393
|
-
update(element, oldComponent, newComponent) {
|
|
394
|
-
const oldVNode = objectToVNode(oldComponent);
|
|
395
|
-
const newVNode = objectToVNode(newComponent);
|
|
396
|
-
const patches = diff(oldVNode, newVNode);
|
|
397
|
-
if (patches.length > 0) {
|
|
398
|
-
patch(element, patches);
|
|
399
|
-
}
|
|
400
|
-
return patches.length;
|
|
401
|
-
}
|
|
402
|
-
/**
|
|
403
|
-
* Cache virtual nodes for performance
|
|
404
|
-
*/
|
|
405
|
-
cacheVNode(key, vnode) {
|
|
406
|
-
this.cache.set(key, vnode);
|
|
407
|
-
}
|
|
408
|
-
getCachedVNode(key) {
|
|
409
|
-
return this.cache.get(key);
|
|
410
|
-
}
|
|
411
|
-
clearCache() {
|
|
412
|
-
this.cache.clear();
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
export default VDOMDiffer;
|
|
416
|
-
//# sourceMappingURL=vdom-diff.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vdom-diff.js","sourceRoot":"","sources":["../../../../src/rendering/vdom-diff.js"],"names":[],"mappings":"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"}
|