config-plugin-react-native-auth0
Version:
Expo plugin for react-native-auth0 using expo config plugins
37 lines (33 loc) • 1.09 kB
text/typescript
import {
ConfigPlugin,
AndroidConfig,
withDangerousMod,
} from "@expo/config-plugins";
import { promises as fs } from "fs";
import type { Auth0PluginProps } from "./whitAuth0";
export const withAuth0Android: ConfigPlugin<Auth0PluginProps> = (
config,
{ auth0Domain }
) => {
config = withAuth0AppBuildGradle(config, { auth0Domain });
return config;
};
export const withAuth0AppBuildGradle: ConfigPlugin<{
auth0Domain: string;
}> = (config, { auth0Domain }) => {
return withDangerousMod(config, [
"android",
async (config) => {
const fileInfo = await AndroidConfig.Paths.getAppBuildGradleAsync(
config.modRequest.projectRoot
)
let contents = await fs.readFile(fileInfo.path, "utf-8");
contents = contents.replace(
/targetSdkVersion rootProject.ext.targetSdkVersion"/g,
`targetSdkVersion rootProject.ext.targetSdkVersion\nmanifestPlaceholders = [auth0Domain: "${auth0Domain}", auth0Scheme: "\${applicationId}"]`
);
await fs.writeFile(fileInfo.path, contents);
return config;
},
]);
};