/** * @file This script is auto-generated by create-nitro-module and should not be edited. * * @description This script applies a workaround for Android by modifying the 'OnLoad.cpp' file. * It reads the file content and removes the 'margelo/nitro/' string from it. This enables support for custom package names. * * @module create-nitro-module */ const path = require('node:path') const { writeFile, readFile } = require('node:fs/promises') const { readdir } = require('node:fs/promises') const updateViewManagerFiles = async (file) => { const viewManagerFile = path.join( process.cwd(), 'nitrogen/generated/android/kotlin/com/margelo/nitro/omni/views', file ) const viewManagerStr = await readFile(viewManagerFile, { encoding: 'utf8' }) await writeFile( viewManagerFile, viewManagerStr.replace( /com\.margelo\.nitro\.omni\.\*/g, 'com.omni.*' ) ) } const androidWorkaround = async () => { const androidOnLoadFile = path.join( process.cwd(), 'nitrogen/generated/android', 'OmniOnLoad.cpp' ) const viewManagerDir = await readdir( path.join( process.cwd(), 'nitrogen/generated/android/kotlin/com/margelo/nitro/omni/views' ) ) const viewManagerFiles = viewManagerDir.filter((file) => file.endsWith('Manager.kt') ) const res = await Promise.allSettled( viewManagerFiles.map(updateViewManagerFiles) ) if (res.some((r) => r.status === 'rejected')) { throw new Error(`Error updating view manager files: ${res}`) } const str = await readFile(androidOnLoadFile, { encoding: 'utf8' }) await writeFile(androidOnLoadFile, str.replace(/margelo\/nitro\//g, '')) } androidWorkaround()