mirror of
https://github.com/Azornes/Comfyui-LayerForge.git
synced 2026-03-22 05:02:11 -03:00
62 lines
1.9 KiB
TypeScript
62 lines
1.9 KiB
TypeScript
// @ts-ignore
|
|
import { $el } from "../../../scripts/ui.js";
|
|
import { createModuleLogger } from "./LoggerUtils.js";
|
|
import { withErrorHandling, createValidationError, createNetworkError } from "../ErrorHandler.js";
|
|
|
|
const log = createModuleLogger('ResourceManager');
|
|
|
|
export const addStylesheet = withErrorHandling(function(url: string): void {
|
|
if (!url) {
|
|
throw createValidationError("URL is required", { url });
|
|
}
|
|
|
|
log.debug('Adding stylesheet:', { url });
|
|
|
|
if (url.endsWith(".js")) {
|
|
url = url.substr(0, url.length - 2) + "css";
|
|
}
|
|
$el("link", {
|
|
parent: document.head,
|
|
rel: "stylesheet",
|
|
type: "text/css",
|
|
href: url.startsWith("http") ? url : getUrl(url),
|
|
});
|
|
|
|
log.debug('Stylesheet added successfully:', { finalUrl: url });
|
|
}, 'addStylesheet');
|
|
|
|
export function getUrl(path: string, baseUrl?: string | URL): string {
|
|
if (!path) {
|
|
throw createValidationError("Path is required", { path });
|
|
}
|
|
|
|
if (baseUrl) {
|
|
return new URL(path, baseUrl).toString();
|
|
} else {
|
|
// @ts-ignore
|
|
return new URL("../" + path, import.meta.url).toString();
|
|
}
|
|
}
|
|
|
|
export const loadTemplate = withErrorHandling(async function(path: string, baseUrl?: string | URL): Promise<string> {
|
|
if (!path) {
|
|
throw createValidationError("Path is required", { path });
|
|
}
|
|
|
|
const url = getUrl(path, baseUrl);
|
|
log.debug('Loading template:', { path, url });
|
|
|
|
const response = await fetch(url);
|
|
if (!response.ok) {
|
|
throw createNetworkError(`Failed to load template: ${url}`, {
|
|
url,
|
|
status: response.status,
|
|
statusText: response.statusText
|
|
});
|
|
}
|
|
|
|
const content = await response.text();
|
|
log.debug('Template loaded successfully:', { path, contentLength: content.length });
|
|
return content;
|
|
}, 'loadTemplate');
|