vxrn 1.27.1 → 2.0.0-beta.45.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.mjs +212 -261
- package/dist/cli.mjs.map +1 -1
- package/dist/cli.native.js +216 -265
- package/dist/cli.native.js.map +1 -1
- package/dist/config/getAdditionalViteConfig.mjs +33 -62
- package/dist/config/getAdditionalViteConfig.mjs.map +1 -1
- package/dist/config/getAdditionalViteConfig.native.js +33 -62
- package/dist/config/getAdditionalViteConfig.native.js.map +1 -1
- package/dist/config/getBaseViteConfigOnly.mjs +84 -77
- package/dist/config/getBaseViteConfigOnly.mjs.map +1 -1
- package/dist/config/getBaseViteConfigOnly.native.js +86 -79
- package/dist/config/getBaseViteConfigOnly.native.js.map +1 -1
- package/dist/config/getBaseViteConfigWithPlugins.mjs +6 -4
- package/dist/config/getBaseViteConfigWithPlugins.mjs.map +1 -1
- package/dist/config/getBaseViteConfigWithPlugins.native.js +6 -4
- package/dist/config/getBaseViteConfigWithPlugins.native.js.map +1 -1
- package/dist/config/getBaseVitePlugins.mjs +102 -130
- package/dist/config/getBaseVitePlugins.mjs.map +1 -1
- package/dist/config/getBaseVitePlugins.native.js +123 -152
- package/dist/config/getBaseVitePlugins.native.js.map +1 -1
- package/dist/config/getNonCliModeOnlyVitePlugins.mjs +3 -3
- package/dist/config/getNonCliModeOnlyVitePlugins.mjs.map +1 -1
- package/dist/config/getNonCliModeOnlyVitePlugins.native.js +3 -1
- package/dist/config/getNonCliModeOnlyVitePlugins.native.js.map +1 -1
- package/dist/config/getOptimizeDeps.mjs +138 -42
- package/dist/config/getOptimizeDeps.mjs.map +1 -1
- package/dist/config/getOptimizeDeps.native.js +138 -42
- package/dist/config/getOptimizeDeps.native.js.map +1 -1
- package/dist/config/getOptionsFilled.mjs +48 -52
- package/dist/config/getOptionsFilled.mjs.map +1 -1
- package/dist/config/getOptionsFilled.native.js +51 -55
- package/dist/config/getOptionsFilled.native.js.map +1 -1
- package/dist/config/getReactNativePlugins.mjs +23 -15
- package/dist/config/getReactNativePlugins.mjs.map +1 -1
- package/dist/config/getReactNativePlugins.native.js +25 -16
- package/dist/config/getReactNativePlugins.native.js.map +1 -1
- package/dist/config/getServerOptionsFilled.mjs +33 -35
- package/dist/config/getServerOptionsFilled.mjs.map +1 -1
- package/dist/config/getServerOptionsFilled.native.js +35 -38
- package/dist/config/getServerOptionsFilled.native.js.map +1 -1
- package/dist/config/getViteServerConfig.mjs +34 -45
- package/dist/config/getViteServerConfig.mjs.map +1 -1
- package/dist/config/getViteServerConfig.native.js +35 -46
- package/dist/config/getViteServerConfig.native.js.map +1 -1
- package/dist/config/mergeUserConfig.mjs +50 -28
- package/dist/config/mergeUserConfig.mjs.map +1 -1
- package/dist/config/mergeUserConfig.native.js +60 -38
- package/dist/config/mergeUserConfig.native.js.map +1 -1
- package/dist/constants/defaults.mjs +29 -12
- package/dist/constants/defaults.mjs.map +1 -1
- package/dist/constants/defaults.native.js +29 -12
- package/dist/constants/defaults.native.js.map +1 -1
- package/dist/constants.mjs +41 -6
- package/dist/constants.mjs.map +1 -1
- package/dist/constants.native.js +41 -6
- package/dist/constants.native.js.map +1 -1
- package/dist/exports/build.mjs +218 -270
- package/dist/exports/build.mjs.map +1 -1
- package/dist/exports/build.native.js +226 -283
- package/dist/exports/build.native.js.map +1 -1
- package/dist/exports/clean.mjs +71 -78
- package/dist/exports/clean.mjs.map +1 -1
- package/dist/exports/clean.native.js +76 -90
- package/dist/exports/clean.native.js.map +1 -1
- package/dist/exports/createServer.mjs +43 -46
- package/dist/exports/createServer.mjs.map +1 -1
- package/dist/exports/createServer.native.js +45 -48
- package/dist/exports/createServer.native.js.map +1 -1
- package/dist/exports/dev.mjs +177 -201
- package/dist/exports/dev.mjs.map +1 -1
- package/dist/exports/dev.native.js +191 -215
- package/dist/exports/dev.native.js.map +1 -1
- package/dist/exports/loadEnv.mjs +51 -48
- package/dist/exports/loadEnv.mjs.map +1 -1
- package/dist/exports/loadEnv.native.js +59 -57
- package/dist/exports/loadEnv.native.js.map +1 -1
- package/dist/exports/patch.mjs +9 -7
- package/dist/exports/patch.mjs.map +1 -1
- package/dist/exports/patch.native.js +9 -7
- package/dist/exports/patch.native.js.map +1 -1
- package/dist/exports/prebuild.mjs +177 -157
- package/dist/exports/prebuild.mjs.map +1 -1
- package/dist/exports/prebuild.native.js +197 -160
- package/dist/exports/prebuild.native.js.map +1 -1
- package/dist/exports/prebuildWithoutExpo.mjs +46 -44
- package/dist/exports/prebuildWithoutExpo.mjs.map +1 -1
- package/dist/exports/prebuildWithoutExpo.native.js +48 -46
- package/dist/exports/prebuildWithoutExpo.native.js.map +1 -1
- package/dist/exports/runAndroid.mjs +9 -10
- package/dist/exports/runAndroid.mjs.map +1 -1
- package/dist/exports/runAndroid.native.js +10 -11
- package/dist/exports/runAndroid.native.js.map +1 -1
- package/dist/exports/runIos.mjs +9 -10
- package/dist/exports/runIos.mjs.map +1 -1
- package/dist/exports/runIos.native.js +10 -11
- package/dist/exports/runIos.native.js.map +1 -1
- package/dist/exports/serve.mjs +23 -31
- package/dist/exports/serve.mjs.map +1 -1
- package/dist/exports/serve.native.js +26 -34
- package/dist/exports/serve.native.js.map +1 -1
- package/dist/exports/serveStaticAssets.mjs +109 -113
- package/dist/exports/serveStaticAssets.mjs.map +1 -1
- package/dist/exports/serveStaticAssets.native.js +180 -192
- package/dist/exports/serveStaticAssets.native.js.map +1 -1
- package/dist/index.js +25 -14
- package/dist/index.mjs +25 -14
- package/dist/index.native.js +25 -14
- package/dist/patches/builtInDepPatches.mjs +346 -435
- package/dist/patches/builtInDepPatches.mjs.map +1 -1
- package/dist/patches/builtInDepPatches.native.js +349 -438
- package/dist/patches/builtInDepPatches.native.js.map +1 -1
- package/dist/plugins/applyBuiltInPatchesPlugin.mjs +11 -11
- package/dist/plugins/applyBuiltInPatchesPlugin.mjs.map +1 -1
- package/dist/plugins/applyBuiltInPatchesPlugin.native.js +11 -11
- package/dist/plugins/applyBuiltInPatchesPlugin.native.js.map +1 -1
- package/dist/plugins/autoDepOptimizePlugin.mjs +87 -90
- package/dist/plugins/autoDepOptimizePlugin.mjs.map +1 -1
- package/dist/plugins/autoDepOptimizePlugin.native.js +99 -102
- package/dist/plugins/autoDepOptimizePlugin.native.js.map +1 -1
- package/dist/plugins/clientInjectPlugin.mjs +13 -11
- package/dist/plugins/clientInjectPlugin.mjs.map +1 -1
- package/dist/plugins/clientInjectPlugin.native.js +13 -11
- package/dist/plugins/clientInjectPlugin.native.js.map +1 -1
- package/dist/plugins/defaultDepOptimizePlugin.mjs +15 -23
- package/dist/plugins/defaultDepOptimizePlugin.mjs.map +1 -1
- package/dist/plugins/defaultDepOptimizePlugin.native.js +15 -23
- package/dist/plugins/defaultDepOptimizePlugin.native.js.map +1 -1
- package/dist/plugins/expoManifestRequestHandlerPlugin.mjs +163 -179
- package/dist/plugins/expoManifestRequestHandlerPlugin.mjs.map +1 -1
- package/dist/plugins/expoManifestRequestHandlerPlugin.native.js +169 -191
- package/dist/plugins/expoManifestRequestHandlerPlugin.native.js.map +1 -1
- package/dist/plugins/getResolvedConfigSubset.mjs +6 -5
- package/dist/plugins/getResolvedConfigSubset.mjs.map +1 -1
- package/dist/plugins/getResolvedConfigSubset.native.js +6 -5
- package/dist/plugins/getResolvedConfigSubset.native.js.map +1 -1
- package/dist/plugins/reactNativeCommonJsPlugin.mjs +210 -178
- package/dist/plugins/reactNativeCommonJsPlugin.mjs.map +1 -1
- package/dist/plugins/reactNativeCommonJsPlugin.native.js +283 -259
- package/dist/plugins/reactNativeCommonJsPlugin.native.js.map +1 -1
- package/dist/plugins/reactNativeDevAssetPlugin.mjs +72 -83
- package/dist/plugins/reactNativeDevAssetPlugin.mjs.map +1 -1
- package/dist/plugins/reactNativeDevAssetPlugin.native.js +75 -92
- package/dist/plugins/reactNativeDevAssetPlugin.native.js.map +1 -1
- package/dist/plugins/reactNativeDevServer.mjs +283 -328
- package/dist/plugins/reactNativeDevServer.mjs.map +1 -1
- package/dist/plugins/reactNativeDevServer.native.js +332 -391
- package/dist/plugins/reactNativeDevServer.native.js.map +1 -1
- package/dist/plugins/rnCodegenPlugin.mjs +13 -12
- package/dist/plugins/rnCodegenPlugin.mjs.map +1 -1
- package/dist/plugins/rnCodegenPlugin.native.js +13 -12
- package/dist/plugins/rnCodegenPlugin.native.js.map +1 -1
- package/dist/plugins/rollupRemoveUnusedImports.mjs +8 -7
- package/dist/plugins/rollupRemoveUnusedImports.mjs.map +1 -1
- package/dist/plugins/rollupRemoveUnusedImports.native.js +8 -7
- package/dist/plugins/rollupRemoveUnusedImports.native.js.map +1 -1
- package/dist/plugins/workletImportsPlugin.mjs +127 -132
- package/dist/plugins/workletImportsPlugin.mjs.map +1 -1
- package/dist/plugins/workletImportsPlugin.native.js +192 -203
- package/dist/plugins/workletImportsPlugin.native.js.map +1 -1
- package/dist/rn-commands/bundle/buildBundle.mjs +45 -79
- package/dist/rn-commands/bundle/buildBundle.mjs.map +1 -1
- package/dist/rn-commands/bundle/buildBundle.native.js +45 -85
- package/dist/rn-commands/bundle/buildBundle.native.js.map +1 -1
- package/dist/runtime/hmr-client.mjs +133 -140
- package/dist/runtime/hmr-client.mjs.map +1 -1
- package/dist/runtime/hmr-client.native.js +223 -222
- package/dist/runtime/hmr-client.native.js.map +1 -1
- package/dist/runtime/hmr-runtime.mjs +192 -194
- package/dist/runtime/hmr-runtime.mjs.map +1 -1
- package/dist/runtime/hmr-runtime.native.js +424 -411
- package/dist/runtime/hmr-runtime.native.js.map +1 -1
- package/dist/runtime/hmr-types.mjs +0 -2
- package/dist/runtime/hmr-types.native.js +0 -2
- package/dist/runtime/native-prelude.mjs +2 -1
- package/dist/runtime/native-prelude.mjs.map +1 -1
- package/dist/runtime/native-prelude.native.js +2 -1
- package/dist/runtime/native-prelude.native.js.map +1 -1
- package/dist/runtime/react-refresh-utils.mjs +23 -22
- package/dist/runtime/react-refresh-utils.mjs.map +1 -1
- package/dist/runtime/react-refresh-utils.native.js +23 -27
- package/dist/runtime/react-refresh-utils.native.js.map +1 -1
- package/dist/serve/node.mjs +49 -49
- package/dist/serve/node.mjs.map +1 -1
- package/dist/serve/node.native.js +92 -96
- package/dist/serve/node.native.js.map +1 -1
- package/dist/types.mjs +0 -2
- package/dist/types.native.js +0 -2
- package/dist/user-interface/index.mjs +245 -262
- package/dist/user-interface/index.mjs.map +1 -1
- package/dist/user-interface/index.native.js +274 -298
- package/dist/user-interface/index.native.js.map +1 -1
- package/dist/utils/assert.mjs +7 -6
- package/dist/utils/assert.mjs.map +1 -1
- package/dist/utils/assert.native.js +7 -18
- package/dist/utils/assert.native.js.map +1 -1
- package/dist/utils/bindKeypressInput.mjs +36 -38
- package/dist/utils/bindKeypressInput.mjs.map +1 -1
- package/dist/utils/bindKeypressInput.native.js +36 -38
- package/dist/utils/bindKeypressInput.native.js.map +1 -1
- package/dist/utils/coerceToArray.mjs +2 -1
- package/dist/utils/coerceToArray.mjs.map +1 -1
- package/dist/utils/coerceToArray.native.js +2 -1
- package/dist/utils/coerceToArray.native.js.map +1 -1
- package/dist/utils/connectedNativeClients.mjs +3 -2
- package/dist/utils/connectedNativeClients.mjs.map +1 -1
- package/dist/utils/connectedNativeClients.native.js +3 -2
- package/dist/utils/connectedNativeClients.native.js.map +1 -1
- package/dist/utils/createNativeDevEngine.mjs +992 -966
- package/dist/utils/createNativeDevEngine.mjs.map +1 -1
- package/dist/utils/createNativeDevEngine.native.js +1184 -1179
- package/dist/utils/createNativeDevEngine.native.js.map +1 -1
- package/dist/utils/dispose.mjs +4 -3
- package/dist/utils/dispose.mjs.map +1 -1
- package/dist/utils/dispose.native.js +6 -5
- package/dist/utils/dispose.native.js.map +1 -1
- package/dist/utils/environmentUtils.mjs +5 -4
- package/dist/utils/environmentUtils.mjs.map +1 -1
- package/dist/utils/environmentUtils.native.js +5 -4
- package/dist/utils/environmentUtils.native.js.map +1 -1
- package/dist/utils/execSync.mjs +7 -5
- package/dist/utils/execSync.mjs.map +1 -1
- package/dist/utils/execSync.native.js +8 -6
- package/dist/utils/execSync.native.js.map +1 -1
- package/dist/utils/expoRun.mjs +27 -35
- package/dist/utils/expoRun.mjs.map +1 -1
- package/dist/utils/expoRun.native.js +27 -35
- package/dist/utils/expoRun.native.js.map +1 -1
- package/dist/utils/filterViteServerResolvedUrls.mjs +24 -22
- package/dist/utils/filterViteServerResolvedUrls.mjs.map +1 -1
- package/dist/utils/filterViteServerResolvedUrls.native.js +61 -63
- package/dist/utils/filterViteServerResolvedUrls.native.js.map +1 -1
- package/dist/utils/getBoundPort.mjs +6 -5
- package/dist/utils/getBoundPort.mjs.map +1 -1
- package/dist/utils/getBoundPort.native.js +8 -12
- package/dist/utils/getBoundPort.native.js.map +1 -1
- package/dist/utils/getCacheDir.mjs +3 -1
- package/dist/utils/getCacheDir.mjs.map +1 -1
- package/dist/utils/getCacheDir.native.js +3 -1
- package/dist/utils/getCacheDir.native.js.map +1 -1
- package/dist/utils/getServerEntry.mjs +6 -4
- package/dist/utils/getServerEntry.mjs.map +1 -1
- package/dist/utils/getServerEntry.native.js +8 -11
- package/dist/utils/getServerEntry.native.js.map +1 -1
- package/dist/utils/getVitePath.mjs +42 -42
- package/dist/utils/getVitePath.mjs.map +1 -1
- package/dist/utils/getVitePath.native.js +43 -41
- package/dist/utils/getVitePath.native.js.map +1 -1
- package/dist/utils/globDir.mjs +7 -11
- package/dist/utils/globDir.mjs.map +1 -1
- package/dist/utils/globDir.native.js +10 -14
- package/dist/utils/globDir.native.js.map +1 -1
- package/dist/utils/isWithin.mjs +4 -2
- package/dist/utils/isWithin.mjs.map +1 -1
- package/dist/utils/isWithin.native.js +4 -2
- package/dist/utils/isWithin.native.js.map +1 -1
- package/dist/utils/patches.mjs +233 -255
- package/dist/utils/patches.mjs.map +1 -1
- package/dist/utils/patches.native.js +415 -460
- package/dist/utils/patches.native.js.map +1 -1
- package/dist/utils/printServerUrls.mjs +9 -7
- package/dist/utils/printServerUrls.mjs.map +1 -1
- package/dist/utils/printServerUrls.native.js +48 -51
- package/dist/utils/printServerUrls.native.js.map +1 -1
- package/dist/utils/removeUndefined.mjs +8 -7
- package/dist/utils/removeUndefined.mjs.map +1 -1
- package/dist/utils/removeUndefined.native.js +8 -7
- package/dist/utils/removeUndefined.native.js.map +1 -1
- package/dist/utils/scanDepsToOptimize.mjs +194 -161
- package/dist/utils/scanDepsToOptimize.mjs.map +1 -1
- package/dist/utils/scanDepsToOptimize.native.js +227 -197
- package/dist/utils/scanDepsToOptimize.native.js.map +1 -1
- package/dist/utils/state.mjs +18 -18
- package/dist/utils/state.mjs.map +1 -1
- package/dist/utils/state.native.js +18 -18
- package/dist/utils/state.native.js.map +1 -1
- package/dist/utils/symbolicateNativeStack.mjs +54 -54
- package/dist/utils/symbolicateNativeStack.mjs.map +1 -1
- package/dist/utils/symbolicateNativeStack.native.js +58 -58
- package/dist/utils/symbolicateNativeStack.native.js.map +1 -1
- package/dist/utils/uniq.mjs +2 -1
- package/dist/utils/uniq.mjs.map +1 -1
- package/dist/utils/uniq.native.js +2 -1
- package/dist/utils/uniq.native.js.map +1 -1
- package/dist/utils/utils.mjs +19 -19
- package/dist/utils/utils.mjs.map +1 -1
- package/dist/utils/utils.native.js +38 -40
- package/dist/utils/utils.native.js.map +1 -1
- package/dist/vendor/debugger-app/index.mjs +0 -2
- package/dist/vendor/debugger-app/index.native.js +0 -2
- package/dist/vendor/debugger-app/src/debuggerWorker.mjs +0 -2
- package/dist/vendor/debugger-app/src/debuggerWorker.native.js +0 -2
- package/dist/vendor/debugger-app/src/index.mjs +0 -2
- package/dist/vendor/debugger-app/src/index.native.js +0 -2
- package/dist/vxrn-vite-plugin.mjs +34 -33
- package/dist/vxrn-vite-plugin.mjs.map +1 -1
- package/dist/vxrn-vite-plugin.native.js +35 -34
- package/dist/vxrn-vite-plugin.native.js.map +1 -1
- package/expo-plugin.cjs +12 -6
- package/package.json +12 -13
- package/src/config/getBaseViteConfigOnly.ts +6 -0
- package/src/exports/prebuild.ts +40 -12
- package/src/patches/builtInDepPatches.ts +24 -48
- package/src/utils/createNativeDevEngine.test.ts +1 -1
- package/src/utils/createNativeDevEngine.ts +15 -9
- package/src/utils/scanDepsToOptimize.ts +0 -3
- package/types/config/getBaseViteConfigOnly.d.ts.map +1 -1
- package/types/config/getOptimizeDeps.d.ts.map +1 -1
- package/types/config/getOptionsFilled.d.ts +15 -15
- package/types/config/getOptionsFilled.d.ts.map +1 -1
- package/types/exports/build.d.ts +11 -11
- package/types/exports/build.d.ts.map +1 -1
- package/types/exports/clean.d.ts +1 -1
- package/types/exports/clean.d.ts.map +1 -1
- package/types/exports/createServer.d.ts.map +1 -1
- package/types/exports/dev.d.ts.map +1 -1
- package/types/exports/patch.d.ts.map +1 -1
- package/types/exports/prebuild.d.ts +3 -3
- package/types/exports/prebuild.d.ts.map +1 -1
- package/types/exports/prebuildWithoutExpo.d.ts +1 -1
- package/types/exports/prebuildWithoutExpo.d.ts.map +1 -1
- package/types/exports/runAndroid.d.ts.map +1 -1
- package/types/exports/runIos.d.ts.map +1 -1
- package/types/exports/serve.d.ts.map +1 -1
- package/types/patches/builtInDepPatches.d.ts.map +1 -1
- package/types/plugins/autoDepOptimizePlugin.d.ts.map +1 -1
- package/types/plugins/rollupRemoveUnusedImports.d.ts.map +1 -1
- package/types/runtime/hmr-client.d.ts.map +1 -1
- package/types/runtime/hmr-runtime.d.ts.map +1 -1
- package/types/runtime/hmr-types.d.ts.map +1 -1
- package/types/utils/createNativeDevEngine.d.ts +1 -1
- package/types/utils/createNativeDevEngine.d.ts.map +1 -1
- package/types/utils/execSync.d.ts.map +1 -1
- package/types/utils/getServerEntry.d.ts.map +1 -1
- package/types/utils/scanDepsToOptimize.d.ts.map +1 -1
- package/types/vxrn-vite-plugin.d.ts.map +1 -1
- package/dist/config/getOptimizeDeps.test.mjs +0 -20
- package/dist/config/getOptimizeDeps.test.mjs.map +0 -1
- package/dist/config/getOptimizeDeps.test.native.js +0 -39
- package/dist/config/getOptimizeDeps.test.native.js.map +0 -1
- package/dist/config/getServerOptionsFilled.test.mjs +0 -20
- package/dist/config/getServerOptionsFilled.test.mjs.map +0 -1
- package/dist/config/getServerOptionsFilled.test.native.js +0 -20
- package/dist/config/getServerOptionsFilled.test.native.js.map +0 -1
- package/dist/config/getViteServerConfig.test.mjs +0 -26
- package/dist/config/getViteServerConfig.test.mjs.map +0 -1
- package/dist/config/getViteServerConfig.test.native.js +0 -26
- package/dist/config/getViteServerConfig.test.native.js.map +0 -1
- package/dist/config/mergeUserConfig.test.mjs +0 -108
- package/dist/config/mergeUserConfig.test.mjs.map +0 -1
- package/dist/config/mergeUserConfig.test.native.js +0 -108
- package/dist/config/mergeUserConfig.test.native.js.map +0 -1
- package/dist/exports/clean.test.mjs +0 -81
- package/dist/exports/clean.test.mjs.map +0 -1
- package/dist/exports/clean.test.native.js +0 -88
- package/dist/exports/clean.test.native.js.map +0 -1
- package/dist/exports/loadEnv.test.mjs +0 -65
- package/dist/exports/loadEnv.test.mjs.map +0 -1
- package/dist/exports/loadEnv.test.native.js +0 -65
- package/dist/exports/loadEnv.test.native.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/index.native.js.map +0 -1
- package/dist/plugins/autoDepOptimizePlugin.test.mjs +0 -31
- package/dist/plugins/autoDepOptimizePlugin.test.mjs.map +0 -1
- package/dist/plugins/autoDepOptimizePlugin.test.native.js +0 -39
- package/dist/plugins/autoDepOptimizePlugin.test.native.js.map +0 -1
- package/dist/plugins/resolveIdScan.test.mjs +0 -31
- package/dist/plugins/resolveIdScan.test.mjs.map +0 -1
- package/dist/plugins/resolveIdScan.test.native.js +0 -38
- package/dist/plugins/resolveIdScan.test.native.js.map +0 -1
- package/dist/plugins/rnCodegenPlugin.test.mjs +0 -239
- package/dist/plugins/rnCodegenPlugin.test.mjs.map +0 -1
- package/dist/plugins/rnCodegenPlugin.test.native.js +0 -242
- package/dist/plugins/rnCodegenPlugin.test.native.js.map +0 -1
- package/dist/plugins/serverExtensions.test.mjs +0 -106
- package/dist/plugins/serverExtensions.test.mjs.map +0 -1
- package/dist/plugins/serverExtensions.test.native.js +0 -117
- package/dist/plugins/serverExtensions.test.native.js.map +0 -1
- package/dist/runtime/hmr-types.mjs.map +0 -1
- package/dist/runtime/hmr-types.native.js.map +0 -1
- package/dist/serve/node.test.mjs +0 -60
- package/dist/serve/node.test.mjs.map +0 -1
- package/dist/serve/node.test.native.js +0 -72
- package/dist/serve/node.test.native.js.map +0 -1
- package/dist/types.mjs.map +0 -1
- package/dist/types.native.js.map +0 -1
- package/dist/utils/bindKeypressInput.test.mjs +0 -48
- package/dist/utils/bindKeypressInput.test.mjs.map +0 -1
- package/dist/utils/bindKeypressInput.test.native.js +0 -48
- package/dist/utils/bindKeypressInput.test.native.js.map +0 -1
- package/dist/utils/createNativeDevEngine.test.mjs +0 -1788
- package/dist/utils/createNativeDevEngine.test.mjs.map +0 -1
- package/dist/utils/createNativeDevEngine.test.native.js +0 -1942
- package/dist/utils/createNativeDevEngine.test.native.js.map +0 -1
- package/dist/utils/createNativeDevEngineFailure.test.mjs +0 -44
- package/dist/utils/createNativeDevEngineFailure.test.mjs.map +0 -1
- package/dist/utils/createNativeDevEngineFailure.test.native.js +0 -54
- package/dist/utils/createNativeDevEngineFailure.test.native.js.map +0 -1
- package/dist/utils/getBoundPort.test.mjs +0 -71
- package/dist/utils/getBoundPort.test.mjs.map +0 -1
- package/dist/utils/getBoundPort.test.native.js +0 -82
- package/dist/utils/getBoundPort.test.native.js.map +0 -1
- package/dist/utils/imageSizePatch.test.mjs +0 -29
- package/dist/utils/imageSizePatch.test.mjs.map +0 -1
- package/dist/utils/imageSizePatch.test.native.js +0 -30
- package/dist/utils/imageSizePatch.test.native.js.map +0 -1
- package/dist/utils/patches.test.mjs +0 -242
- package/dist/utils/patches.test.mjs.map +0 -1
- package/dist/utils/patches.test.native.js +0 -271
- package/dist/utils/patches.test.native.js.map +0 -1
- package/dist/utils/symbolicateNativeStack.test.mjs +0 -96
- package/dist/utils/symbolicateNativeStack.test.mjs.map +0 -1
- package/dist/utils/symbolicateNativeStack.test.native.js +0 -96
- package/dist/utils/symbolicateNativeStack.test.native.js.map +0 -1
- package/dist/vendor/debugger-app/index.mjs.map +0 -1
- package/dist/vendor/debugger-app/index.native.js.map +0 -1
- package/dist/vendor/debugger-app/src/debuggerWorker.mjs.map +0 -1
- package/dist/vendor/debugger-app/src/debuggerWorker.native.js.map +0 -1
- package/dist/vendor/debugger-app/src/index.mjs.map +0 -1
- package/dist/vendor/debugger-app/src/index.native.js.map +0 -1
- package/types/config/getOptimizeDeps.test.d.ts +0 -2
- package/types/config/getOptimizeDeps.test.d.ts.map +0 -1
- package/types/config/getServerOptionsFilled.test.d.ts +0 -2
- package/types/config/getServerOptionsFilled.test.d.ts.map +0 -1
- package/types/config/getViteServerConfig.test.d.ts +0 -2
- package/types/config/getViteServerConfig.test.d.ts.map +0 -1
- package/types/config/mergeUserConfig.test.d.ts +0 -2
- package/types/config/mergeUserConfig.test.d.ts.map +0 -1
- package/types/exports/clean.test.d.ts +0 -2
- package/types/exports/clean.test.d.ts.map +0 -1
- package/types/exports/loadEnv.test.d.ts +0 -2
- package/types/exports/loadEnv.test.d.ts.map +0 -1
- package/types/plugins/autoDepOptimizePlugin.test.d.ts +0 -2
- package/types/plugins/autoDepOptimizePlugin.test.d.ts.map +0 -1
- package/types/plugins/resolveIdScan.test.d.ts +0 -2
- package/types/plugins/resolveIdScan.test.d.ts.map +0 -1
- package/types/plugins/rnCodegenPlugin.test.d.ts +0 -2
- package/types/plugins/rnCodegenPlugin.test.d.ts.map +0 -1
- package/types/plugins/serverExtensions.test.d.ts +0 -2
- package/types/plugins/serverExtensions.test.d.ts.map +0 -1
- package/types/serve/node.test.d.ts +0 -2
- package/types/serve/node.test.d.ts.map +0 -1
- package/types/utils/bindKeypressInput.test.d.ts +0 -2
- package/types/utils/bindKeypressInput.test.d.ts.map +0 -1
- package/types/utils/createNativeDevEngine.test.d.ts +0 -2
- package/types/utils/createNativeDevEngine.test.d.ts.map +0 -1
- package/types/utils/createNativeDevEngineFailure.test.d.ts +0 -2
- package/types/utils/createNativeDevEngineFailure.test.d.ts.map +0 -1
- package/types/utils/getBoundPort.test.d.ts +0 -2
- package/types/utils/getBoundPort.test.d.ts.map +0 -1
- package/types/utils/imageSizePatch.test.d.ts +0 -2
- package/types/utils/imageSizePatch.test.d.ts.map +0 -1
- package/types/utils/patches.test.d.ts +0 -2
- package/types/utils/patches.test.d.ts.map +0 -1
- package/types/utils/symbolicateNativeStack.test.d.ts +0 -2
- package/types/utils/symbolicateNativeStack.test.d.ts.map +0 -1
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
describe("getScannedOptimizeDepsConfig", function () {
|
|
3
|
-
it("filters excluded deps from scanned results", async function () {
|
|
4
|
-
var mockResult = {
|
|
5
|
-
prebundleDeps: ["react", "react-native-reanimated", "lodash"],
|
|
6
|
-
hasReanimated: true,
|
|
7
|
-
hasNativewind: false
|
|
8
|
-
};
|
|
9
|
-
var excludeArray = ["react-native-reanimated"];
|
|
10
|
-
var excludeStrings = excludeArray.filter(function (e) {
|
|
11
|
-
return typeof e === "string";
|
|
12
|
-
});
|
|
13
|
-
var excludeSet = new Set(excludeStrings);
|
|
14
|
-
var filteredDeps = mockResult.prebundleDeps.filter(function (dep) {
|
|
15
|
-
return !excludeSet.has(dep);
|
|
16
|
-
});
|
|
17
|
-
expect(filteredDeps).toContain("react");
|
|
18
|
-
expect(filteredDeps).toContain("lodash");
|
|
19
|
-
expect(filteredDeps).not.toContain("react-native-reanimated");
|
|
20
|
-
});
|
|
21
|
-
it("handles RegExp exclude patterns (ignores them for dep name filtering)", async function () {
|
|
22
|
-
var mockResult = {
|
|
23
|
-
prebundleDeps: ["react", "react-native-reanimated"],
|
|
24
|
-
hasReanimated: true,
|
|
25
|
-
hasNativewind: false
|
|
26
|
-
};
|
|
27
|
-
var excludeArray = [/some-pattern/, "react-native-reanimated"];
|
|
28
|
-
var excludeStrings = excludeArray.filter(function (e) {
|
|
29
|
-
return typeof e === "string";
|
|
30
|
-
});
|
|
31
|
-
var excludeSet = new Set(excludeStrings);
|
|
32
|
-
var filteredDeps = mockResult.prebundleDeps.filter(function (dep) {
|
|
33
|
-
return !excludeSet.has(dep);
|
|
34
|
-
});
|
|
35
|
-
expect(filteredDeps).toContain("react");
|
|
36
|
-
expect(filteredDeps).not.toContain("react-native-reanimated");
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
//# sourceMappingURL=autoDepOptimizePlugin.test.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["describe","expect","it","mockResult","prebundleDeps","hasReanimated","hasNativewind","excludeArray","excludeStrings","filter","e","excludeSet","Set","filteredDeps","dep","has","toContain","not"],"sources":["../../src/plugins/autoDepOptimizePlugin.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AAGrCF,QAAA,CAAS,gCAAgC,YAAM;EAC7CE,EAAA,CAAG,8CAA8C,kBAAY;IAE3D,IAAAC,UAAM;MACJC,aAAA,EAAe,CACf,SACA,yBAAe,EACjB,SAGA;MACAC,aAAM;MACNC,aAAM;IAEN;IAEA,IAAAC,YAAO,GAAY,CACnB,yBAAqB,CACrB;IACD,IAAAC,cAAA,GAAAD,YAAA,CAAAE,MAAA,WAAAC,CAAA;MAEE,cAAAA,CAAA;IACD;IAAmB,IACjBC,UAAA,GAAe,IAACC,GAAA,CAAAJ,cAAS;IAAyB,IAClDK,YAAA,GAAeV,UAAA,CAAAC,aAAA,CAAAK,MAAA,WAAAK,GAAA;MACf,QAAAH,UAAe,CAAAI,GAAA,CAAAD,GAAA;IACjB;IAGAb,MAAM,CAAAY,YAAA,EAAoCG,SAAC,QAAgB;IAC3Df,MAAM,CAAAY,YAAA,EAAAG,SAAiB,SAAa;IACpCf,MAAM,CAAAY,YAAa,EAAAI,GAAI,CAAAD,SAAI,0BAAc;EAEzC;EAEAd,EAAA,wEAAsC;IACtC,IAAAC,UAAO;MACRC,aAAA,GACF,S","ignoreList":[]}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it, vi } from "vitest";
|
|
2
|
-
describe("resolveId hooks should skip during dep optimization scan", () => {
|
|
3
|
-
describe("platform-specific-resolve", () => {
|
|
4
|
-
it("should return undefined when options.scan is true", async () => {
|
|
5
|
-
const {
|
|
6
|
-
getBaseVitePlugins
|
|
7
|
-
} = await import("../config/getBaseVitePlugins.mjs");
|
|
8
|
-
const plugins = getBaseVitePlugins();
|
|
9
|
-
const plugin = plugins.find(p => typeof p === "object" && p !== null && "name" in p && p.name === "platform-specific-resolve");
|
|
10
|
-
expect(plugin).toBeDefined();
|
|
11
|
-
if (!plugin || typeof plugin !== "object" || !("resolveId" in plugin)) {
|
|
12
|
-
throw new Error("Plugin not found or missing resolveId");
|
|
13
|
-
}
|
|
14
|
-
const resolveId = plugin.resolveId.handler;
|
|
15
|
-
const mockContext = {
|
|
16
|
-
resolve: vi.fn().mockResolvedValue({
|
|
17
|
-
id: "/some/path/file.ts"
|
|
18
|
-
}),
|
|
19
|
-
environment: {
|
|
20
|
-
name: "client"
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
const result = await resolveId.call(mockContext, "some-module", "/importer.ts", {
|
|
24
|
-
scan: true
|
|
25
|
-
});
|
|
26
|
-
expect(result).toBeUndefined();
|
|
27
|
-
expect(mockContext.resolve).not.toHaveBeenCalled();
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
//# sourceMappingURL=resolveIdScan.test.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["describe","expect","it","vi","getBaseVitePlugins","plugins","plugin","find","p","name","toBeDefined","Error","resolveId","handler","mockContext","resolve","fn","mockResolvedValue","id","environment","result","call","scan","toBeUndefined","not","toHaveBeenCalled"],"sources":["../../src/plugins/resolveIdScan.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,EAAIC,EAAA,QAAU;AAazCH,QAAA,CAAS,4DAA4D,MAAM;EACzEA,QAAA,CAAS,6BAA6B,MAAM;IAC1CE,EAAA,CAAG,qDAAqD,YAAY;MAElE,MAAM;QAAEE;MAAmB,IAAI,MAAM,OAAO,kCAA8B;MAC1E,MAAMC,OAAA,GAAUD,kBAAA,CAAmB;MAGnC,MAAME,MAAA,GAASD,OAAA,CAAQE,IAAA,CACpBC,CAAA,IACC,OAAOA,CAAA,KAAM,YACbA,CAAA,KAAM,QACN,UAAUA,CAAA,IACVA,CAAA,CAAEC,IAAA,KAAS,2BACf;MAEAR,MAAA,CAAOK,MAAM,EAAEI,WAAA,CAAY;MAC3B,IAAI,CAACJ,MAAA,IAAU,OAAOA,MAAA,KAAW,YAAY,EAAE,eAAeA,MAAA,GAAS;QACrE,MAAM,IAAIK,KAAA,CAAM,uCAAuC;MACzD;MAEA,MAAMC,SAAA,GAAaN,MAAA,CAAOM,SAAA,CAAkBC,OAAA;MAG5C,MAAMC,WAAA,GAAc;QAClBC,OAAA,EAASZ,EAAA,CAAGa,EAAA,CAAG,EAAEC,iBAAA,CAAkB;UAAEC,EAAA,EAAI;QAAqB,CAAC;QAC/DC,WAAA,EAAa;UAAEV,IAAA,EAAM;QAAS;MAChC;MAGA,MAAMW,MAAA,GAAS,MAAMR,SAAA,CAAUS,IAAA,CAAKP,WAAA,EAAa,eAAe,gBAAgB;QAC9EQ,IAAA,EAAM;MACR,CAAC;MAEDrB,MAAA,CAAOmB,MAAM,EAAEG,aAAA,CAAc;MAE7BtB,MAAA,CAAOa,WAAA,CAAYC,OAAO,EAAES,GAAA,CAAIC,gBAAA,CAAiB;IACnD,CAAC;EACH,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it, vi } from "vitest";
|
|
2
|
-
function _type_of(obj) {
|
|
3
|
-
"@swc/helpers - typeof";
|
|
4
|
-
|
|
5
|
-
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
6
|
-
}
|
|
7
|
-
describe("resolveId hooks should skip during dep optimization scan", function () {
|
|
8
|
-
describe("platform-specific-resolve", function () {
|
|
9
|
-
it("should return undefined when options.scan is true", async function () {
|
|
10
|
-
var {
|
|
11
|
-
getBaseVitePlugins
|
|
12
|
-
} = await import("../config/getBaseVitePlugins.native.js");
|
|
13
|
-
var plugins = getBaseVitePlugins();
|
|
14
|
-
var plugin = plugins.find(function (p) {
|
|
15
|
-
return (typeof p === "undefined" ? "undefined" : _type_of(p)) === "object" && p !== null && "name" in p && p.name === "platform-specific-resolve";
|
|
16
|
-
});
|
|
17
|
-
expect(plugin).toBeDefined();
|
|
18
|
-
if (!plugin || (typeof plugin === "undefined" ? "undefined" : _type_of(plugin)) !== "object" || !("resolveId" in plugin)) {
|
|
19
|
-
throw new Error("Plugin not found or missing resolveId");
|
|
20
|
-
}
|
|
21
|
-
var resolveId = plugin.resolveId.handler;
|
|
22
|
-
var mockContext = {
|
|
23
|
-
resolve: vi.fn().mockResolvedValue({
|
|
24
|
-
id: "/some/path/file.ts"
|
|
25
|
-
}),
|
|
26
|
-
environment: {
|
|
27
|
-
name: "client"
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
var result = await resolveId.call(mockContext, "some-module", "/importer.ts", {
|
|
31
|
-
scan: true
|
|
32
|
-
});
|
|
33
|
-
expect(result).toBeUndefined();
|
|
34
|
-
expect(mockContext.resolve).not.toHaveBeenCalled();
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
//# sourceMappingURL=resolveIdScan.test.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["describe","expect","it","vi","_type_of","obj","Symbol","constructor","getBaseVitePlugins","plugins","plugin","find","p","name","toBeDefined","Error","resolveId","handler","mockContext","resolve","fn","mockResolvedValue","id","environment"],"sources":["../../src/plugins/resolveIdScan.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,EAAIC,EAAA,QAAU;AAazC,SAASC,SAAAC,GAAA;EACP,uBAAS;;EACP,OAAGA,GAAA,WAAAC,MAAA,oBAAAD,GAAA,CAAAE,WAAqD,KAAAD,MAAY,qBAAAD,GAAA;AAElE;AACAL,QAAA,2DAAmC;EAGnCA,QAAA,4BAAuB;IAAAE,EAAA,oDAInB,oBACE;MACN;QAAAM;MAAA;MAEA,IAAAC,OAAO,GAAMD,kBAAc;MAC3B,IAAIE,MAAC,GAAAD,OAAU,CAAAE,IAAO,WAAWC,CAAA;QAC/B,OAAM,QAAIA,CAAM,iCAAAR,QAAuC,CAAAQ,CAAA,mBAAAA,CAAA,uBAAAA,CAAA,IAAAA,CAAA,CAAAC,IAAA;MACzD;MAEAZ,MAAM,CAAAS,MAAA,EAAAI,WAAoB;MAG1B,KAAAJ,MAAM,YAAcA,MAAA,iCAAAN,QAAA,CAAAM,MAAA,oCAAAA,MAAA;QAClB,UAASK,KAAM,wCAA0B;MAAsB;MAEjE,IAAAC,SAAA,GAAAN,MAAA,CAAAM,SAAA,CAAAC,OAAA;MAGA,IAAAC,WAAe;QACbC,OAAM,EAAAhB,EAAA,CAAAiB,EAAA,GAAAC,iBAAA;UACPC,EAAA;QAED;QAEAC,WAAO;UACRV,IAAA;QACF;MACF","ignoreList":[]}
|
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { rnCodegenPlugin, transformReactNativeCodegen } from "./rnCodegenPlugin.mjs";
|
|
3
|
-
describe("rnCodegenPlugin", () => {
|
|
4
|
-
it("generates view-config replacement for codegenNativeComponent default export", () => {
|
|
5
|
-
const inputCode = `
|
|
6
|
-
import type { ViewProps, HostComponent } from 'react-native';
|
|
7
|
-
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
8
|
-
|
|
9
|
-
export interface NativeProps extends ViewProps {
|
|
10
|
-
color?: string;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export default codegenNativeComponent<NativeProps>('MyCustomView') as HostComponent<NativeProps>;
|
|
14
|
-
`;
|
|
15
|
-
const result = transformReactNativeCodegen(inputCode, "/workspace/src/MyCustomViewNativeComponent.ts");
|
|
16
|
-
expect(result).toBeDefined();
|
|
17
|
-
expect(result?.code).not.toContain("codegenNativeComponent<NativeProps>");
|
|
18
|
-
expect(result?.code).toContain("export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG);");
|
|
19
|
-
expect(result?.code).toContain('uiViewClassName: "MyCustomView"');
|
|
20
|
-
expect(result?.code).toContain("export const __INTERNAL_VIEW_CONFIG");
|
|
21
|
-
expect(result?.map).toBeDefined();
|
|
22
|
-
});
|
|
23
|
-
it("leaves already-generated output alone on a second pass", () => {
|
|
24
|
-
const inputCode = `
|
|
25
|
-
import type { ViewProps, HostComponent } from 'react-native';
|
|
26
|
-
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
27
|
-
import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands';
|
|
28
|
-
|
|
29
|
-
export interface NativeProps extends ViewProps {
|
|
30
|
-
color?: string;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
interface NativeCommands {
|
|
34
|
-
reload: (viewRef: React.ElementRef<HostComponent<NativeProps>>) => void;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export const Commands = codegenNativeCommands<NativeCommands>({
|
|
38
|
-
supportedCommands: ['reload'],
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
export default codegenNativeComponent<NativeProps>('MyCustomView') as HostComponent<NativeProps>;
|
|
42
|
-
`;
|
|
43
|
-
const id = "/workspace/src/MyCustomViewNativeComponent.ts";
|
|
44
|
-
const first = transformReactNativeCodegen(inputCode, id);
|
|
45
|
-
expect(first?.code).toContain("export const Commands");
|
|
46
|
-
expect(() => transformReactNativeCodegen(first.code, id)).not.toThrow();
|
|
47
|
-
expect(transformReactNativeCodegen(first.code, id)).toBeUndefined();
|
|
48
|
-
});
|
|
49
|
-
it("removes export const Commands = codegenNativeCommands(...) and generates runtime commands", () => {
|
|
50
|
-
const inputCode = `
|
|
51
|
-
import * as React from 'react';
|
|
52
|
-
import type { ViewProps, HostComponent } from 'react-native';
|
|
53
|
-
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
54
|
-
import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands';
|
|
55
|
-
|
|
56
|
-
export interface NativeProps extends ViewProps {
|
|
57
|
-
color?: string;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
type ComponentType = HostComponent<NativeProps>;
|
|
61
|
-
|
|
62
|
-
interface NativeCommands {
|
|
63
|
-
flash: (viewRef: React.ElementRef<ComponentType>, enabled: boolean) => void;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
|
|
67
|
-
supportedCommands: ['flash'],
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
export default codegenNativeComponent<NativeProps>('MyCustomView') as HostComponent<NativeProps>;
|
|
71
|
-
`;
|
|
72
|
-
const result = transformReactNativeCodegen(inputCode, "/workspace/src/MyCustomViewNativeComponent.ts");
|
|
73
|
-
expect(result).toBeDefined();
|
|
74
|
-
expect(result?.code).not.toContain("codegenNativeCommands<NativeCommands>");
|
|
75
|
-
expect(result?.code).toContain("export const Commands = {");
|
|
76
|
-
expect(result?.code).toContain('dispatchCommand(ref, "flash", [enabled]);');
|
|
77
|
-
expect(result?.code).toContain("export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG);");
|
|
78
|
-
});
|
|
79
|
-
it("throws an error if native commands are exported with a name other than Commands", () => {
|
|
80
|
-
const inputCode = `
|
|
81
|
-
import * as React from 'react';
|
|
82
|
-
import type { ViewProps, HostComponent } from 'react-native';
|
|
83
|
-
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
84
|
-
import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands';
|
|
85
|
-
|
|
86
|
-
export interface NativeProps extends ViewProps {
|
|
87
|
-
color?: string;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
type ComponentType = HostComponent<NativeProps>;
|
|
91
|
-
|
|
92
|
-
interface NativeCommands {
|
|
93
|
-
flash: (viewRef: React.ElementRef<ComponentType>, enabled: boolean) => void;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
export const OtherCommands: NativeCommands = codegenNativeCommands<NativeCommands>({
|
|
97
|
-
supportedCommands: ['flash'],
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
export default codegenNativeComponent<NativeProps>('MyCustomView') as HostComponent<NativeProps>;
|
|
101
|
-
`;
|
|
102
|
-
expect(() => {
|
|
103
|
-
transformReactNativeCodegen(inputCode, "/workspace/src/MyCustomViewNativeComponent.ts");
|
|
104
|
-
}).toThrow("Native commands must be exported with the name 'Commands'");
|
|
105
|
-
});
|
|
106
|
-
it("throws an error if 'Commands' is exported without codegenNativeCommands", () => {
|
|
107
|
-
const inputCode = `
|
|
108
|
-
import type { ViewProps, HostComponent } from 'react-native';
|
|
109
|
-
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
110
|
-
|
|
111
|
-
export interface NativeProps extends ViewProps {
|
|
112
|
-
color?: string;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export const Commands = 123;
|
|
116
|
-
|
|
117
|
-
export default codegenNativeComponent<NativeProps>('MyCustomView') as HostComponent<NativeProps>;
|
|
118
|
-
`;
|
|
119
|
-
expect(() => {
|
|
120
|
-
transformReactNativeCodegen(inputCode, "/workspace/src/MyCustomViewNativeComponent.ts");
|
|
121
|
-
}).toThrow("'Commands' is a reserved export and may only be used to export the result of codegenNativeCommands.");
|
|
122
|
-
});
|
|
123
|
-
it("throws an error if 'Commands' is exported via export specifier without codegenNativeCommands", () => {
|
|
124
|
-
const inputCode = `
|
|
125
|
-
import type { ViewProps, HostComponent } from 'react-native';
|
|
126
|
-
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
127
|
-
|
|
128
|
-
export interface NativeProps extends ViewProps {
|
|
129
|
-
color?: string;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
const Commands = 123;
|
|
133
|
-
export { Commands };
|
|
134
|
-
|
|
135
|
-
export default codegenNativeComponent<NativeProps>('MyCustomView') as HostComponent<NativeProps>;
|
|
136
|
-
`;
|
|
137
|
-
expect(() => {
|
|
138
|
-
transformReactNativeCodegen(inputCode, "/workspace/src/MyCustomViewNativeComponent.ts");
|
|
139
|
-
}).toThrow("'Commands' is a reserved export and may only be used to export the result of codegenNativeCommands.");
|
|
140
|
-
});
|
|
141
|
-
it("ignores files that do not match the codegen pattern", () => {
|
|
142
|
-
const inputCode = `
|
|
143
|
-
export default function Button() {
|
|
144
|
-
return null;
|
|
145
|
-
}
|
|
146
|
-
`;
|
|
147
|
-
const result = transformReactNativeCodegen(inputCode, "/workspace/src/Button.tsx");
|
|
148
|
-
expect(result).toBeUndefined();
|
|
149
|
-
});
|
|
150
|
-
it("ignores matching files without codegenNativeComponent", () => {
|
|
151
|
-
const inputCode = `
|
|
152
|
-
export default function MyNativeComponent() {
|
|
153
|
-
return null;
|
|
154
|
-
}
|
|
155
|
-
`;
|
|
156
|
-
const result = transformReactNativeCodegen(inputCode, "/workspace/src/MyNativeComponent.tsx");
|
|
157
|
-
expect(result).toBeUndefined();
|
|
158
|
-
});
|
|
159
|
-
it("supports files inside specs/ directory", () => {
|
|
160
|
-
const inputCode = `
|
|
161
|
-
import type { ViewProps, HostComponent } from 'react-native';
|
|
162
|
-
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
163
|
-
|
|
164
|
-
export interface NativeProps extends ViewProps {
|
|
165
|
-
color?: string;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
export default codegenNativeComponent<NativeProps>('SpecView') as HostComponent<NativeProps>;
|
|
169
|
-
`;
|
|
170
|
-
const result = transformReactNativeCodegen(inputCode, "/workspace/specs/SpecView.ts");
|
|
171
|
-
expect(result).toBeDefined();
|
|
172
|
-
expect(result?.code).toContain('uiViewClassName: "SpecView"');
|
|
173
|
-
});
|
|
174
|
-
it("works through the Vite plugin interface", () => {
|
|
175
|
-
const plugin = rnCodegenPlugin();
|
|
176
|
-
expect(plugin.name).toBe("vxrn:rn-codegen");
|
|
177
|
-
expect(plugin.enforce).toBe("pre");
|
|
178
|
-
const inputCode = `
|
|
179
|
-
import type { ViewProps, HostComponent } from 'react-native';
|
|
180
|
-
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
181
|
-
|
|
182
|
-
export interface NativeProps extends ViewProps {
|
|
183
|
-
color?: string;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
export default codegenNativeComponent<NativeProps>('PluginView') as HostComponent<NativeProps>;
|
|
187
|
-
`;
|
|
188
|
-
const transformFn = typeof plugin.transform === "function" ? plugin.transform : plugin.transform?.handler;
|
|
189
|
-
const result = transformFn.call({}, inputCode, "/workspace/src/PluginViewNativeComponent.ts");
|
|
190
|
-
expect(result).toBeDefined();
|
|
191
|
-
expect(result?.code).toContain('uiViewClassName: "PluginView"');
|
|
192
|
-
expect(result?.map).toBeDefined();
|
|
193
|
-
});
|
|
194
|
-
it("removes export const Commands with sequence expression (e.g. coverage instrumentation)", () => {
|
|
195
|
-
const inputCode = `
|
|
196
|
-
import type { ViewProps, HostComponent } from 'react-native';
|
|
197
|
-
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
198
|
-
import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands';
|
|
199
|
-
|
|
200
|
-
export interface NativeProps extends ViewProps {
|
|
201
|
-
color?: string;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
export const Commands = (0, codegenNativeCommands({
|
|
205
|
-
supportedCommands: [],
|
|
206
|
-
}));
|
|
207
|
-
|
|
208
|
-
export default codegenNativeComponent<NativeProps>('SequenceView') as HostComponent<NativeProps>;
|
|
209
|
-
`;
|
|
210
|
-
const result = transformReactNativeCodegen(inputCode, "/workspace/src/SequenceViewNativeComponent.ts");
|
|
211
|
-
expect(result).toBeDefined();
|
|
212
|
-
expect(result?.code).not.toContain("export const Commands");
|
|
213
|
-
expect(result?.code).toContain('uiViewClassName: "SequenceView"');
|
|
214
|
-
expect(result?.code).toContain("export default NativeComponentRegistry.get");
|
|
215
|
-
});
|
|
216
|
-
it("transforms Flow component specs correctly", () => {
|
|
217
|
-
const flowCode = `/**
|
|
218
|
-
* @flow strict-local
|
|
219
|
-
* @format
|
|
220
|
-
*/
|
|
221
|
-
|
|
222
|
-
import type {ViewProps} from 'react-native/Libraries/Components/View/ViewPropTypes';
|
|
223
|
-
import type {HostComponent} from 'react-native/Libraries/Renderer/shims/ReactNativeTypes';
|
|
224
|
-
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
225
|
-
|
|
226
|
-
type FlowViewProps = $ReadOnly<{
|
|
227
|
-
...ViewProps,
|
|
228
|
-
title?: string,
|
|
229
|
-
}>;
|
|
230
|
-
|
|
231
|
-
export default codegenNativeComponent<FlowViewProps>('FlowView') as HostComponent<FlowViewProps>;
|
|
232
|
-
`;
|
|
233
|
-
const result = transformReactNativeCodegen(flowCode, "/workspace/src/FlowViewNativeComponent.js");
|
|
234
|
-
expect(result).toBeDefined();
|
|
235
|
-
expect(result?.code).toContain('uiViewClassName: "FlowView"');
|
|
236
|
-
expect(result?.code).toContain("export default NativeComponentRegistry.get");
|
|
237
|
-
});
|
|
238
|
-
});
|
|
239
|
-
//# sourceMappingURL=rnCodegenPlugin.test.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["describe","expect","it","rnCodegenPlugin","transformReactNativeCodegen","inputCode","result","toBeDefined","code","not","toContain","map","id","first","toThrow","toBeUndefined","plugin","name","toBe","enforce","transformFn","transform","handler","call","flowCode"],"sources":["../../src/plugins/rnCodegenPlugin.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { rnCodegenPlugin, transformReactNativeCodegen } from "./rnCodegenPlugin.native.js";
|
|
3
|
-
describe("rnCodegenPlugin", function () {
|
|
4
|
-
it("generates view-config replacement for codegenNativeComponent default export", function () {
|
|
5
|
-
var inputCode = `
|
|
6
|
-
import type { ViewProps, HostComponent } from 'react-native';
|
|
7
|
-
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
8
|
-
|
|
9
|
-
export interface NativeProps extends ViewProps {
|
|
10
|
-
color?: string;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export default codegenNativeComponent<NativeProps>('MyCustomView') as HostComponent<NativeProps>;
|
|
14
|
-
`;
|
|
15
|
-
var result = transformReactNativeCodegen(inputCode, "/workspace/src/MyCustomViewNativeComponent.ts");
|
|
16
|
-
expect(result).toBeDefined();
|
|
17
|
-
expect(result === null || result === void 0 ? void 0 : result.code).not.toContain("codegenNativeComponent<NativeProps>");
|
|
18
|
-
expect(result === null || result === void 0 ? void 0 : result.code).toContain("export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG);");
|
|
19
|
-
expect(result === null || result === void 0 ? void 0 : result.code).toContain('uiViewClassName: "MyCustomView"');
|
|
20
|
-
expect(result === null || result === void 0 ? void 0 : result.code).toContain("export const __INTERNAL_VIEW_CONFIG");
|
|
21
|
-
expect(result === null || result === void 0 ? void 0 : result.map).toBeDefined();
|
|
22
|
-
});
|
|
23
|
-
it("leaves already-generated output alone on a second pass", function () {
|
|
24
|
-
var inputCode = `
|
|
25
|
-
import type { ViewProps, HostComponent } from 'react-native';
|
|
26
|
-
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
27
|
-
import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands';
|
|
28
|
-
|
|
29
|
-
export interface NativeProps extends ViewProps {
|
|
30
|
-
color?: string;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
interface NativeCommands {
|
|
34
|
-
reload: (viewRef: React.ElementRef<HostComponent<NativeProps>>) => void;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export const Commands = codegenNativeCommands<NativeCommands>({
|
|
38
|
-
supportedCommands: ['reload'],
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
export default codegenNativeComponent<NativeProps>('MyCustomView') as HostComponent<NativeProps>;
|
|
42
|
-
`;
|
|
43
|
-
var id = "/workspace/src/MyCustomViewNativeComponent.ts";
|
|
44
|
-
var first = transformReactNativeCodegen(inputCode, id);
|
|
45
|
-
expect(first === null || first === void 0 ? void 0 : first.code).toContain("export const Commands");
|
|
46
|
-
expect(function () {
|
|
47
|
-
return transformReactNativeCodegen(first.code, id);
|
|
48
|
-
}).not.toThrow();
|
|
49
|
-
expect(transformReactNativeCodegen(first.code, id)).toBeUndefined();
|
|
50
|
-
});
|
|
51
|
-
it("removes export const Commands = codegenNativeCommands(...) and generates runtime commands", function () {
|
|
52
|
-
var inputCode = `
|
|
53
|
-
import * as React from 'react';
|
|
54
|
-
import type { ViewProps, HostComponent } from 'react-native';
|
|
55
|
-
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
56
|
-
import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands';
|
|
57
|
-
|
|
58
|
-
export interface NativeProps extends ViewProps {
|
|
59
|
-
color?: string;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
type ComponentType = HostComponent<NativeProps>;
|
|
63
|
-
|
|
64
|
-
interface NativeCommands {
|
|
65
|
-
flash: (viewRef: React.ElementRef<ComponentType>, enabled: boolean) => void;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
|
|
69
|
-
supportedCommands: ['flash'],
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
export default codegenNativeComponent<NativeProps>('MyCustomView') as HostComponent<NativeProps>;
|
|
73
|
-
`;
|
|
74
|
-
var result = transformReactNativeCodegen(inputCode, "/workspace/src/MyCustomViewNativeComponent.ts");
|
|
75
|
-
expect(result).toBeDefined();
|
|
76
|
-
expect(result === null || result === void 0 ? void 0 : result.code).not.toContain("codegenNativeCommands<NativeCommands>");
|
|
77
|
-
expect(result === null || result === void 0 ? void 0 : result.code).toContain("export const Commands = {");
|
|
78
|
-
expect(result === null || result === void 0 ? void 0 : result.code).toContain('dispatchCommand(ref, "flash", [enabled]);');
|
|
79
|
-
expect(result === null || result === void 0 ? void 0 : result.code).toContain("export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG);");
|
|
80
|
-
});
|
|
81
|
-
it("throws an error if native commands are exported with a name other than Commands", function () {
|
|
82
|
-
var inputCode = `
|
|
83
|
-
import * as React from 'react';
|
|
84
|
-
import type { ViewProps, HostComponent } from 'react-native';
|
|
85
|
-
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
86
|
-
import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands';
|
|
87
|
-
|
|
88
|
-
export interface NativeProps extends ViewProps {
|
|
89
|
-
color?: string;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
type ComponentType = HostComponent<NativeProps>;
|
|
93
|
-
|
|
94
|
-
interface NativeCommands {
|
|
95
|
-
flash: (viewRef: React.ElementRef<ComponentType>, enabled: boolean) => void;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
export const OtherCommands: NativeCommands = codegenNativeCommands<NativeCommands>({
|
|
99
|
-
supportedCommands: ['flash'],
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
export default codegenNativeComponent<NativeProps>('MyCustomView') as HostComponent<NativeProps>;
|
|
103
|
-
`;
|
|
104
|
-
expect(function () {
|
|
105
|
-
transformReactNativeCodegen(inputCode, "/workspace/src/MyCustomViewNativeComponent.ts");
|
|
106
|
-
}).toThrow("Native commands must be exported with the name 'Commands'");
|
|
107
|
-
});
|
|
108
|
-
it("throws an error if 'Commands' is exported without codegenNativeCommands", function () {
|
|
109
|
-
var inputCode = `
|
|
110
|
-
import type { ViewProps, HostComponent } from 'react-native';
|
|
111
|
-
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
112
|
-
|
|
113
|
-
export interface NativeProps extends ViewProps {
|
|
114
|
-
color?: string;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
export const Commands = 123;
|
|
118
|
-
|
|
119
|
-
export default codegenNativeComponent<NativeProps>('MyCustomView') as HostComponent<NativeProps>;
|
|
120
|
-
`;
|
|
121
|
-
expect(function () {
|
|
122
|
-
transformReactNativeCodegen(inputCode, "/workspace/src/MyCustomViewNativeComponent.ts");
|
|
123
|
-
}).toThrow("'Commands' is a reserved export and may only be used to export the result of codegenNativeCommands.");
|
|
124
|
-
});
|
|
125
|
-
it("throws an error if 'Commands' is exported via export specifier without codegenNativeCommands", function () {
|
|
126
|
-
var inputCode = `
|
|
127
|
-
import type { ViewProps, HostComponent } from 'react-native';
|
|
128
|
-
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
129
|
-
|
|
130
|
-
export interface NativeProps extends ViewProps {
|
|
131
|
-
color?: string;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
const Commands = 123;
|
|
135
|
-
export { Commands };
|
|
136
|
-
|
|
137
|
-
export default codegenNativeComponent<NativeProps>('MyCustomView') as HostComponent<NativeProps>;
|
|
138
|
-
`;
|
|
139
|
-
expect(function () {
|
|
140
|
-
transformReactNativeCodegen(inputCode, "/workspace/src/MyCustomViewNativeComponent.ts");
|
|
141
|
-
}).toThrow("'Commands' is a reserved export and may only be used to export the result of codegenNativeCommands.");
|
|
142
|
-
});
|
|
143
|
-
it("ignores files that do not match the codegen pattern", function () {
|
|
144
|
-
var inputCode = `
|
|
145
|
-
export default function Button() {
|
|
146
|
-
return null;
|
|
147
|
-
}
|
|
148
|
-
`;
|
|
149
|
-
var result = transformReactNativeCodegen(inputCode, "/workspace/src/Button.tsx");
|
|
150
|
-
expect(result).toBeUndefined();
|
|
151
|
-
});
|
|
152
|
-
it("ignores matching files without codegenNativeComponent", function () {
|
|
153
|
-
var inputCode = `
|
|
154
|
-
export default function MyNativeComponent() {
|
|
155
|
-
return null;
|
|
156
|
-
}
|
|
157
|
-
`;
|
|
158
|
-
var result = transformReactNativeCodegen(inputCode, "/workspace/src/MyNativeComponent.tsx");
|
|
159
|
-
expect(result).toBeUndefined();
|
|
160
|
-
});
|
|
161
|
-
it("supports files inside specs/ directory", function () {
|
|
162
|
-
var inputCode = `
|
|
163
|
-
import type { ViewProps, HostComponent } from 'react-native';
|
|
164
|
-
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
165
|
-
|
|
166
|
-
export interface NativeProps extends ViewProps {
|
|
167
|
-
color?: string;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
export default codegenNativeComponent<NativeProps>('SpecView') as HostComponent<NativeProps>;
|
|
171
|
-
`;
|
|
172
|
-
var result = transformReactNativeCodegen(inputCode, "/workspace/specs/SpecView.ts");
|
|
173
|
-
expect(result).toBeDefined();
|
|
174
|
-
expect(result === null || result === void 0 ? void 0 : result.code).toContain('uiViewClassName: "SpecView"');
|
|
175
|
-
});
|
|
176
|
-
it("works through the Vite plugin interface", function () {
|
|
177
|
-
var _plugin_transform;
|
|
178
|
-
var plugin = rnCodegenPlugin();
|
|
179
|
-
expect(plugin.name).toBe("vxrn:rn-codegen");
|
|
180
|
-
expect(plugin.enforce).toBe("pre");
|
|
181
|
-
var inputCode = `
|
|
182
|
-
import type { ViewProps, HostComponent } from 'react-native';
|
|
183
|
-
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
184
|
-
|
|
185
|
-
export interface NativeProps extends ViewProps {
|
|
186
|
-
color?: string;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
export default codegenNativeComponent<NativeProps>('PluginView') as HostComponent<NativeProps>;
|
|
190
|
-
`;
|
|
191
|
-
var transformFn = typeof plugin.transform === "function" ? plugin.transform : (_plugin_transform = plugin.transform) === null || _plugin_transform === void 0 ? void 0 : _plugin_transform.handler;
|
|
192
|
-
var result = transformFn.call({}, inputCode, "/workspace/src/PluginViewNativeComponent.ts");
|
|
193
|
-
expect(result).toBeDefined();
|
|
194
|
-
expect(result === null || result === void 0 ? void 0 : result.code).toContain('uiViewClassName: "PluginView"');
|
|
195
|
-
expect(result === null || result === void 0 ? void 0 : result.map).toBeDefined();
|
|
196
|
-
});
|
|
197
|
-
it("removes export const Commands with sequence expression (e.g. coverage instrumentation)", function () {
|
|
198
|
-
var inputCode = `
|
|
199
|
-
import type { ViewProps, HostComponent } from 'react-native';
|
|
200
|
-
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
201
|
-
import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands';
|
|
202
|
-
|
|
203
|
-
export interface NativeProps extends ViewProps {
|
|
204
|
-
color?: string;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
export const Commands = (0, codegenNativeCommands({
|
|
208
|
-
supportedCommands: [],
|
|
209
|
-
}));
|
|
210
|
-
|
|
211
|
-
export default codegenNativeComponent<NativeProps>('SequenceView') as HostComponent<NativeProps>;
|
|
212
|
-
`;
|
|
213
|
-
var result = transformReactNativeCodegen(inputCode, "/workspace/src/SequenceViewNativeComponent.ts");
|
|
214
|
-
expect(result).toBeDefined();
|
|
215
|
-
expect(result === null || result === void 0 ? void 0 : result.code).not.toContain("export const Commands");
|
|
216
|
-
expect(result === null || result === void 0 ? void 0 : result.code).toContain('uiViewClassName: "SequenceView"');
|
|
217
|
-
expect(result === null || result === void 0 ? void 0 : result.code).toContain("export default NativeComponentRegistry.get");
|
|
218
|
-
});
|
|
219
|
-
it("transforms Flow component specs correctly", function () {
|
|
220
|
-
var flowCode = `/**
|
|
221
|
-
* @flow strict-local
|
|
222
|
-
* @format
|
|
223
|
-
*/
|
|
224
|
-
|
|
225
|
-
import type {ViewProps} from 'react-native/Libraries/Components/View/ViewPropTypes';
|
|
226
|
-
import type {HostComponent} from 'react-native/Libraries/Renderer/shims/ReactNativeTypes';
|
|
227
|
-
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
228
|
-
|
|
229
|
-
type FlowViewProps = $ReadOnly<{
|
|
230
|
-
...ViewProps,
|
|
231
|
-
title?: string,
|
|
232
|
-
}>;
|
|
233
|
-
|
|
234
|
-
export default codegenNativeComponent<FlowViewProps>('FlowView') as HostComponent<FlowViewProps>;
|
|
235
|
-
`;
|
|
236
|
-
var result = transformReactNativeCodegen(flowCode, "/workspace/src/FlowViewNativeComponent.js");
|
|
237
|
-
expect(result).toBeDefined();
|
|
238
|
-
expect(result === null || result === void 0 ? void 0 : result.code).toContain('uiViewClassName: "FlowView"');
|
|
239
|
-
expect(result === null || result === void 0 ? void 0 : result.code).toContain("export default NativeComponentRegistry.get");
|
|
240
|
-
});
|
|
241
|
-
});
|
|
242
|
-
//# sourceMappingURL=rnCodegenPlugin.test.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["describe","expect","it","rnCodegenPlugin","transformReactNativeCodegen","inputCode","result","toBeDefined","code","not","toContain","map","id","first","toThrow","toBeUndefined","_plugin_transform","plugin","name","toBe","enforce","transformFn","transform","handler","call","flowCode"],"sources":["../../src/plugins/rnCodegenPlugin.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|