forked from Shinonome/dots-hyprland
29 lines
815 B
JavaScript
29 lines
815 B
JavaScript
function trimFileProtocol(str) {
|
|
return str.startsWith("file://") ? str.slice(7) : str;
|
|
}
|
|
|
|
function toPlainObject(qtObj) {
|
|
if (qtObj === null || typeof qtObj !== "object") return qtObj;
|
|
|
|
// Handle arrays
|
|
if (Array.isArray(qtObj)) {
|
|
return qtObj.map(toPlainObject);
|
|
}
|
|
|
|
const result = ({});
|
|
for (let key in qtObj) {
|
|
if (
|
|
typeof qtObj[key] !== "function" &&
|
|
!key.startsWith("objectName") &&
|
|
!key.startsWith("children") &&
|
|
!key.startsWith("object") &&
|
|
!key.startsWith("parent") &&
|
|
!key.startsWith("metaObject") &&
|
|
!key.startsWith("destroyed") &&
|
|
!key.startsWith("reloadableId")
|
|
) {
|
|
result[key] = toPlainObject(qtObj[key]);
|
|
}
|
|
}
|
|
return result;
|
|
} |