utils.js.map 4.18 KB
{"version":3,"names":["versionRegExp","v","OptionValidator","semverMin","first","second","semver","lt","semverify","version","valid","invariant","test","split","toString","length","push","join","isUnreleasedVersion","env","unreleasedLabel","unreleasedLabels","toLowerCase","getLowestUnreleased","a","b","getHighestUnreleased","getLowestImplementedVersion","plugin","environment","result","chrome"],"sources":["../src/utils.ts"],"sourcesContent":["import semver from \"semver\";\nimport { OptionValidator } from \"@babel/helper-validator-option\";\nimport { unreleasedLabels } from \"./targets\";\nimport type { Target, Targets } from \"./types\";\n\ndeclare const PACKAGE_JSON: { name: string; version: string };\n\nconst versionRegExp = /^(\\d+|\\d+.\\d+)$/;\n\nconst v = new OptionValidator(PACKAGE_JSON.name);\n\nexport function semverMin(\n  first: string | undefined | null,\n  second: string,\n): string {\n  return first && semver.lt(first, second) ? first : second;\n}\n\n// Convert version to a semver value.\n// 2.5 -> 2.5.0; 1 -> 1.0.0;\nexport function semverify(version: number | string): string {\n  if (typeof version === \"string\" && semver.valid(version)) {\n    return version;\n  }\n\n  v.invariant(\n    typeof version === \"number\" ||\n      (typeof version === \"string\" && versionRegExp.test(version)),\n    `'${version}' is not a valid version`,\n  );\n\n  const split = version.toString().split(\".\");\n  while (split.length < 3) {\n    split.push(\"0\");\n  }\n  return split.join(\".\");\n}\n\nexport function isUnreleasedVersion(\n  version: string | number,\n  env: Target,\n): boolean {\n  const unreleasedLabel =\n    // @ts-expect-error unreleasedLabel will be guarded later\n    unreleasedLabels[env];\n  return (\n    !!unreleasedLabel && unreleasedLabel === version.toString().toLowerCase()\n  );\n}\n\nexport function getLowestUnreleased(a: string, b: string, env: Target): string {\n  const unreleasedLabel:\n    | typeof unreleasedLabels[keyof typeof unreleasedLabels]\n    | undefined =\n    // @ts-expect-error unreleasedLabel is undefined when env is not safari\n    unreleasedLabels[env];\n  if (a === unreleasedLabel) {\n    return b;\n  }\n  if (b === unreleasedLabel) {\n    return a;\n  }\n  return semverMin(a, b);\n}\n\nexport function getHighestUnreleased(\n  a: string,\n  b: string,\n  env: Target,\n): string {\n  return getLowestUnreleased(a, b, env) === a ? b : a;\n}\n\nexport function getLowestImplementedVersion(\n  plugin: Targets,\n  environment: Target,\n): string {\n  const result = plugin[environment];\n  // When Android support data is absent, use Chrome data as fallback\n  if (!result && environment === \"android\") {\n    return plugin.chrome;\n  }\n  return result;\n}\n"],"mappings":";;;;;;;;;;;;AAAA;;AACA;;AACA;;AAKA,MAAMA,aAAa,GAAG,iBAAtB;AAEA,MAAMC,CAAC,GAAG,IAAIC,sCAAJ,qCAAV;;AAEO,SAASC,SAAT,CACLC,KADK,EAELC,MAFK,EAGG;EACR,OAAOD,KAAK,IAAIE,OAAM,CAACC,EAAP,CAAUH,KAAV,EAAiBC,MAAjB,CAAT,GAAoCD,KAApC,GAA4CC,MAAnD;AACD;;AAIM,SAASG,SAAT,CAAmBC,OAAnB,EAAqD;EAC1D,IAAI,OAAOA,OAAP,KAAmB,QAAnB,IAA+BH,OAAM,CAACI,KAAP,CAAaD,OAAb,CAAnC,EAA0D;IACxD,OAAOA,OAAP;EACD;;EAEDR,CAAC,CAACU,SAAF,CACE,OAAOF,OAAP,KAAmB,QAAnB,IACG,OAAOA,OAAP,KAAmB,QAAnB,IAA+BT,aAAa,CAACY,IAAd,CAAmBH,OAAnB,CAFpC,EAGG,IAAGA,OAAQ,0BAHd;EAMA,MAAMI,KAAK,GAAGJ,OAAO,CAACK,QAAR,GAAmBD,KAAnB,CAAyB,GAAzB,CAAd;;EACA,OAAOA,KAAK,CAACE,MAAN,GAAe,CAAtB,EAAyB;IACvBF,KAAK,CAACG,IAAN,CAAW,GAAX;EACD;;EACD,OAAOH,KAAK,CAACI,IAAN,CAAW,GAAX,CAAP;AACD;;AAEM,SAASC,mBAAT,CACLT,OADK,EAELU,GAFK,EAGI;EACT,MAAMC,eAAe,GAEnBC,yBAAA,CAAiBF,GAAjB,CAFF;EAGA,OACE,CAAC,CAACC,eAAF,IAAqBA,eAAe,KAAKX,OAAO,CAACK,QAAR,GAAmBQ,WAAnB,EAD3C;AAGD;;AAEM,SAASC,mBAAT,CAA6BC,CAA7B,EAAwCC,CAAxC,EAAmDN,GAAnD,EAAwE;EAC7E,MAAMC,eAEO,GAEXC,yBAAA,CAAiBF,GAAjB,CAJF;;EAKA,IAAIK,CAAC,KAAKJ,eAAV,EAA2B;IACzB,OAAOK,CAAP;EACD;;EACD,IAAIA,CAAC,KAAKL,eAAV,EAA2B;IACzB,OAAOI,CAAP;EACD;;EACD,OAAOrB,SAAS,CAACqB,CAAD,EAAIC,CAAJ,CAAhB;AACD;;AAEM,SAASC,oBAAT,CACLF,CADK,EAELC,CAFK,EAGLN,GAHK,EAIG;EACR,OAAOI,mBAAmB,CAACC,CAAD,EAAIC,CAAJ,EAAON,GAAP,CAAnB,KAAmCK,CAAnC,GAAuCC,CAAvC,GAA2CD,CAAlD;AACD;;AAEM,SAASG,2BAAT,CACLC,MADK,EAELC,WAFK,EAGG;EACR,MAAMC,MAAM,GAAGF,MAAM,CAACC,WAAD,CAArB;;EAEA,IAAI,CAACC,MAAD,IAAWD,WAAW,KAAK,SAA/B,EAA0C;IACxC,OAAOD,MAAM,CAACG,MAAd;EACD;;EACD,OAAOD,MAAP;AACD"}