1{"version":3,"file":"createLegacyPlugin.js","names":["toCamelCase","s","replace","x","toUpperCase","isModuleExcluded","config","packageName","_internal","autolinkedModules","includes","createLegacyPlugin","fallback","withFallback","Array","isArray","withPlugins","withUnknown","createRunOncePlugin","withStaticPlugin","_isLegacyPlugin","plugin","methodName","Object","defineProperty","value"],"sources":["../../../src/plugins/unversioned/createLegacyPlugin.ts"],"sourcesContent":["import {\n  ConfigPlugin,\n  createRunOncePlugin,\n  PluginParameters,\n  withPlugins,\n  withStaticPlugin,\n} from '@expo/config-plugins';\nimport { ExpoConfig } from '@expo/config-types';\n\nconst toCamelCase = (s: string) => s.replace(/-./g, (x) => x.toUpperCase()[1]);\n\nfunction isModuleExcluded(config: Pick<ExpoConfig, '_internal'>, packageName: string): boolean {\n  // Skip using the versioned plugin when autolinking is enabled\n  // and doesn't link the native module.\n  return (\n    config._internal?.autolinkedModules && !config._internal.autolinkedModules.includes(packageName)\n  );\n}\n\nexport function createLegacyPlugin({\n  packageName,\n  fallback,\n}: {\n  packageName: string;\n  fallback: ConfigPlugin | PluginParameters<typeof withPlugins>;\n}): ConfigPlugin {\n  let withFallback: ConfigPlugin;\n\n  if (Array.isArray(fallback)) {\n    withFallback = (config) => withPlugins(config, fallback);\n  } else {\n    withFallback = fallback;\n  }\n\n  const withUnknown: ConfigPlugin = (config) => {\n    // Skip using the versioned plugin when autolinking is enabled\n    // and doesn't link the native module.\n    if (isModuleExcluded(config, packageName)) {\n      return createRunOncePlugin(withFallback, packageName)(config);\n    }\n\n    return withStaticPlugin(config, {\n      _isLegacyPlugin: true,\n      plugin: packageName,\n      // If the static plugin isn't found, use the unversioned one.\n      fallback: createRunOncePlugin(withFallback, packageName),\n    });\n  };\n\n  const methodName = toCamelCase(`with-${packageName}`);\n  Object.defineProperty(withUnknown, 'name', {\n    value: methodName,\n  });\n\n  return withUnknown;\n}\n"],"mappings":";;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AASA,MAAMA,WAAW,GAAIC,CAAD,IAAeA,CAAC,CAACC,OAAF,CAAU,KAAV,EAAkBC,CAAD,IAAOA,CAAC,CAACC,WAAF,GAAgB,CAAhB,CAAxB,CAAnC;;AAEA,SAASC,gBAAT,CAA0BC,MAA1B,EAAiEC,WAAjE,EAA+F;EAAA;;EAC7F;EACA;EACA,OACE,sBAAAD,MAAM,CAACE,SAAP,wEAAkBC,iBAAlB,KAAuC,CAACH,MAAM,CAACE,SAAP,CAAiBC,iBAAjB,CAAmCC,QAAnC,CAA4CH,WAA5C,CAD1C;AAGD;;AAEM,SAASI,kBAAT,CAA4B;EACjCJ,WADiC;EAEjCK;AAFiC,CAA5B,EAMU;EACf,IAAIC,YAAJ;;EAEA,IAAIC,KAAK,CAACC,OAAN,CAAcH,QAAd,CAAJ,EAA6B;IAC3BC,YAAY,GAAIP,MAAD,IAAY,IAAAU,4BAAA,EAAYV,MAAZ,EAAoBM,QAApB,CAA3B;EACD,CAFD,MAEO;IACLC,YAAY,GAAGD,QAAf;EACD;;EAED,MAAMK,WAAyB,GAAIX,MAAD,IAAY;IAC5C;IACA;IACA,IAAID,gBAAgB,CAACC,MAAD,EAASC,WAAT,CAApB,EAA2C;MACzC,OAAO,IAAAW,oCAAA,EAAoBL,YAApB,EAAkCN,WAAlC,EAA+CD,MAA/C,CAAP;IACD;;IAED,OAAO,IAAAa,iCAAA,EAAiBb,MAAjB,EAAyB;MAC9Bc,eAAe,EAAE,IADa;MAE9BC,MAAM,EAAEd,WAFsB;MAG9B;MACAK,QAAQ,EAAE,IAAAM,oCAAA,EAAoBL,YAApB,EAAkCN,WAAlC;IAJoB,CAAzB,CAAP;EAMD,CAbD;;EAeA,MAAMe,UAAU,GAAGtB,WAAW,CAAE,QAAOO,WAAY,EAArB,CAA9B;EACAgB,MAAM,CAACC,cAAP,CAAsBP,WAAtB,EAAmC,MAAnC,EAA2C;IACzCQ,KAAK,EAAEH;EADkC,CAA3C;EAIA,OAAOL,WAAP;AACD"}