feat(core): allow nested objects in setup scripts

This commit is contained in:
Ayo 2023-11-10 22:19:51 +01:00
parent 111c53d2fb
commit 6b0e0a46f0
4 changed files with 25 additions and 14 deletions

14
package-lock.json generated
View file

@ -3991,9 +3991,9 @@
}
},
"packages/config/node_modules/@mcflyjs/core": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/@mcflyjs/core/-/core-0.3.0.tgz",
"integrity": "sha512-tcOySS8avvY728XCX7tKrIdYaKOE4TwtUy/BMXS/kcaZaMpl4jQ93T+YKUSEOb2Rdm+lSLwJ12aCIQJRDl2Okg==",
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/@mcflyjs/core/-/core-0.3.1.tgz",
"integrity": "sha512-16yqHjbp+Ms9tvwm1JIUDlH64oEuCe/zT/sJa8kxoMjRNbH2pX3zW0NmjfMT/tIPJiP821/CFyqvFz/MKmDwlg==",
"dependencies": {
"esprima": "^4.0.1",
"h3": "^1.8.2",
@ -4002,7 +4002,7 @@
},
"packages/core": {
"name": "@mcflyjs/core",
"version": "0.3.1",
"version": "0.3.2",
"license": "MIT",
"dependencies": {
"esprima": "^4.0.1",
@ -4066,9 +4066,9 @@
}
},
"templates/basic/node_modules/@mcflyjs/core": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/@mcflyjs/core/-/core-0.3.0.tgz",
"integrity": "sha512-tcOySS8avvY728XCX7tKrIdYaKOE4TwtUy/BMXS/kcaZaMpl4jQ93T+YKUSEOb2Rdm+lSLwJ12aCIQJRDl2Okg==",
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/@mcflyjs/core/-/core-0.3.1.tgz",
"integrity": "sha512-16yqHjbp+Ms9tvwm1JIUDlH64oEuCe/zT/sJa8kxoMjRNbH2pX3zW0NmjfMT/tIPJiP821/CFyqvFz/MKmDwlg==",
"dependencies": {
"esprima": "^4.0.1",
"h3": "^1.8.2",

View file

@ -202,7 +202,17 @@ function doSetUp(html) {
while ((match = regex.exec(html))) {
let [key, value] = match;
value = value.replace(/\s/g, "");
html = html.replace(key, setupMap[value]);
// nested objects
const keys = value.split('.');
let finalValue = '';
let setupCopy = setupMap;
keys.forEach(i => {
finalValue = setupCopy[i]
setupCopy = finalValue;
})
html = html.replace(key, finalValue);
}
return html;

View file

@ -1,6 +1,6 @@
{
"name": "@mcflyjs/core",
"version": "0.3.1",
"version": "0.3.2",
"description": "McFly core package",
"type": "module",
"main": "index.js",

View file

@ -5,10 +5,12 @@
<script src="/prism.js"></script>
<script server:setup>
const name = "Nitro";
let greeting = "hello";
var count = sum(1, 247);
let greeting = {
url: 'https://www.google.com',
message: "hello"
};
greeting = "nope";
var count = sum(1, 247);
function sum(x, y) {
return x + y;
@ -56,8 +58,7 @@
/>
</div>
<code-block language="js">const name = "Nitro"</code-block>
<p>some text: {{greeting}}</p>
{{greeting}} hey<br />
<a href="{{greeting.url}}">some text: {{greeting.message}}</a>
<clickable-text></clickable-text>
</section>
<section id="breakdown">