ESLint rules for Spaces and Security (#93644)

This commit is contained in:
Joe Portner 2021-03-04 18:47:39 -05:00 committed by GitHub
parent 7c9e08e269
commit 171567d70a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 62 additions and 40 deletions

View file

@ -1330,6 +1330,55 @@ module.exports = {
},
},
/**
* Platform Security Team overrides
*/
{
files: [
'src/plugins/security_oss/**/*.{js,mjs,ts,tsx}',
'src/plugins/spaces_oss/**/*.{js,mjs,ts,tsx}',
'x-pack/plugins/encrypted_saved_objects/**/*.{js,mjs,ts,tsx}',
'x-pack/plugins/security/**/*.{js,mjs,ts,tsx}',
'x-pack/plugins/spaces/**/*.{js,mjs,ts,tsx}',
],
rules: {
'@typescript-eslint/consistent-type-imports': 1,
'import/order': [
// This rule sorts import declarations
'error',
{
groups: [
'unknown',
['builtin', 'external'],
'internal',
['parent', 'sibling', 'index'],
],
pathGroups: [
{
pattern: '{@kbn/**,src/**,kibana{,/**}}',
group: 'internal',
},
],
pathGroupsExcludedImportTypes: [],
alphabetize: {
order: 'asc',
caseInsensitive: true,
},
'newlines-between': 'always',
},
],
'import/no-duplicates': ['error'],
'sort-imports': [
// This rule sorts imports of multiple members (destructured imports)
'error',
{
ignoreCase: true,
ignoreDeclarationSort: true,
},
],
},
},
{
files: [
// core-team owned code

View file

@ -1,5 +0,0 @@
{
"rules": {
"@typescript-eslint/consistent-type-imports": 1
}
}

View file

@ -7,7 +7,6 @@
*/
import { nextTick } from '@kbn/test/jest';
import { coreMock } from 'src/core/public/mocks';
import { mockAppStateService } from '../app_state/app_state_service.mock';

View file

@ -11,8 +11,8 @@ import { distinctUntilChanged, map } from 'rxjs/operators';
import type { CoreSetup, CoreStart, MountPoint, Toast } from 'src/core/public';
import type { ConfigType } from '../config';
import type { AppStateServiceStart } from '../app_state';
import type { ConfigType } from '../config';
import { defaultAlertText, defaultAlertTitle } from './components';
interface SetupDeps {

View file

@ -1,5 +0,0 @@
{
"rules": {
"@typescript-eslint/consistent-type-imports": 1
}
}

View file

@ -6,8 +6,8 @@
* Side Public License, v 1.
*/
import type { Observable } from 'rxjs';
import type { ReactElement } from 'react';
import type { Observable } from 'rxjs';
import type { Space } from '../common';

View file

@ -6,9 +6,8 @@
* Side Public License, v 1.
*/
import { spacesApiMock } from '../api.mock';
import type { SpacesOssPluginSetup, SpacesOssPluginStart } from '../';
import { spacesApiMock } from '../api.mock';
const createSetupContract = (): jest.Mocked<SpacesOssPluginSetup> => ({
registerSpacesApi: jest.fn(),

View file

@ -8,8 +8,8 @@
import type { Plugin } from 'src/core/public';
import type { SpacesOssPluginSetup, SpacesOssPluginStart } from './types';
import type { SpacesApi } from './api';
import type { SpacesOssPluginSetup, SpacesOssPluginStart } from './types';
export class SpacesOssPlugin implements Plugin<SpacesOssPluginSetup, SpacesOssPluginStart, {}, {}> {
private api?: SpacesApi;

View file

@ -1,5 +0,0 @@
{
"rules": {
"@typescript-eslint/consistent-type-imports": 1
}
}

View file

@ -1,5 +0,0 @@
{
"rules": {
"@typescript-eslint/consistent-type-imports": 1
}
}

View file

@ -49,11 +49,11 @@ import type {
RoleIndexPrivilege,
} from '../../../../common/model';
import {
copyRole,
getExtendedRoleDeprecationNotice,
isRoleDeprecated as checkIfRoleDeprecated,
isRoleReadOnly as checkIfRoleReadOnly,
isRoleReserved as checkIfRoleReserved,
copyRole,
getExtendedRoleDeprecationNotice,
prepareRoleClone,
} from '../../../../common/model';
import type { UserAPIClient } from '../../users';

View file

@ -11,6 +11,7 @@ import { nextTick } from '@kbn/test/jest';
import { coreMock, elasticsearchServiceMock, loggingSystemMock } from 'src/core/server/mocks';
// Note: this import must be before other relative imports for the mocks to work as intended.
// eslint-disable-next-line import/order
import {
mockAuthorizationModeFactory,
mockCheckPrivilegesDynamicallyWithRequestFactory,

View file

@ -8,8 +8,8 @@
import { uniq } from 'lodash';
import type {
KibanaFeature,
PluginSetupContract as FeaturesPluginSetup,
KibanaFeature,
} from '../../../../features/server';
import type { SecurityLicense } from '../../../common/licensing';
import type { RawKibanaPrivileges } from '../../../common/model';

View file

@ -1,5 +0,0 @@
{
"rules": {
"@typescript-eslint/consistent-type-imports": 1
}
}

View file

@ -28,11 +28,11 @@ import type { ProcessedImportResponse } from 'src/plugins/saved_objects_manageme
import type { Space } from 'src/plugins/spaces_oss/common';
import { processImportResponse } from '../../../../../../src/plugins/saved_objects_management/public';
import { useSpaces } from '../../spaces_context';
import type { CopyOptions, ImportRetry, SavedObjectTarget } from '../types';
import { CopyToSpaceFlyoutFooter } from './copy_to_space_flyout_footer';
import { CopyToSpaceForm } from './copy_to_space_form';
import { ProcessingCopyToSpace } from './processing_copy_to_space';
import { useSpaces } from '../../spaces_context';
export interface CopyToSpaceFlyoutProps {
onClose: () => void;

View file

@ -11,8 +11,8 @@ import type {
SavedObjectsManagementRecord,
} from 'src/plugins/saved_objects_management/public';
import { summarizeCopyResult } from './summarize_copy_result';
import type { SavedObjectTarget } from '../types';
import { summarizeCopyResult } from './summarize_copy_result';
// Sample data references:
//

View file

@ -6,7 +6,6 @@
*/
import { i18n } from '@kbn/i18n';
import type { FeatureCatalogueEntry } from 'src/plugins/home/public';
import { FeatureCatalogueCategory } from '../../../../src/plugins/home/public';

View file

@ -9,7 +9,7 @@ import React, { useMemo } from 'react';
import { i18n } from '@kbn/i18n';
import type { SavedObjectsManagementRecord } from 'src/plugins/saved_objects_management/public';
import type { SpacesApiUi, ShareToSpaceFlyoutProps } from 'src/plugins/spaces_oss/public';
import type { ShareToSpaceFlyoutProps, SpacesApiUi } from 'src/plugins/spaces_oss/public';
import { SavedObjectsManagementAction } from '../../../../../src/plugins/saved_objects_management/public';

View file

@ -9,7 +9,7 @@ import React, { useMemo } from 'react';
import { i18n } from '@kbn/i18n';
import type { SavedObjectsManagementColumn } from 'src/plugins/saved_objects_management/public';
import type { SpacesApiUi, SpaceListProps } from 'src/plugins/spaces_oss/public';
import type { SpaceListProps, SpacesApiUi } from 'src/plugins/spaces_oss/public';
interface WrapperProps {
spacesApiUi: SpacesApiUi;

View file

@ -14,7 +14,7 @@ import type { SpacesContextProps } from 'src/plugins/spaces_oss/public';
import type { SpacesManager } from '../spaces_manager';
import type { ShareToSpacesData, ShareToSpaceTarget } from '../types';
import { createSpacesReactContext } from './context';
import type { SpacesReactContext, InternalProps } from './types';
import type { InternalProps, SpacesReactContext } from './types';
interface Services {
application: ApplicationStart;