Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Eslint config passport next #3

Open
wants to merge 141 commits into
base: master
Choose a base branch
from

Conversation

brettz9
Copy link
Member

@brettz9 brettz9 commented Jan 13, 2020

FWIW, it's been a while since this has been updated.

I still need to look at rebasing my old work, and I'm only now getting back into the node-login project (which I hope can give me some experience on passport-local once I may get to it--hopefully in a couple weeks).

brettz9 added 30 commits July 3, 2019 17:42
…ents`

- Breaking change [`sauron`]: `preferredTypes` to prefer Typescript-friendly
  `any` instead of `Any`
- Change [`index.js`]: Reorder `extends` (what should be
  backward-compatibly) and avoid adding to `plugins` except where needed
- Change [`index.js`]: Make explicit deriving from `promise/recommended`,
    `import/recommended`, and `jsdoc/recommended`, though disabling rules
    we don't want (and removing some explicit rule additions which are
    now inherited); though not currently deriving from its `es2019` config,
    we are disabling some `@mysticatea/eslint-plugin` rules, as though we
    were inheriting only those rules which it doesn't inherit from other
    plugins/configs. In the absence of inheriting the config, we are also
    therefore adding some of its rules manually. Should be
    backward-compatible.
- Update [\*]: Fix config extension paths for ESLint 6

- Fix [`index.js`] (tighten): Ensure `no-use-extend-native` is being applied
- Fix [`explicitly-unused.js`]: Remove those which were (or now are) in
  other configs like `sauron`

- Enhancement [`index.js`] (tighten): Add plugin with its recommended
  rules (`sonarjs`), disabling some
- Enhancement [`index.js`] (tighten): Add `eslint-plugin-html` plugin
    (though need to enable for HTML, e.g., `--ext .js,.md,.html`)
- Enhancement [`index.js`] (tighten): Add plugin `array-func/all` with its
  `all` rules (though disabling `array-func/prefer-array-from` for now)
- Enhancement [`sauron`] (tighten): Add `prefer-named-capture-group`
- Enhancement [`great-eye`] (tighten): Add `max-statements`,
  `import/no-unused-modules`, and `sonarjs/cognitive-complexity`
- Enhancement [`great-eye`] (tighten): Add `import/no-unused-modules` (with
    `missingExports` and `unusedExports`)
- Enhancement [`great-eye-node`]: Add new config which expands on `great-eye`
  and `sauron-node`
- Enhancement [`explicitly-unused.js`]: Add unused `@mysticatea` and
  `eslint-comments` items and some deprecated rules
- Enhancement [`inherited-rules/implicitly-included`]: Add these auto-built
  configs to track rules that were inherited (and not disabled)
- Enhancement [`inherited-rules/unused`]: Add space for these auto-built
  configs (currently none) to track if there are any rules in the plug-ins
  and configs we have extended but have not either incorporated or
  explicitly rejected.

- Linting: Fix `.eslintrc` error
- Docs: Indicate how to find which rules were inherited or rejected and
  to calculate if any inherited ones are missing from our lists;
  some doc fixes
- npm: Update devDeps, peerDeps
- npm: Bump to 8.0.0
  reporting parents instead of children
- Refactoring: Remove trailing commas
- npm: Bump to 8.0.1
…sdoc type improvements)

- npm: Bump to 8.0.2
  accordingly; document choice of options
- npm: Bump to 8.1.0
…-recommended rules (e.g., by standard)

- Build: Update "standard" and eslint-recommended comparison files as
  "standard" now incorporates more recommended rules (and removes a
  few of its own redundant ones)
- npm: Bump peerDeps/devDeps
- npm: Bump to 8.4.0
…sticatea

- Build: Ensure removing files before testing
- Build: Only check `explicitly-unused` rules in comparison with unused,
  not with inherited, as need to see which explicitly unused rules may
  later become used
- Fix [`index.js`]: Disable `lines-between-class-members` as inherited
  now from standard
…ages calling

  for replacement
- npm: Bump to 8.5.1
  `function-call-argument-newline` set to `never`
- Enhancement [`index.js`]: apply rule `no-label-var` for comparison purposes
  (though already a part of `eslint:recommended`)
- Enhancement [`index.js`]: Disable `object-curly-newline` since added to
  "standard"
- npm: Update devDeps/peerDeps
- npm: Bump to 8.6.0
  `function-call-argument-newline` (oppressive)
- npm: Bump to 8.7.0
  `standard/no-callback-literal`
- npm: Update devDeps/peerDeps
- npm: Bump to 8.8.0
  adds `node/no-exports-assign`
- npm: Bump to 8.9.0
- Enhancement [`index.js`] (tighten): Add new rules: `default-param-last`,
  `no-import-assign`, `prefer-regex-literals`
- Enhancement [`index.js`] (tighten): Inherit new rules from unicorn:
  `prefer-dataset`, `prefer-reflect-apply`
- Enhancement [`index.js`]: `unicorn/expiring-todo-comments` but allowing
  for no conditions
- Enhancement [`index.js`]: Add `no-warning-comments` with terms set to `fixme`
  and `xxx` so as to block these (in favor of `todo`)
- Enhancement [`great-eye`]: `unicorn/expiring-todo-comments` and insisting
  on conditions
- Enhancement [`sauron`]: `unicorn/consistent-function-scoping`
- Testing: Compare to es2020
- npm: Bump `@mysticatea/eslint-plugin`, `eslint-plugin-jsdoc`,
  `eslint-plugin-unicorn`, `typescript`, `eslint` devDeps/peerDeps
- npm: Bump to 9.0.0
* master: (26 commits)
  - Fix: Remove `unicorn/consistent-function-scoping` as prematurely added - npm: Bump to 9.0.1
  - Breaking change: Require >= node 8.10.0 - Enhancement [`index.js`] (tighten): Add new rules: `default-param-last`,   `no-import-assign`, `prefer-regex-literals` - Enhancement [`index.js`] (tighten): Inherit new rules from unicorn:   `prefer-dataset`, `prefer-reflect-apply` - Enhancement [`index.js`]: `unicorn/expiring-todo-comments` but allowing   for no conditions - Enhancement [`index.js`]: Add `no-warning-comments` with terms set to `fixme`   and `xxx` so as to block these (in favor of `todo`) - Enhancement [`great-eye`]: `unicorn/expiring-todo-comments` and insisting   on conditions - Enhancement [`sauron`]: `unicorn/consistent-function-scoping` - Testing: Compare to es2020 - npm: Bump `@mysticatea/eslint-plugin`, `eslint-plugin-jsdoc`,   `eslint-plugin-unicorn`, `typescript`, `eslint` devDeps/peerDeps - npm: Bump to 9.0.0
  - Enhancement [`index.js`]: Update node plugin with recommended update;   adds `node/no-exports-assign` - npm: Bump to 8.9.0
  - Docs: Update CHANGES
  - npm: Update eslint, eslint-plugin-jsdoc devDeps/peerDeps
  - Docs; Reason for non-inclusion of `node/no-callback-literal`
  - Update: Avoid `node/no-callback-literal` which duplicates   `standard/no-callback-literal` - npm: Update devDeps/peerDeps - npm: Bump to 8.8.0
  - npm: Actually bump to 8.7.0
  - Enhancement [`index.js`] (tighten): remove rule   `function-call-argument-newline` (oppressive) - npm: Bump to 8.7.0
  - Enhancement [`index.js`] (tighten): apply rule   `function-call-argument-newline` set to `never` - Enhancement [`index.js`]: apply rule `no-label-var` for comparison purposes   (though already a part of `eslint:recommended`) - Enhancement [`index.js`]: Disable `object-curly-newline` since added to   "standard" - npm: Update devDeps/peerDeps - npm: Bump to 8.6.0
  - npm: Update peer and devDeps (including import, jsdoc, and unicorn plugins) - npm: Bump to 8.5.2
  - npm: Update devDeps/peerDeps, compat, jsdoc (no rule changes)
  - Fix [`sauron`]: Avoid use of now removed template variables in messages calling   for replacement - npm: Bump to 8.5.1
  - npm: Update eslint-plugin-jsdoc - npm: Bump to 8.5.0
  - Change: [`index.js`]: Explicitly reject items if we inherit from mysticatea - Build: Ensure removing files before testing - Build: Only check `explicitly-unused` rules in comparison with unused,   not with inherited, as need to see which explicitly unused rules may   later become used - Fix [`index.js`]: Disable `lines-between-class-members` as inherited   now from standard
  - Enhancement: Add `eslint-conf_eslint-all.js` for showing non-eslint-recommended rules (e.g., by standard) - Build: Update "standard" and eslint-recommended comparison files as   "standard" now incorporates more recommended rules (and removes a   few of its own redundant ones) - npm: Bump peerDeps/devDeps - npm: Bump to 8.4.0
  - Docs: Clarify jsdoc item usage
  - npm: Bump eslint-plugin-jsdoc, typescript devDeps/peerDeps - npm: Bump to 8.3.0
  - npm: Bump eslint-plugin-jsdoc devDep/peerDep - npm: Bump to 8.2.0
  - Todos
  ...

# Conflicts:
#	CHANGES.md
#	README.md
#	great-eye.js
#	index.js
#	inherited-rules/build.js
#	inherited-rules/implicitly-included/unicorn-recommended.js
#	package-lock.json
#	package.json
* master:
  - Enhancement [`sauron`] (tighten) Add Unicorn `prefer-string-slice` rule - npm: Bump to 10.0.0

# Conflicts:
#	CHANGES.md
#	package-lock.json
#	package.json
brettz9 and others added 28 commits July 12, 2020 18:01
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](lodash/lodash@4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>
…7.19

Bump lodash from 4.17.15 to 4.17.19
    `no-object-as-default-parameter` and `prefer-array-find`;
    add back `prefer-flat-map`
- npm: Update peerDeps/devDeps.
- npm: Bump to 22.6.0
- npm: Bump to 22.7.0
- Update: Disable new Unicorn and jsdoc rules
- npm: Bump to 22.8.0
    `checkProperties` to `jsdoc/check-examples` rule
- Enhancement [`great-eye.js`]: Add `unicorn/numeric-separators-style` (but
    disable in `index.js`)
- npm: Update devDeps.
- npm: Bump to 22.9.0
    `standard/no-calback-literal`, `no-negated-in-lhs`
- Enhancement [`explicitly-unused.js`]: Remove disabling of
    `node/no-callback-literal` (rule now used)
- npm: Update peerDeps/devDeps.
- npm: Bump to 22.10.0
    `no-unsafe-optional-chaining`
- npm: Update peerDeps/devDeps.
…` and

    `no-unsafe-optional-chaining`
- Enhancement [`index.js`] (tighten): Add `unicorn/prefer-array-some`,
    `unicorn/prefer-date-now`, `unicorn/prefer-default-parameters`
- Enhancement [`index.js`] (tighten): Use renamed Unicorn rules
- Enhancement [`index.js`]: Avoid new Unicorn rules `no-lonely-if` and
    `empty-brace-spaces`
- Update [`explicitly-unused.js`]: Add renamed Unicorn rules
- npm: Update peerDeps/devDeps.
- npm: Bump to 23.0.0
- remark: remove remarkrc
- npm: Update peerDeps/devDeps.
- npm: Bump to 24.0.0
…ubclassed

    `Promise<>` to instead use an interface where the specific resolver and
    rejector can be documented.
…les,

    though disable `unicorn/no-array-for-each`
- npm: Update peerDeps/devDeps.
- npm: Bump to 25.0.0
…rk which

    doesn't warn when using ESLint 7 for `peerDependencies`. Changes
    `inherited-rules/implicitly-included/sonars-recommended.js` to
    `inherited-rules/implicitly-included/radar-recommended.js`
- npm: Bump to 26.0.0
- npm: Bump to 26.1.0
…r polyglot-friendly globals (other globals specific to envrionment are not whitelisted); to actually prevent these, will now need to set `shared-node-browser` `env` to `false`.

- Enhancement (`+babel.js`): Add file for wrapping a module to support equivalent babel/eslint-parser rules
- Enhancement (`+script-node.js`): Add file for applying script source type with Node
- Enhancement (`+script.js`): Add file for applying script source type for non-Node
- Enhancement (`mocha.js`): Sets up Mocha (and `chai` global) on test directories (via overrides)
- Enhancement (`mocha-plus.js`): Strict but reasonable rules for checking Mocha/Chai (not naming "sauron" as not bundling with Sauron)
- Enhancement (`cypress.js`): Strict but reasonable rules for checking Cypress
- Enhancement (`node.js`) [loosen]: Drop `node/global-require` as redundant with `import/no-dynamic-require`
- Enhancement (`node.js`): Based on `engines: {node}` set `env: {node: true, esX: true}` (extra ES globals as relevant to Node version), `parserOptions` `ecmaVersion`
- Enhancement (`rc.js`): Add config for using `overrides` to give Rollup and RC config files to support modules where available (and script where not)
- Enhancement (`sauron-node-overrides.js`):
- Enhancement (`sauron-node-script-overrides.js`):
- Enhancement (`sauron-node-script.js`): Use new `+script-node.js` file
- Enhancement (`sauron-overrides.js`):
- Enhancement (`sauron-script.js`):
- Lining: Dogfood our tighter modules
- npm: Bump engines to Node 10
    `peerDependencies` and removes extra code)
- pnpm: Switch to pnpm
- npm: Bump semver; peerDeps/devDeps.
* master: (39 commits)
  - Fix: Avoid `postinstall` script which causes problems for non-pnpm dependents - npm: Bump to 27.0.1
  - npm: Ignore pnpm lock file
  - Docs: Update README per latest configs and auto-settings
  - Enhancement (`index.js`) [loosen]: Disable sometimes cumbersome     `unicorn/consistent-destructuring`
  - Switch from `@mysticatea` to `@brettz9` fork (fixes and simplifies     `peerDependencies` and removes extra code) - pnpm: Switch to pnpm - npm: Bump semver; peerDeps/devDeps.
  - Enhancement (`index.js`) [loosen]: Add `shared-node-browser` env for polyglot-friendly globals (other globals specific to envrionment are not whitelisted); to actually prevent these, will now need to set `shared-node-browser` `env` to `false`. - Enhancement (`+babel.js`): Add file for wrapping a module to support equivalent babel/eslint-parser rules - Enhancement (`+script-node.js`): Add file for applying script source type with Node - Enhancement (`+script.js`): Add file for applying script source type for non-Node - Enhancement (`mocha.js`): Sets up Mocha (and `chai` global) on test directories (via overrides) - Enhancement (`mocha-plus.js`): Strict but reasonable rules for checking Mocha/Chai (not naming "sauron" as not bundling with Sauron) - Enhancement (`cypress.js`): Strict but reasonable rules for checking Cypress - Enhancement (`node.js`) [loosen]: Drop `node/global-require` as redundant with `import/no-dynamic-require` - Enhancement (`node.js`): Based on `engines: {node}` set `env: {node: true, esX: true}` (extra ES globals as relevant to Node version), `parserOptions` `ecmaVersion` - Enhancement (`rc.js`): Add config for using `overrides` to give Rollup and RC config files to support modules where available (and script where not) - Enhancement (`sauron-node-overrides.js`): - Enhancement (`sauron-node-script-overrides.js`): - Enhancement (`sauron-node-script.js`): Use new `+script-node.js` file - Enhancement (`sauron-overrides.js`): - Enhancement (`sauron-script.js`): - Lining: Dogfood our tighter modules - npm: Bump engines to Node 10
  - Todo
  - Linting: max-len
  - Refactoring: lbs, explicit extensions, no unnecessary quotes
  - npm: Update peerDeps/devDeps. - npm: Bump to 26.1.0
  - Breaking enhancement: Switch from SonarJS to Radar, a maintained fork which     doesn't warn when using ESLint 7 for `peerDependencies`. Changes     `inherited-rules/implicitly-included/sonars-recommended.js` to     `inherited-rules/implicitly-included/radar-recommended.js` - npm: Bump to 26.0.0
  - Todo
  - Enhancement: Enforce type on `yields` - npm: Bump to 25.1.0
  - Enhancement [`index.js`] (tighten): Update new jsdoc and Unicorn rules,     though disable `unicorn/no-array-for-each` - npm: Update peerDeps/devDeps. - npm: Bump to 25.0.0
  - Enhancement [`great-eye.js`] (tighten): Prevent plain use of even subclassed     `Promise<>` to instead use an interface where the specific resolver and     rejector can be documented.
  - Enhancement [`index.js`] (tighten): Uses all new Unicorn 26.0.0 rules - remark: remove remarkrc - npm: Update peerDeps/devDeps. - npm: Bump to 24.0.0
  - Enhancement [`index.js`] (tighten): Add `no-nonoctal-decimal-escape` and     `no-unsafe-optional-chaining` - Enhancement [`index.js`] (tighten): Add `unicorn/prefer-array-some`,     `unicorn/prefer-date-now`, `unicorn/prefer-default-parameters` - Enhancement [`index.js`] (tighten): Use renamed Unicorn rules - Enhancement [`index.js`]: Avoid new Unicorn rules `no-lonely-if` and     `empty-brace-spaces` - Update [`explicitly-unused.js`]: Add renamed Unicorn rules - npm: Update peerDeps/devDeps. - npm: Bump to 23.0.0
  - Enhancement [`index.js`]: Add `no-nonoctal-decimal-escape` and     `no-unsafe-optional-chaining` - npm: Update peerDeps/devDeps.
  - Enhancement [`index.js`]: Apply latest standard; remove now unneeded     `standard/no-calback-literal`, `no-negated-in-lhs` - Enhancement [`explicitly-unused.js`]: Remove disabling of     `node/no-callback-literal` (rule now used) - npm: Update peerDeps/devDeps. - npm: Bump to 22.10.0
  - Enhancement [`index.js`]: Add `checkDefaults`, `checkParams`, and     `checkProperties` to `jsdoc/check-examples` rule - Enhancement [`great-eye.js`]: Add `unicorn/numeric-separators-style` (but     disable in `index.js`) - npm: Update devDeps. - npm: Bump to 22.9.0
  ...

# Conflicts:
#	CHANGES.md
#	package-lock.json
#	package.json
@brettz9
Copy link
Member Author

brettz9 commented Feb 14, 2021

FWIW, there's another update here, which is more significant because it drops @mysticatea/eslint-plugin in favor of my own @brettz9/eslint-plugin because the former had ESLint, TypeScript and Vue configs all mixed in with the handful of useful rules I really wanted, so my latter package just extracted that (and the original dev. was not responding to my PR for him to make a separate package).

Besides reducing package size, this has the advantages:

  1. We can drop typescript as a devDep. (we never really needed it but was suppressing extra errors).
  2. npm@7 was preventing updates with unmet peerDependencies (though I reverted to npm@6 so don't know if subsequent versions might have changed). In any case, there is no more reporting of unmet vue, etc. peerDeps. (Also with npm@7 auto-installing peerDeps now apparently, consumers of the config should be able to avoid specifying all of the various peerDeps. as their own devDeps.)

As far as trying out passport-local, btw, I've thankfully recently found some things that have helped for my energy/health, and it is a priority for me, so I am hoping to revisit it as possible, though I can't make firm promises about it.

Take care!

@brettz9
Copy link
Member Author

brettz9 commented Feb 14, 2021

I've been updating my own copies of passport using my ash-nazg directly to keep it linted and updated passport-local, and passport-strategy, but the latter need to be reconciled with your skeleton changes on master to be submitted. But might tackle this as may be ready to do more substantive further work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants