This repository has been archived on 2022-03-12. You can view files and clone it, but cannot push or open issues or pull requests.
2021-04-02 02:24:13 +03:00

1 line
5.5 KiB
Plaintext

{"version":3,"file":"Scheme.js","sourceRoot":"","sources":["../../src/ios/Scheme.ts"],"names":[],"mappings":"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","sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { createInfoPlistPlugin } from '../plugins/ios-plugins';\nimport { InfoPlist, URLScheme } from './IosConfig.types';\n\nexport const withScheme = createInfoPlistPlugin(setScheme, 'withScheme');\n\nexport function getScheme(config: { scheme?: string | string[] }): string[] {\n if (Array.isArray(config.scheme)) {\n const validate = (value: any): value is string => {\n return typeof value === 'string';\n };\n return config.scheme.filter<string>(validate);\n } else if (typeof config.scheme === 'string') {\n return [config.scheme];\n }\n return [];\n}\n\nexport function setScheme(\n config: Partial<Pick<ExpoConfig, 'scheme' | 'ios'>>,\n infoPlist: InfoPlist\n): InfoPlist {\n const scheme = [\n ...getScheme(config),\n // @ts-ignore: TODO: ios.scheme is an unreleased -- harder to add to turtle v1.\n ...getScheme(config.ios ?? {}),\n ];\n // Add the bundle identifier to the list of schemes for easier Google auth and parity with Turtle v1.\n if (config.ios?.bundleIdentifier) {\n scheme.push(config.ios.bundleIdentifier);\n }\n if (scheme.length === 0) {\n return infoPlist;\n }\n\n return {\n ...infoPlist,\n CFBundleURLTypes: [{ CFBundleURLSchemes: scheme }],\n };\n}\n\n// TODO: update this to be idempotent!\nexport function appendScheme(scheme: string | null, infoPlist: InfoPlist): InfoPlist {\n if (!scheme) {\n return infoPlist;\n }\n\n const existingSchemes = infoPlist.CFBundleURLTypes;\n\n return {\n ...infoPlist,\n CFBundleURLTypes: [\n ...(existingSchemes ?? []),\n {\n CFBundleURLSchemes: [scheme],\n },\n ],\n };\n}\n\nexport function removeScheme(scheme: string | null, infoPlist: InfoPlist): InfoPlist {\n if (!scheme) {\n return infoPlist;\n }\n\n // No need to remove if we don't have any\n if (!infoPlist.CFBundleURLTypes) {\n return infoPlist;\n }\n\n infoPlist.CFBundleURLTypes = infoPlist.CFBundleURLTypes.map(bundleUrlType => {\n const index = bundleUrlType.CFBundleURLSchemes.indexOf(scheme);\n if (index > -1) {\n bundleUrlType.CFBundleURLSchemes.splice(index, 1);\n if (bundleUrlType.CFBundleURLSchemes.length === 0) {\n return undefined;\n }\n }\n return bundleUrlType;\n }).filter(Boolean) as URLScheme[];\n\n return infoPlist;\n}\n\nexport function hasScheme(scheme: string, infoPlist: InfoPlist): boolean {\n const existingSchemes = infoPlist.CFBundleURLTypes;\n\n if (!Array.isArray(existingSchemes)) return false;\n\n return existingSchemes.some(({ CFBundleURLSchemes: schemes }: any) => schemes.includes(scheme));\n}\n\nexport function getSchemesFromPlist(infoPlist: InfoPlist): string[] {\n if (Array.isArray(infoPlist.CFBundleURLTypes)) {\n return infoPlist.CFBundleURLTypes.reduce<string[]>((schemes, { CFBundleURLSchemes }) => {\n if (Array.isArray(CFBundleURLSchemes)) {\n return [...schemes, ...CFBundleURLSchemes];\n }\n return schemes;\n }, []);\n }\n return [];\n}\n"]}