sindresorhus/eslint-plugin-unicorn

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

已关闭

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

 (11 条评论) (7 个反应) (0 位负责人)JavaScript (468 个派生)user submission
:dollar: Funded on Issuehunthelp wantednew rule

仓库指标

星标
 (5,022 个星标)
PR 合并指标
 (平均合并 1天 16小时) (30 天内合并 399 个 PR)

描述

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

贡献者指南