Compare commits

...

2 Commits

Author SHA1 Message Date
1b05af09fb Fixed templates
All checks were successful
Build / Publish Docs (push) Successful in 58s
Build / Build NPM Project (push) Successful in 1m15s
Build / Tag Version (push) Successful in 11s
2025-12-06 21:51:47 -05:00
32c61fff42 Fixed templates
All checks were successful
Build / Publish Docs (push) Successful in 1m14s
Build / Build NPM Project (push) Successful in 1m38s
Build / Tag Version (push) Successful in 11s
2025-12-06 21:34:21 -05:00
2 changed files with 3 additions and 3 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "@ztimson/utils",
"version": "0.27.17",
"version": "0.27.19",
"description": "Utility library",
"author": "Zak Timson",
"license": "MIT",

View File

@@ -24,7 +24,7 @@ export async function renderTemplate(template: string, data: any, fetch?: (file:
const evaluate = (code: string, data: object, fatal = true) => {
try {
return Function('data', `Object.assign(this, data); return ${code};`)(data);
return Function('data', `with(data) { return ${code}; }`)(data);
} catch {
if(fatal) throw new TemplateError(`Failed to evaluate: ${code}`);
else return false;
@@ -71,7 +71,7 @@ export async function renderTemplate(template: string, data: any, fetch?: (file:
// Extends: `{{ > file.html:property }} CONTENT {{ /> }}`
while(!!(found = /\{\{\s*?>\s*?(.+?):(.+?)\s*?}}([\s\S]*?)\{\{\s*?\/>\s*?}}/g.exec(content))) {
content = content.replace(found[0], await renderTemplate(await fetch(found[1].trim), {
content = content.replace(found[0], await renderTemplate(await fetch(found[1].trim()), {
...data,
[found[2].trim()]: found[3],
}, fetch));