$62 GRAYBYTE WORDPRESS FILE MANAGER $46

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 104.21.43.35 | ADMIN IP 216.73.216.157
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : mail

/home/bravrvjk/dantho.rw/wp-content/plugins/extendify/src/Launch/lib/

HOME
Current File : /home/bravrvjk/dantho.rw/wp-content/plugins/extendify/src/Launch/lib//fonts-helpers.js
import { sleep } from '@shared/lib/utils';

const MAX_RETRIES = 2;
const RETRY_DELAY = 1000; // 1 second in milliseconds

export const fetchFontFaceFile = async (url) => {
	for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {
		try {
			// Add delay if this is not the first attempt
			if (attempt > 0) await sleep(RETRY_DELAY);

			const response = await fetch(url);

			if (!response.ok) {
				throw new Error('Failed to fetch font file.');
			}

			const blob = await response.blob();
			const filename = url.split('/').pop();

			return new File([blob], filename, {
				type: blob.type,
			});
		} catch (_) {
			if (attempt <= MAX_RETRIES) continue;

			console.error(
				`Failed to fetch font file after ${MAX_RETRIES + 1} attempts.`,
			);

			return;
		}
	}
};

export function makeFontFamilyFormData({ name, slug, fontFamily }) {
	const formData = new FormData();
	const fontFamilySettings = { name, slug, fontFamily };
	formData.append('font_family_settings', JSON.stringify(fontFamilySettings));

	return formData;
}

export function makeFontFaceFormData({
	fontFamilySlug,
	fontFamily,
	fontStyle,
	fontWeight,
	fontDisplay,
	unicodeRange,
	src = [],
	file = [],
}) {
	const formData = new FormData();
	const fontFaceSettings = {
		fontFamily,
		fontStyle,
		fontWeight,
		fontDisplay,
		unicodeRange:
			unicodeRange === undefined || unicodeRange === null ? '' : unicodeRange,
		src: Array.isArray(src) ? src : [src],
	};
	const files = Array.isArray(file) ? file : [file];

	// Add each font file to the form data.
	files.forEach((file) => {
		const fileId = `${fontFamilySlug}-${fontWeight}-${fontStyle}`;
		formData.append(fileId, file, file.name);

		// Use the file ids as src for WP to match and upload the files.
		if (!src?.length) {
			fontFaceSettings.src.push(fileId);
		} else {
			fontFaceSettings.src = [fileId];
		}
	});

	formData.append('font_face_settings', JSON.stringify(fontFaceSettings));

	return formData;
}


Current_dir [ WRITEABLE ] Document_root [ NOT WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
6 Nov 2025 10.43 AM
bravrvjk / bravrvjk
0755
__tests__
--
6 Nov 2025 10.43 AM
bravrvjk / bravrvjk
0755
blocks.js
0.15 KB
27 Aug 2025 5.47 PM
bravrvjk / bravrvjk
0644
fonts-helpers.js
1.906 KB
4 Aug 2025 7.41 PM
bravrvjk / bravrvjk
0644
linkPages.js
6.398 KB
12 May 2025 4.42 PM
bravrvjk / bravrvjk
0644
logo.js
1.3 KB
12 May 2025 4.42 PM
bravrvjk / bravrvjk
0644
pages.js
2.228 KB
16 Jul 2025 7.39 PM
bravrvjk / bravrvjk
0644
preview-helpers.js
1.598 KB
4 Feb 2025 12.18 AM
bravrvjk / bravrvjk
0644
util.js
1.805 KB
12 May 2025 4.42 PM
bravrvjk / bravrvjk
0644
wp.js
10.427 KB
15 Sep 2025 11.30 PM
bravrvjk / bravrvjk
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF