From 1501410aae720720ced3ef994b382b66efff1dbd Mon Sep 17 00:00:00 2001 From: ceceppa Date: Tue, 6 Sep 2022 09:11:20 +0200 Subject: [PATCH] Add support for mocking files --- .gitignore | 3 + example/babel.config.js | 19 ++++ example/metro.config.js | 31 +++-- example/src/PressMe.button.owl.tsx | 6 + example/src/PressMe.button.tsx | 6 + example/src/PressMe.tsx | 106 ++++++++++++++++++ lib/cli/build.ts | 2 +- .../reactnativeowl/ReactNativeOwlModule.java | 11 ++ package.json | 3 +- 9 files changed, 177 insertions(+), 10 deletions(-) create mode 100644 example/src/PressMe.button.owl.tsx create mode 100644 example/src/PressMe.button.tsx create mode 100644 example/src/PressMe.tsx diff --git a/.gitignore b/.gitignore index 7265300a..0757e05e 100644 --- a/.gitignore +++ b/.gitignore @@ -62,3 +62,6 @@ dist/ # Expo Example prebuild generated files ExpoExample/android ExpoExample/ios + +# IntelliJ +/.idea diff --git a/example/babel.config.js b/example/babel.config.js index f842b77f..aa01a78b 100644 --- a/example/babel.config.js +++ b/example/babel.config.js @@ -1,3 +1,22 @@ module.exports = { presets: ['module:metro-react-native-babel-preset'], + plugins: [ + [ + 'module-resolver', + { + root: ['./src'], + extensions: [ + '.owl.ts', + '.owl.tsx', + '.owl.js', + '.owl.jsx', + '.ts', + '.tsx', + '.js', + '.jsx', + ], + alias: {}, + }, + ], + ], }; diff --git a/example/metro.config.js b/example/metro.config.js index 3635ddaa..9fbf97d9 100644 --- a/example/metro.config.js +++ b/example/metro.config.js @@ -14,6 +14,28 @@ const extraNodeModules = { }; const watchFolders = [path.resolve(path.join(__dirname, '..', 'dist'))]; +const resolver = { + extraNodeModules: new Proxy(extraNodeModules, { + get: (target, name) => + name in target + ? target[name] + : path.join(process.cwd(), `node_modules/${name}`), + }), +}; + +if (process.env.OWL_BUILD) { + resolver.sourceExts = [ + 'owl.ts', + 'owl.tsx', + 'owl.js', + 'owl.jsx', + 'ts', + 'tsx', + 'js', + 'jsx', + ]; +} + module.exports = { transformer: { getTransformOptions: async () => ({ @@ -23,13 +45,6 @@ module.exports = { }, }), }, - resolver: { - extraNodeModules: new Proxy(extraNodeModules, { - get: (target, name) => - name in target - ? target[name] - : path.join(process.cwd(), `node_modules/${name}`), - }), - }, + resolver, watchFolders, }; diff --git a/example/src/PressMe.button.owl.tsx b/example/src/PressMe.button.owl.tsx new file mode 100644 index 00000000..39da6dab --- /dev/null +++ b/example/src/PressMe.button.owl.tsx @@ -0,0 +1,6 @@ +import * as React from 'react'; +import { Button } from 'react-native'; + +export const PressMeButton = () => { + return