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
4.8 KiB
Plaintext

{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../src/paths/extensions.ts"],"names":[],"mappings":";;AAAA,sCAAmC;AAQnC,SAAgB,aAAa,CAC3B,SAAmB,EACnB,UAAoB,EACpB,SAAmB;IAEnB,oGAAoG;IACpG,eAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,iCAAiC,CAAC,CAAC;IACpE,eAAM,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,kCAAkC,CAAC,CAAC;IACtE,eAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,iCAAiC,CAAC,CAAC;IAEpE,MAAM,cAAc,GAAG,EAAE,CAAC;IAC1B,sBAAsB;IACtB,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,SAAS,EAAE,EAAE,CAAC,EAAE;QACzC,4DAA4D;QAC5D,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,SAAS,EAAE,EAAE,CAAC,EAAE;YACzC,yCAAyC;YACzC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;gBAClC,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aAChF;SACF;KACF;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAtBD,sCAsBC;AAED,SAAgB,4BAA4B,CAAC,EAC3C,IAAI,EACJ,QAAQ,EACR,OAAO,GACS;IAChB,wCAAwC;IACxC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAY,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE9F,qBAAqB;IACrB,IAAI,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,QAAQ,EAAE;QACZ,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC3B;IACD,IAAI,IAAI,EAAE;QACR,UAAU,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC;KACpD;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAnBD,oEAmBC;AAED,SAAgB,oBAAoB,CAClC,SAAmB,EACnB,kBAAmC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IAEhF,MAAM,cAAc,GAAG,aAAa,CAAC,SAAS,EAAE,4BAA4B,CAAC,eAAe,CAAC,EAAE;QAC7F,MAAM;KACP,CAAC,CAAC;IACH,wBAAwB;IACxB,2BAA2B,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACvD,OAAO,cAAc,CAAC;AACxB,CAAC;AAVD,oDAUC;AAED,SAAgB,iBAAiB,CAC/B,SAAmB,EACnB,kBAAmC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IAEhF,MAAM,cAAc,GAAG,aAAa,CAClC,SAAS,EACT,4BAA4B,CAAC,eAAe,CAAC,EAC7C,EAAE,CACH,CAAC;IACF,wBAAwB;IACxB,2BAA2B,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACvD,OAAO,cAAc,CAAC;AACxB,CAAC;AAZD,8CAYC;AAED,SAAS,2BAA2B,CAAC,SAAmB,EAAE,cAAwB;IAChF,8CAA8C;IAC9C,8EAA8E;IAC9E,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,iDAAiD;IACjD,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC7B,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC7B;IACD,OAAO,cAAc,CAAC;AACxB,CAAC","sourcesContent":["import { assert } from '../Errors';\n\nexport type LanguageOptions = {\n isTS: boolean;\n isModern: boolean;\n isReact: boolean;\n};\n\nexport function getExtensions(\n platforms: string[],\n extensions: string[],\n workflows: string[]\n): string[] {\n // In the past we used spread operators to collect the values so now we enforce type safety on them.\n assert(Array.isArray(platforms), 'Expected: `platforms: string[]`');\n assert(Array.isArray(extensions), 'Expected: `extensions: string[]`');\n assert(Array.isArray(workflows), 'Expected: `workflows: string[]`');\n\n const fileExtensions = [];\n // support .expo files\n for (const workflow of [...workflows, '']) {\n // Ensure order is correct: [platformA.js, platformB.js, js]\n for (const platform of [...platforms, '']) {\n // Support both TypeScript and JavaScript\n for (const extension of extensions) {\n fileExtensions.push([platform, workflow, extension].filter(Boolean).join('.'));\n }\n }\n }\n return fileExtensions;\n}\n\nexport function getLanguageExtensionsInOrder({\n isTS,\n isModern,\n isReact,\n}: LanguageOptions): string[] {\n // @ts-ignore: filter removes false type\n const addLanguage = (lang: string): string[] => [lang, isReact && `${lang}x`].filter(Boolean);\n\n // Support JavaScript\n let extensions = addLanguage('js');\n\n if (isModern) {\n extensions.unshift('mjs');\n }\n if (isTS) {\n extensions = [...addLanguage('ts'), ...extensions];\n }\n\n return extensions;\n}\n\nexport function getManagedExtensions(\n platforms: string[],\n languageOptions: LanguageOptions = { isTS: true, isModern: true, isReact: true }\n): string[] {\n const fileExtensions = getExtensions(platforms, getLanguageExtensionsInOrder(languageOptions), [\n 'expo',\n ]);\n // Always add these last\n _addMiscellaneousExtensions(platforms, fileExtensions);\n return fileExtensions;\n}\n\nexport function getBareExtensions(\n platforms: string[],\n languageOptions: LanguageOptions = { isTS: true, isModern: true, isReact: true }\n): string[] {\n const fileExtensions = getExtensions(\n platforms,\n getLanguageExtensionsInOrder(languageOptions),\n []\n );\n // Always add these last\n _addMiscellaneousExtensions(platforms, fileExtensions);\n return fileExtensions;\n}\n\nfunction _addMiscellaneousExtensions(platforms: string[], fileExtensions: string[]): string[] {\n // Always add these with no platform extension\n // In the future we may want to add platform and workspace extensions to json.\n fileExtensions.push('json');\n // Native doesn't currently support web assembly.\n if (platforms.includes('web')) {\n fileExtensions.push('wasm');\n }\n return fileExtensions;\n}\n"]}