Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
extendify
/
src
/
AutoLaunch
/
fetchers
:
get-plugins.js
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
import { getPluginsShape, pluginShape } from '@auto-launch/fetchers/shape'; import { failWithFallback, fetchWithTimeout, retryTwice, setStatus, } from '@auto-launch/functions/helpers'; import { AI_HOST } from '@constants'; import { digest } from '@shared/api/digest'; import { reqDataBasics } from '@shared/lib/data'; import { __ } from '@wordpress/i18n'; import { z } from 'zod'; const { pluginGroupId } = window.extSharedData; const fallback = { sitePlugins: [] }; const url = `${AI_HOST}/api/site-plugins`; const method = 'POST'; const headers = { 'Content-Type': 'application/json' }; const shapeLocal = z.object({ selectedPlugins: z.array(pluginShape), }); export const handleSitePlugins = async ({ siteProfile = {}, requiredOnly = false, showStatus = true, }) => { if (showStatus) { // translators: this is for a action log UI. Keep it short setStatus(__('Setting up site functionality', 'extendify-local')); } const body = JSON.stringify({ ...reqDataBasics, ...siteProfile, siteProfile, siteObjective: siteProfile.objective, pluginGroupId, requiredOnly, }); const response = await retryTwice(() => fetchWithTimeout(url, { method, headers, body }), ).catch((error) => { return { ok: false, statusText: error.message, status: 0 }; }); if (!response?.ok) { digest({ error: { message: response.statusText, name: 'FetchError', status: response.status, }, details: { source: 'auto-launch', caller: 'handleSitePlugins' }, }); return fallback; } const { selectedPlugins } = await failWithFallback( async () => shapeLocal.parse(await response.json()), fallback, { caller: 'handleSitePlugins' }, ); return getPluginsShape.parse({ sitePlugins: selectedPlugins }); };