[eslint] add rule to prevent export* in plugin index files (#109357)

* [eslint] add rule to prevent export* in plugin index files

* deduplicate export names for types/instances with the same name

* attempt to auto-fix duplicate exports too

* capture exported enums too

* enforce no_export_all for core too

* disable rule by default, allow opting-in for help fixing

* update tests

* reduce yarn.lock duplication

* add rule but no fixes

* disable all existing violations

* update api docs with new line numbers

* revert unnecessary changes to yarn.lock which only had drawbacks

* remove unnecessary eslint-disable

* rework codegen to split type exports and use babel to generate valid code

* check for "export types" deeply

* improve test by using fixtures

* add comments to some helper functions

* disable fix for namespace exports including types

* label all eslint-disable comments with related team-specific issue

* ensure that child exports of `export type` are always tracked as types

Co-authored-by: spalger <spalger@users.noreply.github.com>
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Spencer 2021-09-01 18:05:45 -07:00 committed by GitHub
parent 4f0a63f575
commit fecdba7eba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
89 changed files with 792 additions and 4 deletions

View file

@ -5,5 +5,8 @@
* 2.0.
*/
// TODO: https://github.com/elastic/kibana/issues/110898
/* eslint-disable @kbn/eslint/no_export_all */
export * from './constants';
export * from './types';