react-native-legal
v1.6.0
Published
Acknowledge OSS libraries used in your React Native app
Readme
Automagically generate license acknowledgements for your React Native app and any Node.js project 🚀
| Android | iOS | AndroidTV | tvOS |
| ------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
|
|
|
|
|
Documentation
You can find the full documentation for all packages in this repository at callstackincubator.github.io/react-native-legal.
Installation
React Native
yarn add react-native-legalor
npm i --save react-native-legalStandalone CLI
yarn add -D license-kitor
npm i --save-dev license-kitNode.js - API
yarn add -D @callstack/licensesor
npm i --save-dev @callstack/licensesUsage
This tool is split into 4 parts:
- a React Native library that lets you display native screen with a list of all dependencies and their licenses
- an Expo config plugin (for Expo projects) and a custom community cli plugin (for bare RN projects)
- a standalone CLI tool that can be used in any Node.js project to generate license metadata (
license-kit) - a shared package that exposes the core functionality of the license management tool, allowing customization of presentation logic in your Node.js scripts (
@callstack/licenses)
I want to generate licenses in my Expo project
- Add the config plugin to the
app.json/app.config.js
{
"expo": {
"plugins": [
+ "react-native-legal"
]
}
}- Use the library in the codebase
import * as React from 'react';
import { Button, View } from 'react-native';
import { ReactNativeLegal } from 'react-native-legal';
function launchNotice() {
ReactNativeLegal.launchLicenseListScreen('OSS Notice');
}
function MyComponent() {
return (
<View>
<Button onPress={launchNotice} text="Open source licenses" />
</View>
);
}I want to generate licenses reports in my bare RN project
- Invoke the CLI plugin from the root of your RN app
npx react-native legal-generateor
yarn react-native legal-generate- Use the library in the codebase
import * as React from 'react';
import { Button, View } from 'react-native';
import { ReactNativeLegal } from 'react-native-legal';
function launchNotice() {
ReactNativeLegal.launchLicenseListScreen('OSS Notice');
}
function MyComponent() {
return (
<View>
<Button onPress={launchNotice} text="Open source licenses" />
</View>
);
}I want to generate licenses reports in my Node.js project
You can use the license-kit CLI tool to generate license reports in your Node.js project. Here's how to do it:
- Run the CLI tool from the root of your Node.js project:
npx license-kit report --format markdown --output ./public/licenses.mdor
yarn license-kit report --format markdown --output ./public/licenses.mdThis will scan your project's dependencies and generate a license report in the specified format (JSON, Markdown, raw text, or AboutLibraries-compatible JSON metadata).
For a list of supported flags and the default values, run npx license-kit --help or read them documented in the package's README. To read more about a specific command, run npx license-kit <command> --help, e.g. npx license-kit report --help.
I want to customize the presentation of the licenses in my JS/TS project
You can use the @callstack/licenses package to access the core functionalities of the license management tool. To do so, please read the programmatic usage documentation.
Expo
- ✅ You can use this library with Development Builds by adding
react-native-legalto yourapp.json/app.config.jsplugins array. - ❌ This library can't be used in the "Expo Go" app because it requires custom native code.
Contributing
See the contributing guide to learn how to contribute to the repository and the development workflow.
Acknowledgements
- AboutLibraries - collects and displays the license metadata for the Android app <3
- LicensePlist - generates license metadata for the iOS app <3
License
MIT
