UNPKG

shipthis

Version:

ShipThis manages building and uploading your Godot games to the App Store and Google Play.

65 lines (62 loc) 2.14 kB
import { useQuery } from '@tanstack/react-query'; import { e as BundleId, q as getGodotProjectCapabilities, P as Platform, G as GODOT_CAPABILITIES, r as CapabilityType } from './index-BwnzoldS.js'; async function getBundleIdCapabilities(bundleId) { const current = await bundleId.getBundleIdCapabilitiesAsync(); const existing = []; for (const capability of current) { const capabilityType = Object.values(CapabilityType).find((c) => capability.isType(c)); if (capabilityType) { existing.push(capabilityType); } } return existing; } const fetchBundleId = async ({ ctx, iosBundleId }) => { const empty = { bundleId: null, bundleIdSummary: null, capabilities: null, capabilitiesTable: null, projectCapabilities: null, shouldSyncCapabilities: null }; if (!iosBundleId) return empty; const bundleId = await BundleId.findAsync(ctx, { identifier: iosBundleId }); if (!bundleId) return empty; const bundleIdCapabilities = await getBundleIdCapabilities(bundleId); const projectCapabilities = getGodotProjectCapabilities(Platform.IOS); const capabilitiesTable = GODOT_CAPABILITIES.map((gc) => { const isEnabledInBundle = bundleIdCapabilities.includes(gc.type); const isEnabledInProject = projectCapabilities.includes(gc.type); const isCorrectlyConfigured = isEnabledInBundle === isEnabledInProject; return { isCorrectlyConfigured, isEnabledInBundle, isEnabledInProject, name: gc.name }; }); return { bundleId, bundleIdSummary: { id: bundleId.id, identifier: bundleId.attributes.identifier, name: bundleId.attributes.name, platform: bundleId.attributes.platform }, capabilities: bundleIdCapabilities, capabilitiesTable, projectCapabilities, shouldSyncCapabilities: !capabilitiesTable.every((c) => c.isCorrectlyConfigured) }; }; const useAppleBundleId = (props) => { const queryResult = useQuery({ queryFn: () => fetchBundleId(props), queryKey: ["appleBundleId", props.iosBundleId] }); return queryResult; }; export { fetchBundleId as f, useAppleBundleId as u };