sindresorhus/eslint-plugin-unicorn

Rule proposal: `no-top-level-side-effects`

Open

#1.661 geöffnet am 24. Dez. 2021

Auf GitHub ansehen
 (11 Kommentare) (7 Reaktionen) (0 zugewiesene Personen)JavaScript (468 Forks)user submission
:dollar: Funded on Issuehunthelp wantednew rule

Repository-Metriken

Stars
 (5.022 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 1T 8h) (6 gemergte PRs in 30 T)

Beschreibung

Description

Opinionated, difficult/impossible to implement, and likely super annoying in practice.

Reasoning: importing a file should not have side effects

Related rules:

Fail

document.title = 'gone'

Pass

export function init () {
  document.title = 'gone'
}
function init () {
  document.title = 'gone'
}

// Optional? Still a side effect, but at least it's wrapped
// and not lost between many function declarations.
// Maybe a single, unassigned function call per file could be allowed
init(); 
// Optional? Assignments could be considered side-effect free for the sake of usability
const details = new Map();
const response = fetch(); // even if they're not, really
const memoizedFetch = mem(fetch);
// in ./polyfill.js

// Optional? Some exceptions could be made by filename 
document.title = 'gone'

Backers (Total: $20.00)

Submitted pull Requests


Become a backer now!

Or submit a pull request to get the deposits!

Tips

Contributor Guide