sprintcheck-expo
Version:
SprintCheck SDK for Expo - Identity verification (BVN, NIN, Facial) for React Native Expo projects
80 lines (79 loc) • 3.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.withSprintCheckAndroid = void 0;
const config_plugins_1 = require("@expo/config-plugins");
/**
* Android configuration for SprintCheck SDK
*/
const withSprintCheckAndroid = (config, props = {}) => {
return (0, config_plugins_1.withPlugins)(config, [
// Add project-level build.gradle configuration for JitPack
withSprintCheckProjectBuildGradle,
// Add the native module to MainApplication
withSprintCheckMainApplication,
// Configure build.gradle files
withSprintCheckBuildGradle,
// Add settings.gradle configuration
withSprintCheckSettingsGradle,
]);
};
exports.withSprintCheckAndroid = withSprintCheckAndroid;
/**
* Add JitPack and Regula repositories to project-level build.gradle
*/
const withSprintCheckProjectBuildGradle = (config) => {
return (0, config_plugins_1.withProjectBuildGradle)(config, (config) => {
const { modResults } = config;
if (!modResults.contents.includes('https://www.jitpack.io')) {
modResults.contents = modResults.contents.replace(/allprojects\s*{\s*repositories\s*{/, `allprojects {\n repositories {\n maven { url 'https://www.jitpack.io' }`);
}
if (!modResults.contents.includes('https://maven.regulaforensics.com/RegulaDocumentReader')) {
modResults.contents = modResults.contents.replace(/allprojects\s*{\s*repositories\s*{/, `allprojects {\n repositories {\n maven { url 'https://maven.regulaforensics.com/RegulaDocumentReader' }`);
}
return config;
});
};
/**
* Add SprintCheck package to MainApplication.kt
*/
const withSprintCheckMainApplication = (config) => {
return (0, config_plugins_1.withMainApplication)(config, (config) => {
const { modResults } = config;
// Add import if not present
if (!modResults.contents.includes('import com.sprintcheckrn.SprintCheckPackage')) {
modResults.contents = modResults.contents.replace(/import android\.app\.Application;/, `import android.app.Application;\nimport com.sprintcheckrn.SprintCheckPackage;`);
}
// Add package to the getPackages() method
if (!modResults.contents.includes('add(SprintCheckPackage())')) {
modResults.contents = modResults.contents.replace(/PackageList\(this\)\.packages\.apply\s*{/, `PackageList(this).packages.apply {
add(SprintCheckPackage())`);
}
return config;
});
};
/**
* Configure app/build.gradle
*/
const withSprintCheckBuildGradle = (config) => {
return (0, config_plugins_1.withAppBuildGradle)(config, (config) => {
const { modResults } = config;
// Add dependency
if (!modResults.contents.includes('implementation project(\':sprintcheckrn\')')) {
modResults.contents = modResults.contents.replace(/dependencies\s*{/, `dependencies {\n implementation project(':sprintcheckrn')`);
}
return config;
});
};
/**
* Configure settings.gradle
*/
const withSprintCheckSettingsGradle = (config) => {
return (0, config_plugins_1.withSettingsGradle)(config, (config) => {
const { modResults } = config;
// Add module inclusion
if (!modResults.contents.includes("include ':sprintcheckrn'")) {
modResults.contents += `\ninclude ':sprintcheckrn'\nproject(':sprintcheckrn').projectDir = new File(rootProject.projectDir, '../node_modules/sprintcheck-expo/android')\n`;
}
return config;
});
};