Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/snewcomer/eslint-plugin-freeze-global
https://github.com/snewcomer/eslint-plugin-freeze-global
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/snewcomer/eslint-plugin-freeze-global
- Owner: snewcomer
- Created: 2022-11-24T19:49:41.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-07-02T19:38:53.000Z (over 1 year ago)
- Last Synced: 2024-10-18T08:22:32.068Z (3 months ago)
- Language: JavaScript
- Size: 97.7 KB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# eslint-plugin-freeze-global
Object.freeze globals to prevent accidental mutation during the life of your program.
## Installation
You'll first need to install [ESLint](https://eslint.org/):
```sh
npm i eslint --save-dev
```Next, install `eslint-plugin-freeze-global`:
```sh
npm install eslint-plugin-freeze-global --save-dev
```## Usage
Add `eslint-plugin-freeze-global` to the plugins section of your `.eslintrc` configuration file:
```json
{
"plugins": [
"freeze-global"
]
}
```Then configure the rules you want to use under the rules section.
### No Mutable Global
```json
{
"rules": {
"freeze-global/no-mutable-global": 2
}
}
```#### Examples
❌ Invalid
```
import zod from 'zod';
const GLOBAL = {
a: 1,
b: 2,
c: {
d: 'e'
}
};
```✅ Valid with `["error", "no-mutable-global"]`
```
import zod from 'zod';
const GLOBAL = Object.freeze({
a: 1,
b: 2,
c: Object.freeze({
d: 'e',
})
});
```### No Naked Global
```json
{
"rules": {
"freeze-global/no-naked-global": 2
}
}
```#### Examples
❌ Invalid
```
import zod from 'zod';
const GLOBAL = {};
```✅ Valid with `["error", "no-naked-global"]`
```
import zod from 'zod';
const GLOBAL = Object.freeze({});
```Or refactor into a class or applicable location.