wip fix coding local

This commit is contained in:
Rizky 2024-02-03 17:47:21 +07:00
parent d99ddba502
commit 2a5e0164a4
2 changed files with 39 additions and 1 deletions

View File

@ -139,6 +139,39 @@ export const EdScriptMonaco: FC<{}> = () => {
break;
case "prop-instance":
{
let parent_meta = null;
const parent_id = meta.parent?.id;
if (parent_id) {
if (active.comp_id) {
parent_meta =
p.comp.list[active.comp_id].meta[parent_id];
} else {
parent_meta = p.page.meta[parent_id];
}
}
if (parent_meta) {
const scope = declareScope(p, parent_meta, monaco);
for (const [k, v] of Object.entries(scope.exports)) {
addScope(p, monaco, `file:///${k}`, v);
}
addScope(
p,
monaco,
`file:///prop-global.d.ts`,
`\
${Object.entries(scope.vars).map(([var_name, var_from]) => {
return `import {${var_name} as ___${var_name}} from "./${var_from}"`;
})}
declare global {
${Object.entries(scope.vars).map(([var_name]) => {
return `const ${var_name} = ___${var_name}`;
})}
}
`
);
}
const nmodel = monaco.editor.createModel(
val,
"typescript",

View File

@ -7,6 +7,7 @@ type Monaco = Parameters<OnMount>[1];
export type MonacoEditor = Parameters<OnMount>[0];
export const declareScope = (p: PG, meta: IMeta, monaco: Monaco) => {
const vars: Record<string, string> = {};
const metas = active.comp_id
? p.comp.list[active.comp_id]?.meta
: p.page.meta;
@ -59,6 +60,10 @@ export const declareScope = (p: PG, meta: IMeta, monaco: Monaco) => {
const ${k}__local = ${v.val};
export const ${k}: typeof ${k}__local & { render: ()=>void } = ${k}__local as any;`;
}
if (src) {
vars[k] = `${m.item.id}_${k}_${v.type}`;
}
exports[`${m.item.id}_${k}_${v.type}.tsx`] = src;
}
}
@ -91,7 +96,7 @@ export const declareScope = (p: PG, meta: IMeta, monaco: Monaco) => {
prev_m = m;
}
return { exports, imports };
return { exports, imports, vars };
};
const map_childs = (