react-native-legal
Version:
Acknowledge OSS libraries used in your React Native app
31 lines (30 loc) • 1.7 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.withAndroidLegal = void 0;
const node_path_1 = __importDefault(require("node:path"));
const licenses_1 = require("@callstack/licenses");
const config_plugins_1 = require("expo/config-plugins");
const addListActivity_1 = require("./addListActivity");
const applyAndConfigureAboutLibrariesPlugin_1 = require("./applyAndConfigureAboutLibrariesPlugin");
const declareAboutLibrariesPlugin_1 = require("./declareAboutLibrariesPlugin");
/**
* Implementation of config plugin for Android setup
*
* It scans the NPM dependencies, generates AboutLibraries-compatible metadata,
* installs & configures AboutLibraries Gradle plugin and adds Android Activity with a list of dependencies and their licenses
*/
const withAndroidLegal = (config, { scanOptionsFactory }) => {
(0, config_plugins_1.withAndroidManifest)(config, async (exportedConfig) => {
const licenses = (0, licenses_1.scanDependencies)(node_path_1.default.join(exportedConfig.modRequest.projectRoot, 'package.json'), scanOptionsFactory);
(0, licenses_1.writeAboutLibrariesNPMOutput)(licenses, exportedConfig.modRequest.platformProjectRoot);
return exportedConfig;
});
config = (0, declareAboutLibrariesPlugin_1.declareAboutLibrariesPlugin)(config);
config = (0, applyAndConfigureAboutLibrariesPlugin_1.applyAndConfigureAboutLibrariesPlugin)(config);
config = (0, addListActivity_1.addListActivity)(config);
return config;
};
exports.withAndroidLegal = withAndroidLegal;