UNPKG

react-native-expo-moengage

Version:

MoEngage Expo plugin for integrating MoEngage React-Native SDK

81 lines (80 loc) 3.81 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.addServiceToManifestIfNotExist = addServiceToManifestIfNotExist; exports.isServiceExistInManifest = isServiceExistInManifest; exports.addServiceToManifest = addServiceToManifest; exports.copyFile = copyFile; exports.addDependencyToGradle = addDependencyToGradle; const node_fs_1 = __importDefault(require("node:fs")); const node_path_1 = __importDefault(require("node:path")); /** * Add serviceEntry to the main application manifest if does not already exist. */ function addServiceToManifestIfNotExist(mainApplication, serviceEntry, serviceName) { console.log('Checking if service exists:', serviceName); if (!isServiceExistInManifest(mainApplication, serviceName)) { console.log('Adding service to manifest:', serviceName); addServiceToManifest(mainApplication, serviceEntry); } return mainApplication; } /** * Return true if given serviceName already exists in the main application manifest, else false. */ function isServiceExistInManifest(mainApplication, serviceName) { const isServiceExist = (mainApplication.service || []).find((service) => service.$ && service.$['android:name'] === serviceName); console.log('Service exists:', serviceName, isServiceExist !== undefined); return isServiceExist !== undefined; } /** * Add serviceEntry to the main application manifest. */ function addServiceToManifest(mainApplication, serviceEntry) { console.log('Adding service entry:', serviceEntry); if (!mainApplication.service) { mainApplication.service = []; } mainApplication.service.push(serviceEntry); } /** * Copy file from src to dest after creating dest directory if not exist */ function copyFile(src, dest) { return __awaiter(this, void 0, void 0, function* () { let destPath = dest; if (node_fs_1.default.existsSync(dest) && node_fs_1.default.statSync(dest).isDirectory()) { destPath = node_path_1.default.join(dest, node_path_1.default.basename(src)); } const destDir = node_path_1.default.dirname(destPath); if (!node_fs_1.default.existsSync(destDir)) { node_fs_1.default.mkdirSync(destDir, { recursive: true }); } console.log('Copying file from', src, 'to', destPath); node_fs_1.default.copyFileSync(src, destPath); }); } /** * Add a dependency to the dependencies block in app/build.gradle if not already present. */ function addDependencyToGradle(contents, group, module, version) { const dependency = `implementation("${group}:${module}:${version}")`; console.log('Checking for dependency:', group, module, version); if (!contents.includes(`${group}:${module}`)) { console.log('Adding dependency:', dependency); return contents.replace(/dependencies\s*\{/, match => `${match}\n ${dependency}`); } console.log('Dependency already present:', dependency); return contents; }