sindresorhus/eslint-plugin-unicorn

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

Open

#1,661 创建于 2021年12月24日

在 GitHub 查看
 (11 评论) (7 反应) (0 负责人)JavaScript (5,022 star) (468 fork)user submission
:dollar: Funded on Issuehunthelp wantednew rule

描述

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

贡献者指南