├── .editorconfig ├── .eslintrc.json ├── Components └── tag.jsx ├── LICENSE ├── README.md ├── index.js ├── jsconfig.json ├── manifest.json └── style.css /.editorconfig: -------------------------------------------------------------------------------- 1 | 2 | root=true 3 | 4 | [*] 5 | end_of_line = lf 6 | insert_final_newline = true 7 | trim_trailing_whitespace = true 8 | 9 | [*.{js,ts}] 10 | charset = utf-8 11 | indent_style = tab 12 | indent_size = 4 13 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"], 3 | "env": { 4 | "node": true, 5 | "es6": true 6 | }, 7 | "parser": "@typescript-eslint/parser", 8 | "parserOptions": { "ecmaVersion": 2018, "sourceType": "module" }, 9 | "rules": { 10 | "no-extra-parens": ["warn", "all", { 11 | "nestedBinaryExpressions": false 12 | }], 13 | "valid-jsdoc": ["warn", { 14 | "requireReturn": false, 15 | "requireReturnDescription": false, 16 | "prefer": { 17 | "arg": "param", 18 | "argument": "param", 19 | "prop": "property", 20 | "constructor": "class", 21 | "augments": "extends", 22 | "fires": "emits", 23 | "var": "member", 24 | "yield": "yields", 25 | "return": "returns", 26 | "exception": "throws", 27 | "virtual": "abstract" 28 | }, 29 | "preferType": { 30 | "String": "string", 31 | "Number": "number", 32 | "Boolean": "boolean", 33 | "Symbol": "symbol", 34 | "function": "Function", 35 | "object": "Object", 36 | "date": "Date", 37 | "error": "Error" 38 | } 39 | }], 40 | "@typescript-eslint/indent": ["error", "tab"], 41 | "accessor-pairs": "warn", 42 | "array-callback-return": "error", 43 | "complexity": "warn", 44 | "curly": ["error", "multi-line", "consistent"], 45 | "dot-location": ["error", "property"], 46 | "dot-notation": "error", 47 | "eqeqeq": "error", 48 | "no-console": ["error", { "allow": ["log", "warn", "error"] }], 49 | "no-empty-function": "error", 50 | "no-floating-decimal": "error", 51 | "no-implied-eval": "error", 52 | "no-lone-blocks": "error", 53 | "no-multi-spaces": "error", 54 | "no-new-func": "error", 55 | "no-new-wrappers": "error", 56 | "no-new": "error", 57 | "no-octal-escape": "error", 58 | "no-return-assign": "error", 59 | "no-self-compare": "error", 60 | "no-sequences": "error", 61 | "no-unmodified-loop-condition": "error", 62 | "no-unused-expressions": "error", 63 | "no-useless-call": "error", 64 | "no-useless-concat": "error", 65 | "no-useless-escape": "error", 66 | "no-void": "error", 67 | "no-warning-comments": "warn", 68 | "wrap-iife": "error", 69 | "yoda": "error", 70 | 71 | "no-label-var": "error", 72 | "no-shadow": "error", 73 | "no-undef-init": "error", 74 | 75 | "callback-return": "error", 76 | "handle-callback-err": "error", 77 | "no-mixed-requires": "error", 78 | "no-new-require": "error", 79 | "no-path-concat": "error", 80 | 81 | "array-bracket-spacing": "error", 82 | "block-spacing": "error", 83 | "brace-style": ["error", "1tbs", { "allowSingleLine": true }], 84 | "camelcase": "error", 85 | "comma-dangle": "error", 86 | "comma-spacing": "error", 87 | "comma-style": "error", 88 | "computed-property-spacing": "error", 89 | "consistent-this": "error", 90 | "eol-last": "error", 91 | "func-names": "error", 92 | "func-style": ["error", "declaration", { "allowArrowFunctions": true }], 93 | "id-length": ["error", { "exceptions": ["i", "j", "a", "b", "e", "r", "m", "c"] }], 94 | "indent": [0, 4, { "SwitchCase": 1 }], 95 | "key-spacing": "error", 96 | "keyword-spacing": ["error", { 97 | "overrides": { 98 | "if": { "after": true }, 99 | "for": { "after": true }, 100 | "while": { "after": true }, 101 | "catch": { "after": true }, 102 | "switch": { "after": true } 103 | } 104 | }], 105 | "max-depth": "error", 106 | "max-len": ["error", 200, 2], 107 | "max-nested-callbacks": ["error", { "max": 4 }], 108 | "max-statements-per-line": ["error", { "max": 2 }], 109 | "new-cap": "error", 110 | "newline-per-chained-call": ["error", { "ignoreChainWithDepth": 6 }], 111 | "no-array-constructor": "error", 112 | "no-bitwise": "off", 113 | "no-lonely-if": "error", 114 | "no-mixed-operators": "error", 115 | "no-multiple-empty-lines": ["error", { "max": 2, "maxEOF": 1, "maxBOF": 0 }], 116 | "no-new-object": "error", 117 | "no-spaced-func": "error", 118 | "no-trailing-spaces": "error", 119 | "no-unneeded-ternary": ["error", { "defaultAssignment": false }], 120 | "no-whitespace-before-property": "error", 121 | "object-curly-newline": "error", 122 | "object-curly-spacing": ["error", "always"], 123 | "operator-assignment": "error", 124 | "operator-linebreak": [ 125 | "error", 126 | "before", 127 | { 128 | "overrides": { 129 | "+": "after", 130 | "-": "after" 131 | } 132 | } 133 | ], 134 | "padded-blocks": ["error", { "classes": "always", "blocks": "never", "switches": "never" }], 135 | "quote-props": ["error", "as-needed"], 136 | "quotes": ["error", "single", { "avoidEscape": true, "allowTemplateLiterals": true }], 137 | "semi-spacing": "error", 138 | "semi": "error", 139 | "space-before-blocks": "error", 140 | "space-before-function-paren": ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}], 141 | "space-in-parens": "error", 142 | "space-infix-ops": "error", 143 | "space-unary-ops": "error", 144 | "spaced-comment": "error", 145 | "unicode-bom": "error", 146 | 147 | "arrow-body-style": "error", 148 | "arrow-spacing": "error", 149 | "no-duplicate-imports": "error", 150 | "no-useless-computed-key": "error", 151 | "no-useless-constructor": "error", 152 | "prefer-arrow-callback": "error", 153 | "prefer-const": "error", 154 | "prefer-destructuring": ["error", { 155 | "VariableDeclarator": { 156 | "array": false, 157 | "object": true 158 | }, 159 | "AssignmentExpression": { 160 | "array": true, 161 | "object": true 162 | } 163 | }, { 164 | "enforceForRenamedProperties": false 165 | }], 166 | "prefer-rest-params": "error", 167 | "prefer-spread": "error", 168 | "prefer-template": "error", 169 | "rest-spread-spacing": "error", 170 | "template-curly-spacing": "error", 171 | "yield-star-spacing": "error" 172 | } 173 | } -------------------------------------------------------------------------------- /Components/tag.jsx: -------------------------------------------------------------------------------- 1 | const { React } = require('powercord/webpack'); 2 | 3 | class Tag extends React.PureComponent { 4 | render () { 5 | return