Skip to content

Commit

Permalink
Setup ESLint
Browse files Browse the repository at this point in the history
  • Loading branch information
asportnoy committed Sep 28, 2022
1 parent 498ca33 commit 08a4d81
Show file tree
Hide file tree
Showing 11 changed files with 376 additions and 1 deletion.
7 changes: 7 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
root = true

[*]
end_of_line = lf
indent_style = space
indent_size = 2
insert_final_newline = true
3 changes: 3 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
*.template.js
plugins/*
themes/*
248 changes: 248 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,248 @@
{
"root": true,
"extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"],
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint", "react"],
"globals": {
"powercord": true,
"webpackChunkdiscord_app": true,
"DiscordNative": false,
"PowercordNative": false,
"GLOBAL_ENV": true,
"BigInt": false
},
"parserOptions": {
"ecmaVersion": 2021,
"sourceType": "script",
"ecmaFeatures": {
"jsx": true
},
"project": ["./tsconfig.json"]
},
"env": {
"node": true,
"es6": true,
"browser": true
},
"rules": {
"for-direction": [ "error" ],
"getter-return": [ "error" ],
"no-compare-neg-zero": [ "error" ],
"no-cond-assign": [ "error" ],
"no-constant-condition": [ "error" ],
"no-control-regex": [ "error" ],
"no-debugger": [ "error" ],
"no-dupe-args": [ "error" ],
"no-dupe-keys": [ "error" ],
"no-duplicate-case": [ "error" ],
"no-empty": [ "error", {
"allowEmptyCatch": true
}],
"no-empty-character-class": [ "error" ],
"no-extra-boolean-cast": [ "error" ],
"@typescript-eslint/no-extra-semi": [ "error" ],
"no-func-assign": [ "error" ],
"no-invalid-regexp": [ "error" ],
"no-irregular-whitespace": [ "error", {
"skipStrings": true,
"skipRegExps": true
}],
"no-obj-calls": [ "error" ],
"no-regex-spaces": [ "error" ],
"no-sparse-arrays": [ "error" ],
"no-template-curly-in-string": [ "error" ],
"no-unexpected-multiline": [ "error" ],
"no-unreachable": [ "error" ],
"no-unsafe-negation": [ "error" ],
"use-isnan": [ "error" ],
"valid-typeof": [ "error", {
"requireStringLiterals": true
}],
"accessor-pairs": [ "error" ],
"array-callback-return": [ "error", {
"allowImplicit": true
}],
"curly": [ "error", "all" ],
"dot-location": [ "error", "property" ],
"@typescript-eslint/dot-notation": [ "error" ],
"eqeqeq": [ "error", "always" ],
"no-caller": [ "error" ],
"no-case-declarations": [ "error" ],
"no-else-return": [ "error", {
"allowElseIf": true
}],
"@typescript-eslint/no-empty-function": [ "error" ],
"no-empty-pattern": [ "error" ],
"no-eq-null": [ "error" ],
"no-eval": [ "error" ],
"no-extend-native": [ "error" ],
"no-extra-bind": [ "error" ],
"no-extra-label": [ "error" ],
"no-fallthrough": [ "error" ],
"no-floating-decimal": [ "error" ],
"no-global-assign": [ "error" ],
"no-lone-blocks": [ "error" ],
"no-multi-spaces": [ "error", {
"exceptions": {
"Property": true,
"BinaryExpression": false,
"VariableDeclarator": true
}
}],
"no-multi-str": [ "error" ],
"no-new-func": [ "error" ],
"no-new-wrappers": [ "error" ],
"no-octal": [ "error" ],
"no-octal-escape": [ "error" ],
"@typescript-eslint/no-redeclare": [ "error", {
"builtinGlobals": true
}],
"no-return-await": [ "error" ],
"no-self-assign": [ "error", {
"props": true
}],
"no-self-compare": [ "error" ],
"no-sequences": [ "error" ],
"no-unmodified-loop-condition": [ "error" ],
"@typescript-eslint/no-unused-expressions": [ "error" ],
"no-unused-labels": [ "error" ],
"no-useless-call": [ "error" ],
"no-useless-concat": [ "error" ],
"no-useless-escape": [ "error" ],
"no-useless-return": [ "error" ],
"no-warning-comments": [ "warn" ],
"no-with": [ "error" ],
"prefer-promise-reject-errors": ["error", {
"allowEmptyReject": true
}],
"radix": [ "error", "as-needed" ],
"wrap-iife": [ "error" ],
"yoda": [ "error" ],
"no-delete-var": [ "error" ],
"no-shadow-restricted-names": [ "error" ],
"no-undef": [ "error" ],
"no-undef-init": [ "error" ],
"no-undefined": [ "error" ],
"@typescript-eslint/no-unused-vars": [ "error" ],
"@typescript-eslint/no-use-before-define": [ "error" ],
"callback-return": [ "error" ],
"handle-callback-err": [ "error" ],
"no-buffer-constructor": [ "error" ],
"no-mixed-requires": [ "error" ],
"array-bracket-newline": [ "error", "consistent" ],
"array-bracket-spacing": [ "error", "always" ],
"block-spacing": [ "error", "always" ],
"@typescript-eslint/brace-style": [ "error", "1tbs" ],
"@typescript-eslint/comma-dangle": [ "error" ],
"@typescript-eslint/comma-spacing": [ "error", {
"before": false,
"after": true
}],
"comma-style": [ "error" ],
"computed-property-spacing": [ "error" ],
"consistent-this": [ "error", "_this" ],
"eol-last": [ "error", "always" ],
"@typescript-eslint/func-call-spacing": [ "error", "never" ],
"func-name-matching": [ "error", "always" ],
"@typescript-eslint/indent": [ "error", 2, {
"SwitchCase": 1
}],
"@typescript-eslint/keyword-spacing": [ "error" ],
"@typescript-eslint/lines-between-class-members": [ "error", "always", {
"exceptAfterSingleLine": true
}],
"max-statements-per-line": [ "error", {
"max": 2
}],
// "multiline-comment-style": [ "error" ],
"multiline-ternary": [ "error", "always-multiline" ],
"new-cap": [ "error", {
"newIsCap": true
}],
"new-parens": [ "error" ],
"@typescript-eslint/no-array-constructor": [ "error" ],
"no-mixed-operators": [ "error" ],
"no-mixed-spaces-and-tabs": [ "error" ],
"no-multiple-empty-lines": [ "error" ],
"no-new-object": [ "error" ],
"no-tabs": [ "error" ],
"no-trailing-spaces": [ "error" ],
"no-unneeded-ternary": [ "error" ],
"no-whitespace-before-property": [ "error" ],
"@typescript-eslint/object-curly-spacing": [ "error", "always" ],
"object-property-newline": [ "error" ],
"one-var-declaration-per-line": [ "error", "initializations" ],
"operator-assignment": [ "error", "always" ],
"operator-linebreak": [ "error", "after", {
"overrides": {
"?": "before",
":": "before"
}
}],
"padded-blocks": [ "error", "never" ],
"quote-props": [ "error", "as-needed" ],
"@typescript-eslint/quotes": [ "error", "single" ],
"@typescript-eslint/semi": [ "error", "always" ],
"semi-spacing": [ "error", {
"before": false,
"after": true
}],
"semi-style": [ "error", "last" ],
"@typescript-eslint/space-before-blocks": [ "error", "always" ],
"@typescript-eslint/space-before-function-paren": [ "error", "always" ],
"space-in-parens": [ "error", "never" ],
"@typescript-eslint/space-infix-ops": [ "error" ],
"space-unary-ops": [ "error", {
"words": true,
"nonwords": false
}],
"spaced-comment": [ "error", "always" ],
"switch-colon-spacing": [ "error", {
"before": false,
"after": true
}],
"template-tag-spacing": [ "error", "always" ],
"wrap-regex": [ "error" ],
"arrow-body-style": [ "error", "as-needed" ],
"arrow-spacing": [ "error", {
"before": true,
"after": true
}],
"constructor-super": [ "error" ],
"no-class-assign": [ "error" ],
"no-const-assign": [ "error" ],
"@typescript-eslint/no-dupe-class-members": [ "error" ],
"no-new-symbol": [ "error" ],
"no-this-before-super": [ "error" ],
"no-useless-computed-key": [ "error" ],
"@typescript-eslint/no-useless-constructor": [ "error" ],
"no-var": [ "error" ],
"object-shorthand": [ "error", "always" ],
"prefer-arrow-callback": [ "error" ],
"prefer-const": [ "error", {
"destructuring": "all"
}],
"prefer-destructuring": ["error", {
"VariableDeclarator": {
"array": false,
"object": true
},
"AssignmentExpression": {
"array": true,
"object": true
}
}, {
"enforceForRenamedProperties": false
}],
"prefer-numeric-literals": [ "error" ],
"prefer-rest-params": [ "error" ],
"prefer-spread": [ "error" ],
"prefer-template": [ "error" ],
"rest-spread-spacing": [ "error", "never" ],
"symbol-description": [ "error" ],
"template-curly-spacing": [ "error", "never" ],
"react/jsx-uses-react": "error",
"react/jsx-uses-vars": 1,
"linebreak-style": ["error", "unix"]
}
}
27 changes: 27 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
name: Bug Report
about: Create a report to help us improve
title: 'short description of bug'
labels: 'bug'
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:

**Expected behavior**
A clear and concise description of what you expected to happen.

**Desktop (please complete the following information):**
- OS: [e.g. Windows]
- Replugged version: [You can find it in the Updater tab, available in your settings]

**Additional context**
- [ ] I checked if Discord and/or Replugged are up to date
- [ ] I made sure this is not related to an external plugin or a theme

Add any other context about the problem here.
4 changes: 4 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
contact_links:
- name: Support Server
url: https://discord.gg/B2TcnXV9Rg
about: If you need help with Replugged, join our support server and ask in the appropriated channel.
17 changes: 17 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
name: Feature Request
about: Create a feature request
title: '[Feature Request]'
labels: 'enhancement'
assignees: ''

---

**Describe the feature request**
A clear and concise description of what the feature is.

**What Plugin would it be for?**
Name of plugin if applicable

**Expected behavior**
A clear and concise description of what you expected to happen.
29 changes: 29 additions & 0 deletions .github/workflows/eslint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Lint

on:
push:
branches:
- '*'
pull_request:
branches:
- '*'

jobs:
run-linters:
name: Run linters
runs-on: ubuntu-latest

steps:
- name: Check out Git repository
uses: actions/checkout@v2

- name: Set up Node.js
uses: actions/setup-node@v1
with:
node-version: 12

- name: Install Node.js dependencies
run: npm ci

- name: Run linters
run: npm run lint
24 changes: 24 additions & 0 deletions .github/workflows/nix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Build the Nix flake
on:
push:
paths:
- "flake.*"

jobs:
build:
name: Build the Nix flake
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Install Nix
uses: cachix/install-nix-action@v15
with:
nix_path: nixpkgs=channel:nixos-unstable
extra_nix_config: |
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
- name: Build the flake
run: nix build
- name: Check the flake
run: nix flake check
6 changes: 6 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"recommendations": [
"dbaeumer.vscode-eslint",
"EditorConfig.EditorConfig"
]
}
4 changes: 4 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"editor.defaultFormatter": "dbaeumer.vscode-eslint",
"editor.formatOnSave": true,
}
Loading

0 comments on commit 08a4d81

Please sign in to comment.