gradio

Форк
0
/
component_loader.js 
55 строк · 1.2 Кб
1
// @ts-nocheck
2

3
export async function load_component({ api_url, name, id, variant }) {
4
	const comps = window.__GRADIO__CC__;
5

6
	const _component_map = {
7
		// eslint-disable-next-line no-undef
8
		...component_map,
9
		...(!comps ? {} : comps)
10
	};
11

12
	try {
13
		const c = await (
14
			_component_map?.[id]?.[variant] || // for dev mode custom components
15
			_component_map?.[name]?.[variant]
16
		)();
17
		return {
18
			name,
19
			component: c
20
		};
21
	} catch (e) {
22
		console.error(e);
23
		try {
24
			await load_css(`${api_url}/custom_component/${id}/${variant}/style.css`);
25
			const c = await import(
26
				/* @vite-ignore */ `${api_url}/custom_component/${id}/${variant}/index.js`
27
			);
28
			return {
29
				name,
30
				component: c
31
			};
32
		} catch (e) {
33
			if (variant === "example") {
34
				return {
35
					name,
36
					component: await import("@gradio/fallback/example")
37
				};
38
			}
39
			console.error(`failed to load: ${name}`);
40
			console.error(e);
41
			throw e;
42
		}
43
	}
44
}
45

46
function load_css(url) {
47
	return new Promise((resolve, reject) => {
48
		const link = document.createElement("link");
49
		link.rel = "stylesheet";
50
		link.href = url;
51
		document.head.appendChild(link);
52
		link.onload = () => resolve();
53
		link.onerror = () => reject();
54
	});
55
}
56

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.