repoweaver
Version:
A GitHub App that skillfully weaves multiple templates together to create and update repositories with intelligent merge strategies
1 lines • 7.2 kB
JSON
{"ast":null,"code":"import { Platform } from 'expo-modules-core';\nimport PixelRatio from \"react-native-web/dist/exports/PixelRatio\";\nfunction getScaledAssetPath(asset) {\n const scale = AssetSourceResolver.pickScale(asset.scales, PixelRatio.get());\n const scaleSuffix = scale === 1 ? '' : '@' + scale + 'x';\n const type = !asset.type ? '' : `.${asset.type}`;\n if (__DEV__) {\n return asset.httpServerLocation + '/' + asset.name + scaleSuffix + type;\n } else {\n return asset.httpServerLocation.replace(/\\.\\.\\//g, '_') + '/' + asset.name + scaleSuffix + type;\n }\n}\nexport default class AssetSourceResolver {\n constructor(serverUrl, jsbundleUrl, asset) {\n this.serverUrl = serverUrl || 'https://expo.dev';\n this.jsbundleUrl = null;\n this.asset = asset;\n }\n isLoadedFromServer() {\n return true;\n }\n isLoadedFromFileSystem() {\n return false;\n }\n defaultAsset() {\n return this.assetServerURL();\n }\n assetServerURL() {\n const fromUrl = new URL(getScaledAssetPath(this.asset), this.serverUrl);\n fromUrl.searchParams.set('platform', Platform.OS);\n fromUrl.searchParams.set('hash', this.asset.hash);\n return this.fromSource(fromUrl.toString().replace(fromUrl.origin, ''));\n }\n fromSource(source) {\n return {\n __packager_asset: true,\n width: this.asset.width ?? undefined,\n height: this.asset.height ?? undefined,\n uri: source,\n scale: AssetSourceResolver.pickScale(this.asset.scales, PixelRatio.get())\n };\n }\n static pickScale(scales, deviceScale) {\n for (let i = 0; i < scales.length; i++) {\n if (scales[i] >= deviceScale) {\n return scales[i];\n }\n }\n return scales[scales.length - 1] || 1;\n }\n}","map":{"version":3,"names":["Platform","PixelRatio","getScaledAssetPath","asset","scale","AssetSourceResolver","pickScale","scales","get","scaleSuffix","type","__DEV__","httpServerLocation","name","replace","constructor","serverUrl","jsbundleUrl","isLoadedFromServer","isLoadedFromFileSystem","defaultAsset","assetServerURL","fromUrl","URL","searchParams","set","OS","hash","fromSource","toString","origin","source","__packager_asset","width","undefined","height","uri","deviceScale","i","length"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/expo-asset/src/AssetSourceResolver.ts"],"sourcesContent":["import type { PackagerAsset } from '@react-native/assets-registry/registry';\nimport { Platform } from 'expo-modules-core';\nimport { PixelRatio } from 'react-native';\n\nimport type { AssetMetadata } from './AssetSources';\n\nexport type ResolvedAssetSource = {\n __packager_asset: boolean;\n width?: number;\n height?: number;\n uri: string;\n scale: number;\n};\n\n// Returns the Metro dev server-specific asset location.\nfunction getScaledAssetPath(asset: PackagerAsset | AssetMetadata): string {\n const scale = AssetSourceResolver.pickScale(asset.scales, PixelRatio.get());\n const scaleSuffix = scale === 1 ? '' : '@' + scale + 'x';\n const type = !asset.type ? '' : `.${asset.type}`;\n if (__DEV__) {\n return asset.httpServerLocation + '/' + asset.name + scaleSuffix + type;\n } else {\n return asset.httpServerLocation.replace(/\\.\\.\\//g, '_') + '/' + asset.name + scaleSuffix + type;\n }\n}\n\nexport default class AssetSourceResolver {\n private readonly serverUrl: string;\n // where the jsbundle is being run from\n // NOTE(EvanBacon): Never defined on web.\n // @ts-expect-error: Never read locally\n private readonly jsbundleUrl: string | undefined | null;\n // the asset to resolve\n public readonly asset: PackagerAsset | AssetMetadata;\n\n constructor(\n serverUrl: string | undefined | null,\n jsbundleUrl: string | undefined | null,\n asset: PackagerAsset\n ) {\n this.serverUrl = serverUrl || 'https://expo.dev';\n this.jsbundleUrl = null;\n this.asset = asset;\n }\n\n // Always true for web runtimes\n isLoadedFromServer(): boolean {\n return true;\n }\n\n // Always false for web runtimes\n isLoadedFromFileSystem(): boolean {\n return false;\n }\n\n defaultAsset(): ResolvedAssetSource {\n return this.assetServerURL();\n }\n\n /**\n * @returns absolute remote URL for the hosted asset.\n */\n assetServerURL(): ResolvedAssetSource {\n const fromUrl = new URL(getScaledAssetPath(this.asset), this.serverUrl);\n fromUrl.searchParams.set('platform', Platform.OS);\n fromUrl.searchParams.set('hash', this.asset.hash);\n return this.fromSource(\n // Relative on web\n fromUrl.toString().replace(fromUrl.origin, '')\n );\n }\n\n fromSource(source: string): ResolvedAssetSource {\n return {\n __packager_asset: true,\n width: this.asset.width ?? undefined,\n height: this.asset.height ?? undefined,\n uri: source,\n scale: AssetSourceResolver.pickScale(this.asset.scales, PixelRatio.get()),\n };\n }\n\n static pickScale(scales: number[], deviceScale: number): number {\n for (let i = 0; i < scales.length; i++) {\n if (scales[i] >= deviceScale) {\n return scales[i];\n }\n }\n return scales[scales.length - 1] || 1;\n }\n}\n"],"mappings":"AACA,SAASA,QAAQ,QAAQ,mBAAmB;AAAC,OAAAC,UAAA;AAc7C,SAASC,kBAAkBA,CAACC,KAAoC;EAC9D,MAAMC,KAAK,GAAGC,mBAAmB,CAACC,SAAS,CAACH,KAAK,CAACI,MAAM,EAAEN,UAAU,CAACO,GAAG,EAAE,CAAC;EAC3E,MAAMC,WAAW,GAAGL,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,GAAGA,KAAK,GAAG,GAAG;EACxD,MAAMM,IAAI,GAAG,CAACP,KAAK,CAACO,IAAI,GAAG,EAAE,GAAG,IAAIP,KAAK,CAACO,IAAI,EAAE;EAChD,IAAIC,OAAO,EAAE;IACX,OAAOR,KAAK,CAACS,kBAAkB,GAAG,GAAG,GAAGT,KAAK,CAACU,IAAI,GAAGJ,WAAW,GAAGC,IAAI;EACzE,CAAC,MAAM;IACL,OAAOP,KAAK,CAACS,kBAAkB,CAACE,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,GAAG,GAAGX,KAAK,CAACU,IAAI,GAAGJ,WAAW,GAAGC,IAAI;EACjG;AACF;AAEA,eAAc,MAAOL,mBAAmB;EAStCU,YACEC,SAAoC,EACpCC,WAAsC,EACtCd,KAAoB;IAEpB,IAAI,CAACa,SAAS,GAAGA,SAAS,IAAI,kBAAkB;IAChD,IAAI,CAACC,WAAW,GAAG,IAAI;IACvB,IAAI,CAACd,KAAK,GAAGA,KAAK;EACpB;EAGAe,kBAAkBA,CAAA;IAChB,OAAO,IAAI;EACb;EAGAC,sBAAsBA,CAAA;IACpB,OAAO,KAAK;EACd;EAEAC,YAAYA,CAAA;IACV,OAAO,IAAI,CAACC,cAAc,EAAE;EAC9B;EAKAA,cAAcA,CAAA;IACZ,MAAMC,OAAO,GAAG,IAAIC,GAAG,CAACrB,kBAAkB,CAAC,IAAI,CAACC,KAAK,CAAC,EAAE,IAAI,CAACa,SAAS,CAAC;IACvEM,OAAO,CAACE,YAAY,CAACC,GAAG,CAAC,UAAU,EAAEzB,QAAQ,CAAC0B,EAAE,CAAC;IACjDJ,OAAO,CAACE,YAAY,CAACC,GAAG,CAAC,MAAM,EAAE,IAAI,CAACtB,KAAK,CAACwB,IAAI,CAAC;IACjD,OAAO,IAAI,CAACC,UAAU,CAEpBN,OAAO,CAACO,QAAQ,EAAE,CAACf,OAAO,CAACQ,OAAO,CAACQ,MAAM,EAAE,EAAE,CAAC,CAC/C;EACH;EAEAF,UAAUA,CAACG,MAAc;IACvB,OAAO;MACLC,gBAAgB,EAAE,IAAI;MACtBC,KAAK,EAAE,IAAI,CAAC9B,KAAK,CAAC8B,KAAK,IAAIC,SAAS;MACpCC,MAAM,EAAE,IAAI,CAAChC,KAAK,CAACgC,MAAM,IAAID,SAAS;MACtCE,GAAG,EAAEL,MAAM;MACX3B,KAAK,EAAEC,mBAAmB,CAACC,SAAS,CAAC,IAAI,CAACH,KAAK,CAACI,MAAM,EAAEN,UAAU,CAACO,GAAG,EAAE;KACzE;EACH;EAEA,OAAOF,SAASA,CAACC,MAAgB,EAAE8B,WAAmB;IACpD,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG/B,MAAM,CAACgC,MAAM,EAAED,CAAC,EAAE,EAAE;MACtC,IAAI/B,MAAM,CAAC+B,CAAC,CAAC,IAAID,WAAW,EAAE;QAC5B,OAAO9B,MAAM,CAAC+B,CAAC,CAAC;MAClB;IACF;IACA,OAAO/B,MAAM,CAACA,MAAM,CAACgC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;EACvC","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}