// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. /* eslint-disable no-console */ const resolve = require('path').resolve; const fs = require('fs'); const modulesRegex = /\/(node_modules)/; // This script will let the react native packager what modules to include // in the main bundle and what modules to blacklist from the inline requires // this modules are taken from the modulePaths.js file const config = { transformer: { getTransformOptions: (entryFile, {platform}) => { console.log('BUILDING MODULES FOR', platform); const moduleMap = {}; let modulePaths = []; if (platform === 'android') { modulePaths = require('./packager/modules.android'); } else { modulePaths = require('./packager/modules.ios'); } modulePaths.forEach((path) => { let fsFile = path; if (path.match(modulesRegex).length > 1) { fsFile = path.replace(modulesRegex, ''); } if (fs.existsSync(fsFile)) { moduleMap[resolve(path)] = true; } }); return { preloadedModules: moduleMap, transform: { inlineRequires: { blockList: moduleMap, }, }, }; }, }, maxWorkers: 4, }; module.exports = config;