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