Skip to content

Commit 5c710c5

Browse files
committed
fix: enhance path handling in initElements and improve data assignment logic in setData
1 parent 03ba778 commit 5c710c5

2 files changed

Lines changed: 35 additions & 7 deletions

File tree

src/fetchSrc.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,18 @@ async function initElements(elements) {
4141

4242
let text = await response.text();
4343
if (text) {
44+
let path = "";
4445
let pathElement = element.closest("[path]");
4546
if (pathElement) {
46-
let path =
47-
pathElement.getAttribute("path") || getPath();
48-
if (path) {
49-
text = text.replaceAll(/\$relativePath\/?/g, path);
50-
}
47+
path = pathElement.getAttribute("path") || getPath();
48+
} else {
49+
path = getPath();
5150
}
52-
51+
// Replace $relativePath in the fetched text
52+
if (path) {
53+
text = text.replaceAll(/\$relativePath\/?/g, path);
54+
}
55+
// Replace ObjectId() with a new ObjectId
5356
text = text.replaceAll("ObjectId()", () => {
5457
// Generate a NEW ObjectId inside the function
5558
return ObjectId().toString(); // Return its string representation

src/index.js

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,10 @@ async function setData(element, data) {
400400
if (action && ["database", "array", "object", "key"].includes(action))
401401
continue;
402402

403+
if (data.array.includes("aiConversations")) {
404+
console.log("testing ai conversations");
405+
}
406+
403407
const { key, isRead, isUpdate, isListen, isCrdt } = getAttributes(el);
404408
let elementType = el.getAttribute("type");
405409
if (elementType !== "file" && (el.getFilter || el.renderValue))
@@ -424,6 +428,14 @@ async function setData(element, data) {
424428
if ($update) {
425429
delete data[type][0].$update;
426430
data[type][0] = { ...data[type][0], ...$update };
431+
} else if (key === "$data") {
432+
value = data;
433+
} else if (key.startsWith("$data")) {
434+
value = CRUD.getValueFromObject(data, key.slice(1));
435+
} else if (key === `$${type}`) {
436+
value = data[type];
437+
} else if (key.startsWith(`$${type}`)) {
438+
value = CRUD.getValueFromObject(data, key.slice(1));
427439
} else if (key === "{}") {
428440
value = data[type][0];
429441
if (reference === "false") {
@@ -548,8 +560,21 @@ async function filterData(element, data, type, key) {
548560
key.replace(/\.\$length$/, "")
549561
);
550562
element.setValue(value.length);
563+
} else if (key === "$data") {
564+
value = data;
565+
} else if (key.startsWith("$data")) {
566+
value = CRUD.getValueFromObject(data, key.slice(1));
567+
} else if (key === `$${type}`) {
568+
value = data[type];
569+
} else if (key.startsWith(`$${type}`)) {
570+
value = CRUD.getValueFromObject(data, key.slice(1));
551571
} else if (key === "{}") {
552-
element.setValue(data[type]);
572+
value = data[type][0];
573+
// if (reference === "false") {
574+
// delete data[type][0].$storage;
575+
// delete data[type][0].$database;
576+
// delete data[type][0].$array;
577+
// }
553578
} else if (data) element.setValue(data);
554579

555580
if (data.$filter) {

0 commit comments

Comments
 (0)