UNPKG

onairos

Version:

The Onairos Library is a collection of functions that enable Applications to connect and communicate data with Onairos Identities via User Authorization. Integration for developers is seamless, simple and effective for all applications. LLM SDK capabiliti

101 lines (99 loc) 2.69 kB
const path = require('path'); const TerserPlugin = require('terser-webpack-plugin'); const { ProvidePlugin, NormalModuleReplacementPlugin } = require('webpack'); module.exports = { mode: 'production', entry: './src/onairos.native.jsx', output: { path: path.resolve(__dirname, 'dist'), filename: 'onairos.native.js', library: { name: 'Onairos', type: 'umd', export: 'default', }, globalObject: 'this', }, externals: { 'react': 'react', 'react-native': 'react-native', 'react-dom': 'react-dom', }, optimization: { minimize: true, minimizer: [new TerserPlugin({ terserOptions: { format: { comments: false, }, compress: { drop_console: false, // Keep console logs for debugging }, }, extractComments: false, })], }, plugins: [ // Provide polyfills for browser APIs that might not exist in React Native new ProvidePlugin({ process: 'process/browser', Buffer: ['buffer', 'Buffer'], }), // Replace browser-specific modules with empty modules for React Native new NormalModuleReplacementPlugin( /lucide-react/, path.resolve(__dirname, 'src/mobile/shims/lucide-shim.js') ), ], module: { rules: [ { test: /\.(js|jsx)$/, exclude: /node_modules/, use: { loader: 'babel-loader', options: { presets: [ '@babel/preset-env', '@babel/preset-react', ], plugins: [ '@babel/plugin-transform-runtime', ], }, }, }, { test: /\.css$/, use: ['style-loader', 'css-loader'], }, // Ignore native image formats that don't work in React Native { test: /\.(png|jpe?g|gif|svg)$/i, use: [ { loader: 'file-loader', options: { emitFile: false, // Don't emit files for React Native name: '[path][name].[ext]', }, }, ], }, ], }, resolve: { extensions: ['.js', '.jsx', '.json'], alias: { '@': path.resolve(__dirname, 'src'), // Add shims for browser APIs not available in React Native 'browser-apis': path.resolve(__dirname, 'src/mobile/shims/browser-apis.js'), }, fallback: { "crypto": false, "stream": require.resolve("stream-browserify"), "buffer": require.resolve("buffer/"), "process": require.resolve("process/browser"), } }, };