wip fix
This commit is contained in:
parent
b16ec11e8a
commit
b2da440031
|
|
@ -17,7 +17,16 @@ export const declareScope = (p: PG, meta: IMeta, monaco: Monaco) => {
|
||||||
|
|
||||||
const paths: IMeta[][] = [];
|
const paths: IMeta[][] = [];
|
||||||
|
|
||||||
map_childs(p, metas, entry, paths, active.comp_id ? [active.comp_id] : []);
|
const jsxprop_import_map: Record<string, string> = {};
|
||||||
|
map_childs(
|
||||||
|
monaco,
|
||||||
|
p,
|
||||||
|
metas,
|
||||||
|
entry,
|
||||||
|
paths,
|
||||||
|
active.comp_id ? [active.comp_id] : [],
|
||||||
|
jsxprop_import_map
|
||||||
|
);
|
||||||
|
|
||||||
let cur = active.comp_id ? active.comp_id : "page";
|
let cur = active.comp_id ? active.comp_id : "page";
|
||||||
const { import_map, parent_id } = extract_import_map(
|
const { import_map, parent_id } = extract_import_map(
|
||||||
|
|
@ -28,8 +37,13 @@ export const declareScope = (p: PG, meta: IMeta, monaco: Monaco) => {
|
||||||
monaco
|
monaco
|
||||||
);
|
);
|
||||||
|
|
||||||
gen_content(cur, p, paths, import_map, monaco);
|
const merged_import_map = {
|
||||||
return import_map[parent_id];
|
...import_map,
|
||||||
|
...jsxprop_import_map,
|
||||||
|
};
|
||||||
|
|
||||||
|
gen_content(cur, p, paths, merged_import_map, monaco);
|
||||||
|
return merged_import_map[parent_id];
|
||||||
};
|
};
|
||||||
|
|
||||||
const gen_content = (
|
const gen_content = (
|
||||||
|
|
@ -46,6 +60,7 @@ const gen_content = (
|
||||||
for (const m of path) {
|
for (const m of path) {
|
||||||
if (!added.has(m.item.id) && m.item.adv?.js) {
|
if (!added.has(m.item.id) && m.item.adv?.js) {
|
||||||
added.add(m.item.id);
|
added.add(m.item.id);
|
||||||
|
|
||||||
const content = last_import
|
const content = last_import
|
||||||
? `\
|
? `\
|
||||||
${last_import}
|
${last_import}
|
||||||
|
|
@ -73,7 +88,7 @@ const extract_import_map = (
|
||||||
paths: IMeta[][],
|
paths: IMeta[][],
|
||||||
meta: IMeta,
|
meta: IMeta,
|
||||||
p: PG,
|
p: PG,
|
||||||
monaco: Monaco
|
monaco?: Monaco
|
||||||
) => {
|
) => {
|
||||||
const added = new Set<string>();
|
const added = new Set<string>();
|
||||||
let parent_id = "";
|
let parent_id = "";
|
||||||
|
|
@ -103,7 +118,7 @@ export const ${k}: typeof _local & { render: ()=>void } = _local;
|
||||||
} else {
|
} else {
|
||||||
src = `export const ${k} = ${v.val}`;
|
src = `export const ${k} = ${v.val}`;
|
||||||
}
|
}
|
||||||
if (src) {
|
if (src && monaco) {
|
||||||
addScope(
|
addScope(
|
||||||
p,
|
p,
|
||||||
monaco,
|
monaco,
|
||||||
|
|
@ -135,17 +150,18 @@ const comp_map = {} as Record<
|
||||||
string,
|
string,
|
||||||
{
|
{
|
||||||
paths: IMeta[][];
|
paths: IMeta[][];
|
||||||
prop_imports: Record<string, string>;
|
|
||||||
exports: Record<string, ReturnType<typeof extractExport>>;
|
exports: Record<string, ReturnType<typeof extractExport>>;
|
||||||
}
|
}
|
||||||
>;
|
>;
|
||||||
|
|
||||||
const map_childs = (
|
const map_childs = (
|
||||||
|
monaco: Monaco,
|
||||||
p: PG,
|
p: PG,
|
||||||
metas: Record<string, IMeta>,
|
metas: Record<string, IMeta>,
|
||||||
childs: IContent[],
|
childs: IContent[],
|
||||||
paths: IMeta[][],
|
paths: IMeta[][],
|
||||||
skip_comp_id: string[],
|
skip_comp_id: string[],
|
||||||
|
jsxprop_import_map: Record<string, string> = {},
|
||||||
curpath?: IMeta[]
|
curpath?: IMeta[]
|
||||||
) => {
|
) => {
|
||||||
for (const m of childs) {
|
for (const m of childs) {
|
||||||
|
|
@ -163,7 +179,6 @@ const map_childs = (
|
||||||
const comp_metas = p.comp.list[comp_id].meta;
|
const comp_metas = p.comp.list[comp_id].meta;
|
||||||
comp_map[meta.item.component.id] = {
|
comp_map[meta.item.component.id] = {
|
||||||
paths: [],
|
paths: [],
|
||||||
prop_imports: {},
|
|
||||||
exports: {},
|
exports: {},
|
||||||
};
|
};
|
||||||
const id = p.comp.list[comp_id].doc
|
const id = p.comp.list[comp_id].doc
|
||||||
|
|
@ -173,6 +188,7 @@ const map_childs = (
|
||||||
|
|
||||||
if (id) {
|
if (id) {
|
||||||
map_childs(
|
map_childs(
|
||||||
|
monaco,
|
||||||
p,
|
p,
|
||||||
comp_metas,
|
comp_metas,
|
||||||
[comp_metas[id].item],
|
[comp_metas[id].item],
|
||||||
|
|
@ -200,10 +216,34 @@ const map_childs = (
|
||||||
prop.content &&
|
prop.content &&
|
||||||
prop.jsxCalledBy
|
prop.jsxCalledBy
|
||||||
) {
|
) {
|
||||||
console.log(
|
const mjsx = p.comp.list[comp_id].meta[prop.jsxCalledBy];
|
||||||
name,
|
const { import_map, parent_id } = extract_import_map(
|
||||||
prop.jsxCalledBy,
|
meta.item.component.id,
|
||||||
jprop
|
jprop.paths,
|
||||||
|
mjsx,
|
||||||
|
p,
|
||||||
|
monaco
|
||||||
|
);
|
||||||
|
|
||||||
|
gen_content(
|
||||||
|
meta.item.component.id,
|
||||||
|
p,
|
||||||
|
jprop.paths,
|
||||||
|
import_map,
|
||||||
|
monaco
|
||||||
|
);
|
||||||
|
|
||||||
|
jsxprop_import_map[prop.content.id] = import_map[parent_id];
|
||||||
|
const prop_meta = metas[prop.content.id];
|
||||||
|
map_childs(
|
||||||
|
monaco,
|
||||||
|
p,
|
||||||
|
metas,
|
||||||
|
prop.content.childs,
|
||||||
|
paths,
|
||||||
|
[...skip_comp_id, comp_id],
|
||||||
|
jsxprop_import_map,
|
||||||
|
[...(curpath || []), prop_meta]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -211,11 +251,13 @@ const map_childs = (
|
||||||
} else {
|
} else {
|
||||||
if (Array.isArray(meta.item.childs)) {
|
if (Array.isArray(meta.item.childs)) {
|
||||||
map_childs(
|
map_childs(
|
||||||
|
monaco,
|
||||||
p,
|
p,
|
||||||
metas,
|
metas,
|
||||||
meta.item.childs,
|
meta.item.childs,
|
||||||
paths,
|
paths,
|
||||||
[...skip_comp_id],
|
[...skip_comp_id],
|
||||||
|
jsxprop_import_map,
|
||||||
[...(curpath || []), meta]
|
[...(curpath || []), meta]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue