@vobs/runtime 1.1.0 → 1.2.1
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/async-boundary.cjs +623 -0
- package/dist/async-boundary.cjs.map +1 -0
- package/dist/async-boundary.d.cts +18 -0
- package/dist/async-boundary.d.ts +18 -0
- package/dist/async-boundary.js +620 -0
- package/dist/async-boundary.js.map +1 -0
- package/dist/bind.cjs +312 -0
- package/dist/bind.cjs.map +1 -0
- package/dist/bind.d.cts +8 -0
- package/dist/bind.d.ts +8 -0
- package/dist/bind.js +308 -0
- package/dist/bind.js.map +1 -0
- package/dist/boundary.cjs +621 -0
- package/dist/boundary.cjs.map +1 -0
- package/dist/boundary.d.cts +18 -0
- package/dist/boundary.d.ts +18 -0
- package/dist/boundary.js +619 -0
- package/dist/boundary.js.map +1 -0
- package/dist/debug.cjs +94 -0
- package/dist/debug.cjs.map +1 -0
- package/dist/debug.d.cts +58 -0
- package/dist/debug.d.ts +58 -0
- package/dist/debug.js +85 -0
- package/dist/debug.js.map +1 -0
- package/dist/dynamic.cjs +801 -0
- package/dist/dynamic.cjs.map +1 -0
- package/dist/dynamic.d.cts +15 -0
- package/dist/dynamic.d.ts +15 -0
- package/dist/dynamic.js +796 -0
- package/dist/dynamic.js.map +1 -0
- package/dist/error-boundary.cjs +693 -0
- package/dist/error-boundary.cjs.map +1 -0
- package/dist/error-boundary.d.cts +22 -0
- package/dist/error-boundary.d.ts +22 -0
- package/dist/error-boundary.js +690 -0
- package/dist/error-boundary.js.map +1 -0
- package/dist/error.cjs +117 -0
- package/dist/error.cjs.map +1 -0
- package/dist/error.d.cts +53 -0
- package/dist/error.d.ts +53 -0
- package/dist/error.js +111 -0
- package/dist/error.js.map +1 -0
- package/dist/fragment.cjs +216 -0
- package/dist/fragment.cjs.map +1 -0
- package/dist/fragment.d.cts +13 -0
- package/dist/fragment.d.ts +13 -0
- package/dist/fragment.js +213 -0
- package/dist/fragment.js.map +1 -0
- package/dist/hmr.cjs +106 -0
- package/dist/hmr.cjs.map +1 -0
- package/dist/hmr.d.cts +24 -0
- package/dist/hmr.d.ts +24 -0
- package/dist/hmr.js +98 -0
- package/dist/hmr.js.map +1 -0
- package/dist/index.cjs +1597 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +15 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +1540 -0
- package/dist/index.js.map +1 -0
- package/dist/ops.cjs +574 -0
- package/dist/ops.cjs.map +1 -0
- package/dist/ops.d.cts +39 -0
- package/dist/ops.d.ts +39 -0
- package/dist/ops.js +554 -0
- package/dist/ops.js.map +1 -0
- package/dist/profiler.cjs +523 -0
- package/dist/profiler.cjs.map +1 -0
- package/dist/profiler.d.cts +20 -0
- package/dist/profiler.d.ts +20 -0
- package/dist/profiler.js +520 -0
- package/dist/profiler.js.map +1 -0
- package/dist/ref.cjs +169 -0
- package/dist/ref.cjs.map +1 -0
- package/dist/ref.d.cts +10 -0
- package/dist/ref.d.ts +10 -0
- package/dist/ref.js +166 -0
- package/dist/ref.js.map +1 -0
- package/dist/renderer.cjs +4 -0
- package/dist/renderer.cjs.map +1 -0
- package/dist/renderer.d.cts +18 -0
- package/dist/renderer.d.ts +18 -0
- package/dist/renderer.js +3 -0
- package/dist/renderer.js.map +1 -0
- package/dist/template.cjs +28 -0
- package/dist/template.cjs.map +1 -0
- package/dist/template.d.cts +6 -0
- package/dist/template.d.ts +6 -0
- package/dist/template.js +25 -0
- package/dist/template.js.map +1 -0
- package/package.json +30 -6
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
interface VobsRenderer<NodeType = Node, TextNode extends NodeType = NodeType, ElementNode extends NodeType = NodeType, CommentNode extends NodeType = NodeType> {
|
|
2
|
+
createText(content: string): TextNode;
|
|
3
|
+
createElement(tag: string): ElementNode;
|
|
4
|
+
createComment(content: string): CommentNode;
|
|
5
|
+
insertBefore(parent: NodeType, child: NodeType, anchor: NodeType | null): void;
|
|
6
|
+
removeChild(parent: NodeType, child: NodeType): void;
|
|
7
|
+
setTextContent(node: TextNode, content: string): void;
|
|
8
|
+
setProperty(node: ElementNode, key: string, value: unknown): void;
|
|
9
|
+
setAttribute(node: ElementNode, key: string, value: string): void;
|
|
10
|
+
addEventListener(node: ElementNode, event: string, handler: EventListener): void;
|
|
11
|
+
removeEventListener(node: ElementNode, event: string, handler: EventListener): void;
|
|
12
|
+
nextSibling(node: NodeType): NodeType | null;
|
|
13
|
+
clear(container: NodeType): void;
|
|
14
|
+
beginHydration?(): void;
|
|
15
|
+
completeHydration?(): void;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export type { VobsRenderer };
|
package/dist/renderer.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"renderer.js"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
5
|
+
|
|
6
|
+
// packages/runtime/src/template.ts
|
|
7
|
+
var templateCache = /* @__PURE__ */ new Map();
|
|
8
|
+
function createTemplate(html) {
|
|
9
|
+
let template = templateCache.get(html);
|
|
10
|
+
if (!template) {
|
|
11
|
+
template = document.createElement("template");
|
|
12
|
+
template.innerHTML = html;
|
|
13
|
+
templateCache.set(html, template);
|
|
14
|
+
}
|
|
15
|
+
return template;
|
|
16
|
+
}
|
|
17
|
+
__name(createTemplate, "createTemplate");
|
|
18
|
+
function cloneTemplate(template) {
|
|
19
|
+
const root = template.content.firstElementChild;
|
|
20
|
+
if (!root) throw new Error("Vobs: \u9759\u6001\u6A21\u677F\u7F3A\u5C11\u6839\u5143\u7D20\uFF0C\u8BF7\u68C0\u67E5\u7F16\u8BD1\u4EA7\u7269");
|
|
21
|
+
return root.cloneNode(true);
|
|
22
|
+
}
|
|
23
|
+
__name(cloneTemplate, "cloneTemplate");
|
|
24
|
+
|
|
25
|
+
exports.cloneTemplate = cloneTemplate;
|
|
26
|
+
exports.createTemplate = createTemplate;
|
|
27
|
+
//# sourceMappingURL=template.cjs.map
|
|
28
|
+
//# sourceMappingURL=template.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/template.ts"],"names":[],"mappings":";;;;;;AAKA,IAAM,aAAA,uBAAoB,GAAA,EAAiC;AAGpD,SAAS,eAAe,IAAA,EAAmC;AAChE,EAAA,IAAI,QAAA,GAAW,aAAA,CAAc,GAAA,CAAI,IAAI,CAAA;AACrC,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,QAAA,GAAW,QAAA,CAAS,cAAc,UAAU,CAAA;AAC5C,IAAA,QAAA,CAAS,SAAA,GAAY,IAAA;AACrB,IAAA,aAAA,CAAc,GAAA,CAAI,MAAM,QAAQ,CAAA;AAAA,EAClC;AACA,EAAA,OAAO,QAAA;AACT;AARgB,MAAA,CAAA,cAAA,EAAA,gBAAA,CAAA;AAWT,SAAS,cAAc,QAAA,EAAqC;AACjE,EAAA,MAAM,IAAA,GAAO,SAAS,OAAA,CAAQ,iBAAA;AAC9B,EAAA,IAAI,CAAC,IAAA,EAAM,MAAM,IAAI,MAAM,8GAAyB,CAAA;AACpD,EAAA,OAAO,IAAA,CAAK,UAAU,IAAI,CAAA;AAC5B;AAJgB,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA","file":"template.cjs","sourcesContent":["// 编译器静态模板提升的运行时支撑:\n// 编译期把完全静态的 JSX 子树序列化为 HTML 字符串,模块加载时解析一次,\n// 运行时通过 cloneNode 复制,替代逐个 createElement + setStaticProps + insertBefore。\n// 仅适用于 DOM 渲染器(模板本质是 HTML),自定义渲染器场景由编译产物不使用该优化兜底。\n\nconst templateCache = new Map<string, HTMLTemplateElement>()\n\n/** Parse a static template once; called at module load for each hoisted template. */\nexport function createTemplate(html: string): HTMLTemplateElement {\n let template = templateCache.get(html)\n if (!template) {\n template = document.createElement('template')\n template.innerHTML = html\n templateCache.set(html, template)\n }\n return template\n}\n\n/** Clone a hoisted template for one mount; the compiled HTML always has a single root element. */\nexport function cloneTemplate(template: HTMLTemplateElement): Node {\n const root = template.content.firstElementChild\n if (!root) throw new Error('Vobs: 静态模板缺少根元素,请检查编译产物')\n return root.cloneNode(true)\n}\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Parse a static template once; called at module load for each hoisted template. */
|
|
2
|
+
declare function createTemplate(html: string): HTMLTemplateElement;
|
|
3
|
+
/** Clone a hoisted template for one mount; the compiled HTML always has a single root element. */
|
|
4
|
+
declare function cloneTemplate(template: HTMLTemplateElement): Node;
|
|
5
|
+
|
|
6
|
+
export { cloneTemplate, createTemplate };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Parse a static template once; called at module load for each hoisted template. */
|
|
2
|
+
declare function createTemplate(html: string): HTMLTemplateElement;
|
|
3
|
+
/** Clone a hoisted template for one mount; the compiled HTML always has a single root element. */
|
|
4
|
+
declare function cloneTemplate(template: HTMLTemplateElement): Node;
|
|
5
|
+
|
|
6
|
+
export { cloneTemplate, createTemplate };
|
package/dist/template.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
|
|
4
|
+
// packages/runtime/src/template.ts
|
|
5
|
+
var templateCache = /* @__PURE__ */ new Map();
|
|
6
|
+
function createTemplate(html) {
|
|
7
|
+
let template = templateCache.get(html);
|
|
8
|
+
if (!template) {
|
|
9
|
+
template = document.createElement("template");
|
|
10
|
+
template.innerHTML = html;
|
|
11
|
+
templateCache.set(html, template);
|
|
12
|
+
}
|
|
13
|
+
return template;
|
|
14
|
+
}
|
|
15
|
+
__name(createTemplate, "createTemplate");
|
|
16
|
+
function cloneTemplate(template) {
|
|
17
|
+
const root = template.content.firstElementChild;
|
|
18
|
+
if (!root) throw new Error("Vobs: \u9759\u6001\u6A21\u677F\u7F3A\u5C11\u6839\u5143\u7D20\uFF0C\u8BF7\u68C0\u67E5\u7F16\u8BD1\u4EA7\u7269");
|
|
19
|
+
return root.cloneNode(true);
|
|
20
|
+
}
|
|
21
|
+
__name(cloneTemplate, "cloneTemplate");
|
|
22
|
+
|
|
23
|
+
export { cloneTemplate, createTemplate };
|
|
24
|
+
//# sourceMappingURL=template.js.map
|
|
25
|
+
//# sourceMappingURL=template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/template.ts"],"names":[],"mappings":";;;;AAKA,IAAM,aAAA,uBAAoB,GAAA,EAAiC;AAGpD,SAAS,eAAe,IAAA,EAAmC;AAChE,EAAA,IAAI,QAAA,GAAW,aAAA,CAAc,GAAA,CAAI,IAAI,CAAA;AACrC,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,QAAA,GAAW,QAAA,CAAS,cAAc,UAAU,CAAA;AAC5C,IAAA,QAAA,CAAS,SAAA,GAAY,IAAA;AACrB,IAAA,aAAA,CAAc,GAAA,CAAI,MAAM,QAAQ,CAAA;AAAA,EAClC;AACA,EAAA,OAAO,QAAA;AACT;AARgB,MAAA,CAAA,cAAA,EAAA,gBAAA,CAAA;AAWT,SAAS,cAAc,QAAA,EAAqC;AACjE,EAAA,MAAM,IAAA,GAAO,SAAS,OAAA,CAAQ,iBAAA;AAC9B,EAAA,IAAI,CAAC,IAAA,EAAM,MAAM,IAAI,MAAM,8GAAyB,CAAA;AACpD,EAAA,OAAO,IAAA,CAAK,UAAU,IAAI,CAAA;AAC5B;AAJgB,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA","file":"template.js","sourcesContent":["// 编译器静态模板提升的运行时支撑:\n// 编译期把完全静态的 JSX 子树序列化为 HTML 字符串,模块加载时解析一次,\n// 运行时通过 cloneNode 复制,替代逐个 createElement + setStaticProps + insertBefore。\n// 仅适用于 DOM 渲染器(模板本质是 HTML),自定义渲染器场景由编译产物不使用该优化兜底。\n\nconst templateCache = new Map<string, HTMLTemplateElement>()\n\n/** Parse a static template once; called at module load for each hoisted template. */\nexport function createTemplate(html: string): HTMLTemplateElement {\n let template = templateCache.get(html)\n if (!template) {\n template = document.createElement('template')\n template.innerHTML = html\n templateCache.set(html, template)\n }\n return template\n}\n\n/** Clone a hoisted template for one mount; the compiled HTML always has a single root element. */\nexport function cloneTemplate(template: HTMLTemplateElement): Node {\n const root = template.content.firstElementChild\n if (!root) throw new Error('Vobs: 静态模板缺少根元素,请检查编译产物')\n return root.cloneNode(true)\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,20 +1,44 @@
|
|
|
1
1
|
{
|
|
2
2
|
"license": "MIT",
|
|
3
3
|
"files": [
|
|
4
|
+
"dist",
|
|
4
5
|
"src",
|
|
5
6
|
"README.md",
|
|
6
7
|
"LICENSE"
|
|
7
8
|
],
|
|
8
9
|
"name": "@vobs/runtime",
|
|
9
|
-
"
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/vobsjs/vobs.git"
|
|
13
|
+
},
|
|
14
|
+
"version": "1.2.1",
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"access": "public"
|
|
17
|
+
},
|
|
10
18
|
"type": "module",
|
|
11
|
-
"main": "
|
|
12
|
-
"
|
|
19
|
+
"main": "./dist/index.cjs",
|
|
20
|
+
"module": "./dist/index.js",
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
13
22
|
"exports": {
|
|
14
|
-
".":
|
|
15
|
-
|
|
23
|
+
".": {
|
|
24
|
+
"types": "./dist/index.d.ts",
|
|
25
|
+
"import": "./dist/index.js",
|
|
26
|
+
"require": "./dist/index.cjs",
|
|
27
|
+
"default": "./dist/index.js"
|
|
28
|
+
},
|
|
29
|
+
"./error": {
|
|
30
|
+
"types": "./dist/error.d.ts",
|
|
31
|
+
"import": "./dist/error.js",
|
|
32
|
+
"require": "./dist/error.cjs",
|
|
33
|
+
"default": "./dist/error.js"
|
|
34
|
+
},
|
|
35
|
+
"./source": {
|
|
36
|
+
"types": "./src/index.ts",
|
|
37
|
+
"default": "./src/index.ts"
|
|
38
|
+
},
|
|
39
|
+
"./source/*": "./src/*"
|
|
16
40
|
},
|
|
17
41
|
"dependencies": {
|
|
18
|
-
"@vobs/reactivity": "1.1
|
|
42
|
+
"@vobs/reactivity": "1.2.1"
|
|
19
43
|
}
|
|
20
44
|
}
|