Skip to content

Commit d6e571e

Browse files
author
colin-grant-work
authored
Remove and replace '.' imports (#11142)
Importing from adjacent `index.ts` files can trigger unexpected circular import errors. Replace those imports by importing from the files that define the symbols instead. Enable an ESLint rule to catch future offences.
1 parent fd14c0b commit d6e571e

File tree

18 files changed

+56
-31
lines changed

18 files changed

+56
-31
lines changed

configs/errors.eslintrc.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,14 @@
139139
"@theia/runtime-import-check": "error",
140140
"@theia/shared-dependencies": "error",
141141
"import/no-extraneous-dependencies": "error",
142-
"import/no-dynamic-require": "error"
142+
"import/no-dynamic-require": "error",
143+
"no-restricted-imports": [
144+
"error",
145+
".",
146+
"./",
147+
"..",
148+
"../"
149+
]
143150
},
144151
"overrides": [
145152
{

dev-packages/localization-manager/src/localization-manager.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@
1717
import * as chalk from 'chalk';
1818
import * as fs from 'fs-extra';
1919
import * as path from 'path';
20-
import { sortLocalization } from '.';
21-
import { Localization } from './common';
20+
import { Localization, sortLocalization } from './common';
2221
import { deepl, DeeplLanguage, DeeplParameters, isSupportedLanguage, supportedLanguages } from './deepl-api';
2322

2423
export interface LocalizationOptions {

dev-packages/private-re-exports/src/package-re-exports.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@
1717
import cp = require('child_process');
1818
import fs = require('fs');
1919
import path = require('path');
20-
import { parseModule } from '.';
21-
import { PackageJson, ReExportJson } from './utility';
20+
import { PackageJson, parseModule, ReExportJson } from './utility';
2221

2322
export async function readJson<T = unknown>(jsonPath: string): Promise<T> {
2423
return JSON.parse(await fs.promises.readFile(jsonPath, 'utf8')) as T;

packages/core/src/browser/preferences/injectable-preference-proxy.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@
1717
import { inject, injectable, postConstruct } from 'inversify';
1818
import { PreferenceSchema } from '../../common/preferences/preference-schema';
1919
import { Disposable, DisposableCollection, Emitter, Event, MaybePromise } from '../../common';
20-
import { PreferenceChangeEvent, PreferenceEventEmitter, PreferenceProxyOptions, PreferenceRetrieval } from './preference-proxy';
21-
import { PreferenceChange, PreferenceScope, PreferenceService } from './preference-service';
22-
import { OverridePreferenceName, PreferenceChangeImpl, PreferenceChanges, PreferenceProviderDataChange, PreferenceProxy } from '.';
20+
import { PreferenceChangeEvent, PreferenceEventEmitter, PreferenceProxy, PreferenceProxyOptions, PreferenceRetrieval } from './preference-proxy';
21+
import { PreferenceChange, PreferenceChangeImpl, PreferenceChanges, PreferenceScope, PreferenceService } from './preference-service';
2322
import { JSONValue } from '@phosphor/coreutils';
23+
import { PreferenceProviderDataChange } from './preference-provider';
24+
import { OverridePreferenceName } from './preference-language-override-service';
2425

2526
export const PreferenceProxySchema = Symbol('PreferenceProxySchema');
2627
export interface PreferenceProxyFactory {

packages/core/src/browser/preferences/preference-proxy.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ process.on('unhandledRejection', (reason, promise) => {
4343
});
4444

4545
import { expect } from 'chai';
46-
import { PreferenceValidationService } from '.';
46+
import { PreferenceValidationService } from './preference-validation-service';
4747
import { JSONValue } from '@phosphor/coreutils';
4848
let testContainer: Container;
4949

packages/core/src/browser/preferences/test/mock-preference-provider.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
/* eslint-disable @typescript-eslint/no-explicit-any */
1818

1919
import { interfaces } from 'inversify';
20-
import { PreferenceProvider } from '../';
20+
import { PreferenceProvider } from '../preference-provider';
2121
import { PreferenceScope } from '../preference-scope';
2222

2323
export class MockPreferenceProvider extends PreferenceProvider {

packages/core/src/browser/preferences/test/mock-preference-service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@
1515
// *****************************************************************************
1616

1717
import { injectable } from 'inversify';
18-
import { PreferenceService, PreferenceChange, OverridePreferenceName } from '../';
1918
import { Emitter, Event } from '../../../common';
2019
import URI from '../../../common/uri';
21-
import { PreferenceChanges, PreferenceInspection } from '../preference-service';
20+
import { PreferenceChange, PreferenceChanges, PreferenceInspection, PreferenceService } from '../preference-service';
2221
import { PreferenceScope } from '../preference-scope';
22+
import { OverridePreferenceName } from '../preference-language-override-service';
2323

2424
@injectable()
2525
export class MockPreferenceService implements PreferenceService {

packages/core/src/browser/quick-input/quick-view-service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515
// *****************************************************************************
1616

1717
import { inject, injectable } from 'inversify';
18-
import { filterItems, QuickPickItem, QuickPicks } from '..';
1918
import { CancellationToken, Disposable } from '../../common';
2019
import { ContextKeyService } from '../context-key-service';
2120
import { QuickAccessContribution, QuickAccessProvider, QuickAccessRegistry } from './quick-access';
21+
import { filterItems, QuickPickItem, QuickPicks } from './quick-input-service';
2222

2323
export interface QuickViewItem {
2424
readonly label: string;

packages/core/src/common/uri-command-handler.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
// *****************************************************************************
1616

1717
import * as chai from 'chai';
18-
import { SelectionService } from '.';
18+
import { SelectionService } from './selection-service';
1919
import { MaybeArray } from './types';
2020
import URI from './uri';
2121
import { UriAwareCommandHandler, UriCommandHandler } from './uri-command-handler';

packages/core/src/common/uri-command-handler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
import { SelectionService } from '../common/selection-service';
2020
import { UriSelection } from '../common/selection';
2121
import { CommandHandler } from './command';
22-
import { MaybeArray } from '.';
2322
import URI from './uri';
23+
import { MaybeArray } from './types';
2424

2525
export interface UriCommandHandler<T extends MaybeArray<URI>> extends CommandHandler {
2626

0 commit comments

Comments
 (0)