npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@guest-hyperchain/eslint-config-xzymodule-base

v0.1.1

Published

ESLint Shareable Config - from hyperchain(https://www.hyperchain.cn/)

Readme

eslint-config-hyperchain

travis npm MIT

ESLint Shareable Config For React App

Installation

Install peerDependencies.

# npm
npm install eslint eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react  --save-dev

# yarn
yarn add eslint eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react --dev

Install This Config

# npm 
npm install eslint-config-hyperchain --save-dev 

# yarn 
yarn add eslint-config-hyperchain --dev

Configuration

Configure the following content in .eslintrc.js

  "extends": [
    "hyperchain"
  ]

Base Rules

Possible Errors

rule | description ---|--- no-compare-neg-zero | disallow comparing against -0 no-cond-assign | disallow assignment operators in conditional expressions no-constant-condition | disallow constant expressions in conditions no-control-regex | disallow control characters in regular expressions no-debugger | disallow the use of debugger no-dupe-args | disallow duplicate arguments in function definitions no-dupe-keys | disallow duplicate keys in object literals no-duplicate-case | disallow duplicate case labels no-empty-character-class | disallow empty character classes in regular expressions no-ex-assign | disallow reassigning exceptions in catch clauses no-extra-boolean-cast | disallow unnecessary boolean casts no-extra-parens | disallow unnecessary parentheses no-func-assign | disallow reassigning function declarations no-inner-declarations | disallow variable or function declarations in nested blocks no-invalid-regexp | disallow invalid regular expression strings in RegExp constructors no-irregular-whitespace | disallow irregular whitespace outside of strings and comments no-obj-calls | disallow calling global object properties as functions no-regex-spaces | disallow multiple spaces in regular expressions no-sparse-arrays | disallow sparse arrays no-template-curly-in-string | disallow template literal placeholder syntax in regular strings no-unexpected-multiline | disallow confusing multiline expressions no-unreachable | disallow unreachable code after return, throw, continue, and break statements no-unsafe-finally | disallow control flow statements in finally blocks no-unsafe-negation | disallow negating the left operand of relational operators use-isnan | require calls to isNaN() when checking for NaN valid-typeof | enforce comparing typeof expressions against valid strings

Best Practices

rule | description ---|--- accessor-pairs | enforce getter and setter pairs in objects curly | enforce consistent brace style for all control statements dot-location | enforce consistent newlines before and after dots eqeqeq | require the use of === and !== no-caller | disallow the use of arguments.caller or arguments.callee no-empty-pattern | disallow empty destructuring patterns no-eval | disallow the use of eval() no-extend-native | disallow extending native types no-extra-bind | disallow unnecessary calls to .bind() no-fallthrough | disallow fallthrough of case statements no-floating-decimal | disallow leading or trailing decimal points in numeric literals no-global-assign | disallow assignments to native objects or read-only global variables no-implied-eval | disallow the use of eval()-like methods no-iterator | disallow the use of the iterator property no-labels | disallow labeled statements no-lone-blocks | disallow unnecessary nested blocks no-multi-spaces | disallow multiple spaces no-multi-str | disallow multiline strings no-new | disallow new operators outside of assignments or comparisons no-new-func | disallow new operators with the Function object no-new-wrappers | disallow new operators with the String, Number, and Boolean objects no-octal | disallow octal literals no-octal-escape | disallow octal escape sequences in string literals no-proto | disallow the use of the proto property no-redeclare | disallow variable redeclaration no-return-assign | disallow assignment operators in return statements no-return-await | disallow unnecessary return await no-self-assign | disallow assignments where both sides are exactly the same no-self-compare | disallow comparisons where both sides are exactly the same no-sequences | disallow comma operators no-throw-literal | disallow throwing literals as exceptions no-unmodified-loop-condition | disallow unmodified loop conditions no-unused-expressions | disallow unused expressions no-useless-call | disallow unnecessary calls to .call() and .apply() no-useless-escape | disallow unnecessary escape characters no-useless-return | disallow redundant return statements no-with | disallow with statements prefer-promise-reject-errors | require using Error objects as Promise rejection reasons wrap-iife | require parentheses around immediate function invocations yoda | require or disallow “Yoda” conditions

Variables

rule | description ---|--- no-delete-var | disallow deleting variables no-label-var | disallow labels that share a name with a variable no-shadow-restricted-names | disallow identifiers from shadowing restricted names no-undef | disallow the use of undeclared variables unless mentioned in /*global */ comments no-undef-init | disallow initializing variables to undefined no-unused-vars | disallow unused variables no-use-before-define | disallow the use of variables before they are defined

Node.js and CommonJS

rule | description ---|--- handle-callback-err | require error handling in callbacks no-new-require | disallow new operators with calls to require no-path-concat | disallow string concatenation with __dirname and __filename

Stylistic Issues

rule | description ---|--- block-spacing | disallow or enforce spaces inside of blocks after opening block and before closing block brace-style | enforce consistent brace style for blocks camelcase | enforce camelcase naming convention comma-dangle | require or disallow trailing commas comma-spacing | enforce consistent spacing before and after commas comma-style | enforce consistent comma style eol-last | require or disallow newline at the end of files func-call-spacing | require or disallow spacing between function identifiers and their invocations indent | enforce consistent indentation key-spacing | enforce consistent spacing between keys and values in object literal properties keyword-spacing | enforce consistent spacing before and after keywords new-cap | require constructor names to begin with a capital letter new-parens | require parentheses when invoking a constructor with no arguments no-array-constructor | disallow Array constructors no-mixed-operators | disallow mixed binary operators no-mixed-spaces-and-tabs | disallow mixed spaces and tabs for indentation no-multiple-empty-lines | disallow multiple empty lines no-new-object | disallow Object constructors no-tabs | disallow all tabs no-trailing-spaces | disallow trailing whitespace at the end of lines no-unneeded-ternary | disallow ternary operators when simpler alternatives exist no-whitespace-before-property | disallow whitespace before properties object-curly-spacing | enforce consistent spacing inside braces object-property-newline | enforce placing object properties on separate lines one-var | enforce variables to be declared either together or separately in functions operator-linebreak | enforce consistent linebreak style for operators padded-blocks | require or disallow padding within blocks quotes | enforce the consistent use of either backticks, double, or single quotes semi | require or disallow semicolons instead of ASI semi-spacing | enforce consistent spacing before and after semicolons space-before-blocks | enforce consistent spacing before blocks space-before-function-paren | enforce consistent spacing before function definition opening parenthesis space-in-parens | enforce consistent spacing inside parentheses space-infix-ops | require spacing around infix operators space-unary-ops | enforce consistent spacing before or after unary operators spaced-comment | enforce consistent spacing after the // or /* in a comment template-tag-spacing | require or disallow spacing between template tags and their literals unicode-bom | require or disallow Unicode byte order mark (BOM)

ECMAScript 6

rule | description ---|--- arrow-spacing | enforce consistent spacing before and after the arrow in arrow functions constructor-super | require super() calls in constructors generator-star-spacing | enforce consistent spacing around * operators in generator functions no-class-assign | disallow reassigning class members no-const-assign | disallow reassigning const variables no-dupe-class-members | disallow duplicate class members no-new-symbol | disallow new operators with the Symbol object no-this-before-super | disallow this/super before calling super() in constructors no-useless-computed-key | disallow unnecessary computed property keys in object literals no-useless-constructor | disallow unnecessary constructors no-useless-rename | disallow renaming import, export, and destructured assignments to the same name rest-spread-spacing | enforce spacing between rest and spread operators and their expressions symbol-description | require symbol descriptions template-curly-spacing | require or disallow spacing around embedded expressions of template strings yield-star-spacing | require or disallow spacing around the * in yield* expressions

Other Rules

eslint-plugin-react

rule | description ---|--- react/display-name | 禁止在 React 组件定义中丢失 displayName react/jsx-key | 在数组或迭代器中验证 JSX 具有 key 属性 react/jsx-no-comment-textnodes | 禁止注解被插入到文本节点 react/jsx-no-duplicate-props | 禁止在 JSX 中重复的 props react/jsx-no-target-blank | 禁止使用不安全的 blank 标签 react/jsx-no-undef | 在 JSX 中禁止未声明的变量 react/jsx-uses-react | 禁止 React 被错误地标记为未使用 react/jsx-uses-vars | 防止在 JSX 中使用的变量被错误地标记为未使用 react/no-children-prop | children 不能作为组件的 props 去传入 react/no-danger-with-children | 禁止组件同时存在 children 和 props.dangerouslySetInnerHTML react/no-deprecated | 禁止使用弃用的方法 react/no-direct-mutation-state | 禁止 state 直接赋值,强制采用 setState 方法改变 state 的值 react/no-find-dom-node | 禁止使用 findDOMNode 来获取dom元素 react/no-is-mounted | 禁止使用 isMounted react/no-render-return-value | 禁止在 React.render 返回值 react/no-string-refs | 禁止使用字符串的 ref react/no-unescaped-entities | 禁止出现类似 JSX 中转义字符的非法字符,比如 { < ' '' react/no-unknown-property | 禁止使用未知的 DOM 属性 react/prop-types | 防止在 React 组件定义中丢失 props 验证 react/react-in-jsx-scope | 使用 JSX 时防止丢失 React react/require-render-return | 强制es5或者es6在 render 时 return 一个值

eslint-plugin-jsx-a11y

rule | description ---|--- accessible-emoji | 强制表情被包含在 span 标签中,同时申明属性 role="img" 与有效的描述 alt-text | 强制所有需要替换文本的元素都具有有意义的信息 anchor-has-content | 强制 a 标签有内容且内容可以被阅读者访问 anchor-is-valid | 禁止使用无意义的 a 标签 aria-activedescendant-has-tabindex | 在使用 activedescendant 的时候强制要求使用属性 tabindex aria-props | 禁止元素使用非法的 aria 属性 aria-proptypes | 禁止非法的 aria 状态与属性值 aria-role | 禁止元素使用非法的 aria-role 属性值 aria-unsupported-elements | 禁止某些保留 DOM 元素使用 role 或者 aria-* 属性 click-events-have-key-events | 强制在点击事件出现时,出现键盘事件 onKeyUp ,onKeyDown, onKeyPress 中的一个 heading-has-content | 强制 h 标签有内容且内容可以被阅读者访问 html-has-lang | 强制要求 html 标签有 lang 属性 iframe-has-title | 强制 iframe 元素有 title 属性 img-redundant-alt | 禁止在 img 标签的 alt 属性值中包含没有意义的文本,例如 image , photo 或者 picture interactive-supports-focus | 强制涉及交互的元素必须要能够获取焦点 label-has-for | 强制 label 标签有关联的控制 lang | 禁止非法的 lang 属性值 media-has-caption | 媒体标签必须包含 captions mouse-events-have-key-events | 强制 onmouseover()/onmouseout() 方法始终伴随着 onfocus()/onblur() 方法 no-access-key | 强制元素不带有 accessKey 属性 no-autofocus | 强制元素不带有 autoFocus 属性 no-distracting-elements | 禁止出现定义过的非法元素 no-interactive-element-to-noninteractive-role | 强制要求非交互元素要有非交互的 role 元素对应 no-noninteractive-element-interactions | 强制涉及交互的元素有相应的交互的 aria 属性 no-noninteractive-element-to-interactive-role | 禁止非交互的元素具有一个交互的 aria 属性 no-noninteractive-tabindex | 禁止在无序列列表中添加 tabindex no-onchange | 禁止直接使用 onchange , 可以用 onblur 事件代替或者让 onblur 事件同时出现 no-redundant-roles | 禁止使用冗余的 aria no-static-element-interactions | 在为静态元素添加交互事件时,强制要求元素被给予 role 属性 role-has-required-aria-props | 强制要求具有 role 属性的元素具有当前role 对应的所有属性 role-supports-aria-props | 强制要求具有 role 属性的元素有且只能有当前 role 对应属性 scope | scope 属性只能出现在 th 标签下 tabindex-no-positive | 禁止使用正数的tabindex

eslint-plugin-import

rule | description ---|--- no-unresolved | 确保导入的路径指向可解析的文件或者模块 named | 确保命名导入的文件对应于相应命名的远程文件 default | 在给定默认导入的情况下,确保出现默认导出 namespace | no-restricted-paths | 限制哪些文件可以被导入到给定的文件中 no-absolute-path | 禁止使用绝对路径导入文件 no-dynamic-require | 禁止 require() 方法中写入表达式 no-internal-modules | 禁止导入其他模块的子模块 no-webpack-loader-syntax | 禁止导入时使用 webpack loader 语法 no-self-import | 禁止导入模块本身 no-cycle | 确保导出的模块不是来自导入的模块 no-useless-path-segments | 阻止 import 与 require 时不必要的路径段 no-relative-parent-imports | 禁止导入到相对父路径中的文件夹 export | 提示所有非法的导出 no-named-as-default | 提示默认导出文件名称与需要导入的名称不符 no-named-as-default-member | 提示导出的名称已经存在,不是默认的导出名称 no-deprecated | 提示弃用的 name no-extraneous-dependencies | 禁止使用无关的依赖包 no-mutable-exports | 禁止使用可变的导出,例如使用 var,let unambiguous | 报告可能不明确的解析目标 no-commonjs | 禁止使用 commonjs 模块化方案 no-amd | 禁止 amd 模块化方案 no-nodejs-modules | 禁止使用 node 自带的模块 first | 确保所有导入都出现在其他语句之前 exports-last | 确保所有导出都出现在其他语句之后 no-duplicates | 报告同一模块在多个位置的重复导入 no-namespace | 报告重复使用的命名空间 extensions | 确保导入路径中,文件扩展名的一致使用 order | 强制约定一种导入的顺序 newline-after-import | 在 import 语句后强制要求空一行 prefer-default-export | 如果只有一个模块,推荐使用 default export 进行导出 max-dependencies | 限制一个模块可以拥有的依赖的最大数量 no-unassigned-import | 禁止没有赋值的导入 no-named-default | 报告使用 default export 作为本地命名的导入 no-default-export | 禁止 default export no-anonymous-default-export | 禁止匿名值作为默认导出 group-exports | 优先将多个导出的模块合并成一个组,而不是一个个单独导出。 dynamic-import-chunkname | 报告所有的没有经过 webpackChunkName 指定的导入

License

eslint-congfig-hyperchain is licensed under the MIT License.