diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..a6c8559 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,31 @@ +name: Publish package + +on: + release: + types: [created] + +jobs: + publish-npm: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: 12 + registry-url: https://registry.npmjs.org/ + - run: npm publish + env: + NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} + + publish-gpr: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: 12 + registry-url: https://npm.pkg.github.com/ + scope: '@Datawheel' + - run: npm publish + env: + NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..26f5c15 --- /dev/null +++ b/.npmignore @@ -0,0 +1 @@ +.github diff --git a/index.js b/index.js new file mode 100644 index 0000000..1ebec9b --- /dev/null +++ b/index.js @@ -0,0 +1,127 @@ +/** @type {import("eslint").CLIEngine.Options} */ +module.exports = { + env: { + browser: true, + es6: true, + node: true + }, + extends: ["plugin:react/recommended"], + parser: "babel-eslint", + parserOptions: { + sourceType: "module", + ecmaFeatures: { + experimentalObjectRestSpread: true, + jsx: true + }, + ecmaVersion: 2017 + }, + plugins: ["react"], + rules: { + "array-bracket-spacing": 2, + "arrow-body-style": 2, + "arrow-parens": [2, "as-needed"], + "arrow-spacing": 2, + "accessor-pairs": 2, + "block-scoped-var": 2, + "block-spacing": 2, + "brace-style": [2, "stroustrup"], + "camelcase": [2, { "properties": "never" }], + "comma-dangle": 2, + "comma-spacing": 2, + "comma-style": 2, + "complexity": [0, 11], + "computed-property-spacing": 2, + "consistent-return": 2, + "consistent-this": 2, + "constructor-super": 2, + "curly": [2, "multi-line"], + "default-case": 2, + "dot-location": [2, "property"], + "dot-notation": 2, + "eol-last": 2, + "eqeqeq": 2, + "func-style": [2, "declaration", { "allowArrowFunctions": true }], + "generator-star-spacing": 2, + "global-require": 0, + "guard-for-in": 2, + "handle-callback-err": 2, + "id-match": 2, + "indent": [ + 2, + 2, + { + "SwitchCase": 1, + "VariableDeclarator": { + "var": 2, + "let": 2, + "const": 3 + } + } + ], + "jsx-quotes": 2, + "key-spacing": 2, + "keyword-spacing": 2, + "lines-around-comment": 2, + "max-nested-callbacks": 2, + "new-cap": [2, { "capIsNewExceptions": ["Radium"] }], + "new-parens": 2, + "no-cond-assign": 2, + "no-constant-condition": 2, + "no-control-regex": 2, + "no-debugger": 2, + "no-delete-var": 2, + "no-dupe-keys": 2, + "no-dupe-args": 2, + "no-duplicate-case": 2, + "no-empty": 2, + "no-empty-character-class": 2, + "no-ex-assign": 2, + "no-extra-boolean-cast": 2, + "no-extra-parens": 2, + "no-extra-semi": 2, + "no-fallthrough": 2, + "no-func-assign": 2, + "no-inner-declarations": 2, + "no-invalid-regexp": 2, + "no-irregular-whitespace": 2, + "no-mixed-spaces-and-tabs": 2, + "no-negated-in-lhs": 2, + "no-obj-calls": 2, + "no-octal": 2, + "no-redeclare": 2, + "no-regex-spaces": 2, + "no-sparse-arrays": 2, + "no-undef": 2, + "no-unreachable": 2, + "no-unused-vars": 2, + "no-var": 2, + "object-curly-spacing": 2, + "object-shorthand": 2, + "operator-assignment": 2, + "operator-linebreak": 2, + "prefer-arrow-callback": 2, + "prefer-const": 2, + "prefer-spread": 2, + "prefer-template": 1, + "quote-props": [2, "consistent-as-needed"], + "quotes": 2, + "radix": 2, + "react/prop-types": 0, + "require-jsdoc": 2, + "require-yield": 2, + "semi": 2, + "semi-spacing": 2, + "sort-vars": 2, + "space-before-blocks": 2, + "space-before-function-paren": [2, "never"], + "space-in-parens": 2, + "space-infix-ops": 2, + "space-unary-ops": 2, + "spaced-comment": 2, + "use-isnan": 2, + "valid-typeof": 2, + "wrap-iife": 2, + "wrap-regex": 2, + "yoda": [2, "never"] + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..91b700f --- /dev/null +++ b/package.json @@ -0,0 +1,22 @@ +{ + "name": "@datawheel/eslint-config", + "version": "1.0.0", + "description": "A common set of eslint rules for the company.", + "main": "index.js", + "repository": { + "type": "git", + "url": "git+https://github.com/Datawheel/eslint-config.git" + }, + "keywords": ["datawheel", "eslint", "eslintconfig", "eslintrc"], + "author": "Dave Landry ", + "license": "MIT", + "bugs": { + "url": "https://github.com/Datawheel/eslint-config/issues" + }, + "homepage": "https://github.com/Datawheel/eslint-config#readme", + "peerDependencies": { + "eslint": ">= 3", + "babel-eslint": ">= 6", + "eslint-plugin-react": ">= 7" + } +}