PHP 8.2.31
Preview: patterns.js Size: 1.56 KB
/home/nshryvcy/radiantskinclinics.org/wp-content/plugins/extendify_old/src/AutoLaunch/functions/patterns.js

import { AI_HOST } from '@constants';
import { reqDataBasics } from '@shared/lib/data';
import { retryTwice } from './helpers';

const generatePatterns = async (page, data) => {
	const { siteProfile } = data;
	return await retryTwice(async () => {
		const response = await fetch(`${AI_HOST}/api/patterns`, {
			method: 'POST',
			headers: { 'Content-Type': 'application/json' },
			body: JSON.stringify({ ...reqDataBasics, siteProfile, page }),
		});
		if (!response.ok) {
			throw new Error(
				`Pattern generation failed with status ${response.status}`,
			);
		}
		return await response.json();
	});
};

// Hold back patterns that already have finalized content (e.g. design build)
const splitGeneratedContent = (page) => {
	const generated = page.patterns?.filter((p) => p.contentGenerated) ?? [];
	const rest = page.patterns?.filter((p) => !p.contentGenerated) ?? [];
	return { generated, toGenerate: { ...page, patterns: rest } };
};

export const generatePageContent = async (pages, data) => {
	const splits = pages.map(splitGeneratedContent);

	const result = await Promise.allSettled(
		splits.map(
			({ toGenerate }) =>
				generatePatterns(toGenerate, data)
					.then((response) => response)
					.catch(() => toGenerate), // safe fallback
		),
	);

	return result?.map((pageResult, i) => {
		const original = pages[i];
		const { generated } = splits[i];
		const merged =
			pageResult.status === 'fulfilled' && pageResult.value
				? { ...original, ...pageResult.value }
				: original;
		return {
			...merged,
			patterns: [...generated, ...(merged.patterns ?? [])],
		};
	});
};

Directory Contents

Dirs: 0 × Files: 12

Name Size Perms Modified Actions
5.47 KB lrw-r--r-- 2026-02-27 04:48:52
Edit Download
1.61 KB lrw-r--r-- 2026-03-05 22:57:38
Edit Download
1.74 KB lrw-r--r-- 2026-04-16 23:02:08
Edit Download
6.91 KB lrw-r--r-- 2026-03-19 23:35:18
Edit Download
6.82 KB lrw-r--r-- 2026-04-27 23:36:32
Edit Download
7.32 KB lrw-r--r-- 2026-04-27 23:36:32
Edit Download
1.56 KB lrw-r--r-- 2026-04-27 23:36:32
Edit Download
3.18 KB lrw-r--r-- 2026-04-16 23:02:08
Edit Download
299 B lrw-r--r-- 2026-02-27 04:48:52
Edit Download
1.72 KB lrw-r--r-- 2026-02-27 04:48:52
Edit Download
1.96 KB lrw-r--r-- 2026-04-09 23:45:00
Edit Download
6.38 KB lrw-r--r-- 2026-04-09 23:45:00
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).