react-native-ui-lib
Version:
<p align="center"> <img src="https://user-images.githubusercontent.com/1780255/105469025-56759000-5ca0-11eb-993d-3568c1fd54f4.png" height="250px" style="display:block"/> </p> <p align="center">UI Toolset & Components Library for React Native</p> <p a
106 lines (85 loc) • 2.47 kB
Markdown
# eslint-plugin-uilib
uilib set of eslint rules
## Installation
You'll first need to install [ESLint](http://eslint.org):
```
$ npm i eslint --save-dev
```
Next, install `eslint-plugin-uilib`:
```
$ npm install eslint-plugin-uilib --save-dev
```
**Note:** If you installed ESLint globally (using the `-g` flag) then you must also install `eslint-plugin-uilib` globally.
## Usage
Add `uilib` to the plugins section of your `.eslintrc` configuration file. You can omit the `eslint-plugin-` prefix:
```json
{
"plugins": [
"uilib"
]
}
```
Then configure the rules you want to use under the rules section.
```json
{
"rules": {
"uilib/rule-name": 2
}
}
```
## Supported Rules
#### uilib/no-hard-coded-color
```js
// Your app valid colors
const validColors = {
blue: '#459FED',
red: '#F2564D',
green: '#00CD8B',
yellow: '#FFB600',
}
// Lint will catch all hard coded color values in the code and replace with valid colors if exist
// `#459FED` will turn to `Colors.blue`
{
"rules": {
"uilib/no-hard-coded-color": ['error', {validColors}]
}
}
```
### uilib/component-deprecation_warn, uilib/component-deprecation_error
```js
// deprecation message to warn you consumers about
const deprecationWarnings = [
{
"component": "ActivityIndicator",
"source": "react-native",
"message": "Please avoid using react-native ActivityIndicator, use the 'Loader' component instead"
},
{
"component": "OldComponent",
"source": "react-native-ui-lib",
"message": "Please use the 'NewComponent' instead. Auto fix available.",
"fix": { "componentName": "NewComponent" }
},
];
const deprecationErrors = [
{
"component": "Button", /// The component
"source": "react-native-ui-lib", // The source you import the component from
"message": "",
"props": [
{
"prop": "title", // the prop to depreciate
"message": "Please use `label` prop instead of `title` prop", // custom message to the user
"fix": { "propName": "label" } // provice auto fix
}
]
},
];
// Two phases: warn & error to allow phasing your migration process
{
"rules": {
'uilib/component-deprecation_warn': ['warn', {deprecations: deprecationWarnings, dueDate: 'Thursday 31 January'}],
'uilib/component-deprecation_error': ['error', {deprecations: deprecationErrors , dueDate: 'Thursday 31 January'
}
}
```