@lynx-js/web-core-server 0.14.0 → 0.14.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/CHANGELOG.md +8 -0
- package/dist/createLynxView.js +2 -0
- package/dist/utils/loadTemplate.js +3 -102
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @lynx-js/web-core-server
|
|
2
2
|
|
|
3
|
+
## 0.14.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- chore: extract shared logic from web-core and web-core-server's loadTemplate into a unified generateTemplate function ([#1211](https://github.com/lynx-family/lynx-stack/pull/1211))
|
|
8
|
+
|
|
9
|
+
## 0.14.1
|
|
10
|
+
|
|
3
11
|
## 0.14.0
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
package/dist/createLynxView.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { generateTemplate } from '@lynx-js/web-constants';
|
|
2
2
|
import os from 'node:os';
|
|
3
3
|
import fs from 'node:fs/promises';
|
|
4
4
|
import path from 'node:path';
|
|
@@ -12,112 +12,13 @@ async function createJsModuleUrl(content, filename) {
|
|
|
12
12
|
await fs.writeFile(fileUrl, content, { flag: 'w+' });
|
|
13
13
|
return fileUrl;
|
|
14
14
|
}
|
|
15
|
-
async function generateJavascriptUrl(obj, injectVars, injectWithBind, muteableVars, templateName) {
|
|
16
|
-
injectVars = injectVars.concat(muteableVars);
|
|
17
|
-
return Object.fromEntries(await Promise.all(Object.entries(obj).map(async ([name, content]) => {
|
|
18
|
-
return [
|
|
19
|
-
name,
|
|
20
|
-
await createJsModuleUrl([
|
|
21
|
-
'//# allFunctionsCalledOnLoad\n',
|
|
22
|
-
'globalThis.module.exports = function(lynx_runtime) {',
|
|
23
|
-
'const module= {exports:{}};let exports = module.exports;',
|
|
24
|
-
'var {',
|
|
25
|
-
injectVars.join(','),
|
|
26
|
-
'} = lynx_runtime;',
|
|
27
|
-
...injectWithBind.map((nm) => `const ${nm} = lynx_runtime.${nm}?.bind(lynx_runtime);`),
|
|
28
|
-
';var globDynamicComponentEntry = \'__Card__\';',
|
|
29
|
-
'var {__globalProps} = lynx;',
|
|
30
|
-
'lynx_runtime._updateVars=()=>{',
|
|
31
|
-
...muteableVars.map((nm) => `${nm} = lynx_runtime.__lynxGlobalBindingValues.${nm};`),
|
|
32
|
-
'};\n',
|
|
33
|
-
content,
|
|
34
|
-
'\n return module.exports;}',
|
|
35
|
-
].join(''), `${templateName}-${name.replaceAll('/', '')}.js`),
|
|
36
|
-
];
|
|
37
|
-
})));
|
|
38
|
-
}
|
|
39
|
-
const mainThreadInjectVars = [
|
|
40
|
-
'lynx',
|
|
41
|
-
'globalThis',
|
|
42
|
-
'_ReportError',
|
|
43
|
-
'_SetSourceMapRelease',
|
|
44
|
-
'__AddConfig',
|
|
45
|
-
'__AddDataset',
|
|
46
|
-
'__GetAttributes',
|
|
47
|
-
'__GetComponentID',
|
|
48
|
-
'__GetDataByKey',
|
|
49
|
-
'__GetDataset',
|
|
50
|
-
'__GetElementConfig',
|
|
51
|
-
'__GetElementUniqueID',
|
|
52
|
-
'__GetID',
|
|
53
|
-
'__GetTag',
|
|
54
|
-
'__SetAttribute',
|
|
55
|
-
'__SetConfig',
|
|
56
|
-
'__SetDataset',
|
|
57
|
-
'__SetID',
|
|
58
|
-
'__UpdateComponentID',
|
|
59
|
-
'__GetConfig',
|
|
60
|
-
'__UpdateListCallbacks',
|
|
61
|
-
'__AppendElement',
|
|
62
|
-
'__ElementIsEqual',
|
|
63
|
-
'__FirstElement',
|
|
64
|
-
'__GetChildren',
|
|
65
|
-
'__GetParent',
|
|
66
|
-
'__InsertElementBefore',
|
|
67
|
-
'__LastElement',
|
|
68
|
-
'__NextElement',
|
|
69
|
-
'__RemoveElement',
|
|
70
|
-
'__ReplaceElement',
|
|
71
|
-
'__ReplaceElements',
|
|
72
|
-
'__SwapElement',
|
|
73
|
-
'__CreateComponent',
|
|
74
|
-
'__CreateElement',
|
|
75
|
-
'__CreatePage',
|
|
76
|
-
'__CreateView',
|
|
77
|
-
'__CreateText',
|
|
78
|
-
'__CreateRawText',
|
|
79
|
-
'__CreateImage',
|
|
80
|
-
'__CreateScrollView',
|
|
81
|
-
'__CreateWrapperElement',
|
|
82
|
-
'__CreateList',
|
|
83
|
-
'__AddEvent',
|
|
84
|
-
'__GetEvent',
|
|
85
|
-
'__GetEvents',
|
|
86
|
-
'__SetEvents',
|
|
87
|
-
'__AddClass',
|
|
88
|
-
'__SetClasses',
|
|
89
|
-
'__GetClasses',
|
|
90
|
-
'__AddInlineStyle',
|
|
91
|
-
'__SetInlineStyles',
|
|
92
|
-
'__SetCSSId',
|
|
93
|
-
'__OnLifecycleEvent',
|
|
94
|
-
'__FlushElementTree',
|
|
95
|
-
'__LoadLepusChunk',
|
|
96
|
-
'SystemInfo',
|
|
97
|
-
'_I18nResourceTranslation',
|
|
98
|
-
'_AddEventListener',
|
|
99
|
-
];
|
|
100
|
-
const backgroundInjectVars = [
|
|
101
|
-
'NativeModules',
|
|
102
|
-
'globalThis',
|
|
103
|
-
'lynx',
|
|
104
|
-
'lynxCoreInject',
|
|
105
|
-
'SystemInfo',
|
|
106
|
-
];
|
|
107
|
-
const backgroundInjectWithBind = [
|
|
108
|
-
'Card',
|
|
109
|
-
'Component',
|
|
110
|
-
];
|
|
111
15
|
export async function loadTemplate(rawTemplate, templateName = Math.random().toString(36).substring(2, 7)) {
|
|
112
16
|
if (templateCache.has(rawTemplate)) {
|
|
113
17
|
return templateCache.get(rawTemplate);
|
|
114
18
|
}
|
|
115
19
|
templateName += Math.random().toString(36).substring(2, 7);
|
|
116
|
-
const decodedTemplate = templateCache.get(rawTemplate)
|
|
117
|
-
|
|
118
|
-
lepusCode: await generateJavascriptUrl(rawTemplate.lepusCode, mainThreadInjectVars, [], globalMuteableVars, templateName + '-lepusCode'),
|
|
119
|
-
manifest: await generateJavascriptUrl(rawTemplate.manifest, backgroundInjectVars, backgroundInjectWithBind, [], templateName + '-manifest'),
|
|
120
|
-
};
|
|
20
|
+
const decodedTemplate = templateCache.get(rawTemplate)
|
|
21
|
+
?? await generateTemplate(rawTemplate, createJsModuleUrl, templateName + '-lepusCode');
|
|
121
22
|
templateCache.set(rawTemplate, decodedTemplate);
|
|
122
23
|
/**
|
|
123
24
|
* This will cause a memory leak, which is expected.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lynx-js/web-core-server",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "",
|
|
6
6
|
"keywords": [],
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
],
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@lynx-js/offscreen-document": "0.1.2",
|
|
26
|
-
"@lynx-js/web-constants": "0.14.
|
|
27
|
-
"@lynx-js/web-elements-template": "0.7.
|
|
28
|
-
"@lynx-js/web-mainthread-apis": "0.14.
|
|
29
|
-
"@lynx-js/web-worker-rpc": "0.14.
|
|
26
|
+
"@lynx-js/web-constants": "0.14.2",
|
|
27
|
+
"@lynx-js/web-elements-template": "0.7.7",
|
|
28
|
+
"@lynx-js/web-mainthread-apis": "0.14.2",
|
|
29
|
+
"@lynx-js/web-worker-rpc": "0.14.2"
|
|
30
30
|
}
|
|
31
31
|
}
|