Skip to content

Commit

Permalink
Import functions instead of namespace
Browse files Browse the repository at this point in the history
Cleanup our `packages/core/src/common/types.ts` file.
  • Loading branch information
paul-marechal committed Jan 9, 2023
1 parent 5a852e6 commit 9edcebb
Show file tree
Hide file tree
Showing 72 changed files with 401 additions and 391 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@
import { SelectionService } from '@theia/core/lib/common/selection-service';
import { SelectionCommandHandler } from '@theia/core/lib/common/selection-command-handler';
import { ResourceFileEdit, ResourceTextEdit } from '@theia/monaco-editor-core/esm/vs/editor/browser/services/bulkEditService';
import { Is } from '@theia/core/lib/common/is';
import { isObject } from '@theia/core/lib/common';

export interface BulkEditNodeSelection {
bulkEdit: ResourceFileEdit | ResourceTextEdit;
}
export namespace BulkEditNodeSelection {
export function is(arg: unknown): arg is BulkEditNodeSelection {
return Is.object(arg) && 'bulkEdit' in arg;
return isObject(arg) && 'bulkEdit' in arg;
}

export class CommandHandler extends SelectionCommandHandler<BulkEditNodeSelection> {
Expand Down
4 changes: 2 additions & 2 deletions packages/core/src/browser/frontend-application.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
// *****************************************************************************

import { inject, injectable, named } from 'inversify';
import { ContributionProvider, CommandRegistry, MenuModelRegistry, isOSX, BackendStopwatch, LogLevel, Stopwatch, Is } from '../common';
import { ContributionProvider, CommandRegistry, MenuModelRegistry, isOSX, BackendStopwatch, LogLevel, Stopwatch, isObject } from '../common';
import { MaybePromise } from '../common/types';
import { KeybindingRegistry } from './keybinding';
import { Widget } from './widgets';
Expand Down Expand Up @@ -101,7 +101,7 @@ export interface OnWillStopAction<T = unknown> {

export namespace OnWillStopAction {
export function is(candidate: unknown): candidate is OnWillStopAction {
return Is.object(candidate) && 'action' in candidate && 'reason' in candidate;
return isObject(candidate) && 'action' in candidate && 'reason' in candidate;
}
}

Expand Down
4 changes: 2 additions & 2 deletions packages/core/src/browser/label-parser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
// *****************************************************************************
import { injectable } from 'inversify';
import { Is } from '../common/is';
import { isObject, isString } from '../common';

export interface LabelIcon {
name: string;
Expand All @@ -23,7 +23,7 @@ export interface LabelIcon {

export namespace LabelIcon {
export function is(val: unknown): val is LabelIcon {
return Is.object<LabelIcon>(val) && Is.string(val.name);
return isObject<LabelIcon>(val) && isString(val.name);
}
}

Expand Down
5 changes: 2 additions & 3 deletions packages/core/src/browser/label-provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@ import { inject, injectable, named, postConstruct } from 'inversify';
import * as fileIcons from 'file-icons-js';
import URI from '../common/uri';
import { ContributionProvider } from '../common/contribution-provider';
import { Prioritizeable } from '../common/types';
import { Event, Emitter, Disposable, Path, Is } from '../common';
import { Event, Emitter, Disposable, isObject, Path, Prioritizeable } from '../common';
import { FrontendApplicationContribution } from './frontend-application';
import { EnvVariablesServer } from '../common/env-variables/env-variables-protocol';
import { ResourceLabelFormatter, ResourceLabelFormatting } from '../common/label-protocol';
Expand Down Expand Up @@ -99,7 +98,7 @@ export interface URIIconReference {
}
export namespace URIIconReference {
export function is(element: unknown): element is URIIconReference {
return Is.object(element) && element.kind === 'uriIconReference';
return isObject(element) && element.kind === 'uriIconReference';
}
export function create(id: URIIconReference['id'], uri?: URI): URIIconReference {
return { kind: 'uriIconReference', id, uri };
Expand Down
8 changes: 3 additions & 5 deletions packages/core/src/browser/navigatable-types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,8 @@
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
// *****************************************************************************

import URI from '../common/uri';
import { MaybeArray } from '../common/types';
import { URI, isObject, MaybeArray } from '../common';
import { Widget, BaseWidget } from './widgets';
import { Is } from '../common/is';

/**
* `Navigatable` provides an access to an URI of an underlying instance of `Resource`.
Expand All @@ -35,7 +33,7 @@ export interface Navigatable {

export namespace Navigatable {
export function is(arg: unknown): arg is Navigatable {
return Is.object(arg) && 'getResourceUri' in arg && 'createMoveToUri' in arg;
return isObject(arg) && 'getResourceUri' in arg && 'createMoveToUri' in arg;
}
}

Expand Down Expand Up @@ -78,6 +76,6 @@ export interface NavigatableWidgetOptions {
}
export namespace NavigatableWidgetOptions {
export function is(arg: unknown): arg is NavigatableWidgetOptions {
return Is.object(arg) && arg.kind === 'navigatable';
return isObject(arg) && arg.kind === 'navigatable';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

import { inject, injectable, postConstruct } from 'inversify';
import { PreferenceSchema } from '../../common/preferences/preference-schema';
import { Disposable, DisposableCollection, Emitter, Event, Is, MaybePromise } from '../../common';
import { Disposable, DisposableCollection, Emitter, Event, isObject, MaybePromise } from '../../common';
import { PreferenceChangeEvent, PreferenceEventEmitter, PreferenceProxy, PreferenceProxyOptions, PreferenceRetrieval } from './preference-proxy';
import { PreferenceChange, PreferenceChangeImpl, PreferenceChanges, PreferenceScope, PreferenceService } from './preference-service';
import { JSONValue } from '@phosphor/coreutils';
Expand Down Expand Up @@ -145,7 +145,7 @@ export class InjectablePreferenceProxy<T extends Record<string, JSONValue>> impl
} while (parentSegment && value === undefined);

let segment;
while (Is.object(value) && (segment = segments.pop())) {
while (isObject(value) && (segment = segments.pop())) {
value = value[segment];
}
return segments.length ? undefined : value;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

import * as Ajv from 'ajv';
import { inject, injectable, interfaces, named, postConstruct } from 'inversify';
import { ContributionProvider, bindContributionProvider, Emitter, Event, Disposable, Is } from '../../common';
import { ContributionProvider, bindContributionProvider, Emitter, Event, Disposable } from '../../common';
import { PreferenceScope } from './preference-scope';
import { PreferenceProvider, PreferenceProviderDataChange } from './preference-provider';
import {
Expand All @@ -26,7 +26,7 @@ import { FrontendApplicationConfigProvider } from '../frontend-application-confi
import { FrontendApplicationConfig } from '@theia/application-package/lib/application-props';
import { bindPreferenceConfigurations, PreferenceConfigurations } from './preference-configurations';
export { PreferenceSchema, PreferenceSchemaProperties, PreferenceDataSchema, PreferenceItem, PreferenceSchemaProperty, PreferenceDataProperty };
import { Mutable } from '../../common/types';
import { isObject, Mutable } from '../../common/types';
import { PreferenceLanguageOverrideService } from './preference-language-override-service';
import { JSONValue } from '@phosphor/coreutils';

Expand Down Expand Up @@ -80,7 +80,7 @@ export interface FrontendApplicationPreferenceConfig extends FrontendApplication
}
export namespace FrontendApplicationPreferenceConfig {
export function is(config: FrontendApplicationConfig): config is FrontendApplicationPreferenceConfig {
return Is.object(config.preferences);
return isObject(config.preferences);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
// *****************************************************************************

import { injectable } from 'inversify';
import { escapeRegExpCharacters, Is } from '../../common';
import { escapeRegExpCharacters, isObject } from '../../common';
import { PreferenceSchemaProperties } from '../../common/preferences/preference-schema';

export interface OverridePreferenceName {
Expand All @@ -24,7 +24,7 @@ export interface OverridePreferenceName {
}
export namespace OverridePreferenceName {
export function is(arg: unknown): arg is OverridePreferenceName {
return Is.object(arg) && 'preferenceName' in arg && 'overrideIdentifier' in arg;
return isObject(arg) && 'preferenceName' in arg && 'overrideIdentifier' in arg;
}
}

Expand Down
4 changes: 2 additions & 2 deletions packages/core/src/browser/preferences/preference-provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import debounce = require('p-debounce');
import { injectable, inject } from 'inversify';
import { JSONExt, JSONValue } from '@phosphor/coreutils';
import URI from '../../common/uri';
import { Disposable, DisposableCollection, Emitter, Event, Is } from '../../common';
import { Disposable, DisposableCollection, Emitter, Event, isObject } from '../../common';
import { Deferred } from '../../common/promise-util';
import { PreferenceScope } from './preference-scope';
import { PreferenceLanguageOverrideService } from './preference-language-override-service';
Expand Down Expand Up @@ -253,7 +253,7 @@ export abstract class PreferenceProvider implements Disposable {

protected getParsedContent(jsonData: any): { [key: string]: any } {
const preferences: { [key: string]: any } = {};
if (!Is.object(jsonData)) {
if (!isObject(jsonData)) {
return preferences;
}
for (const [preferenceName, preferenceValue] of Object.entries(jsonData)) {
Expand Down
4 changes: 2 additions & 2 deletions packages/core/src/browser/preferences/preference-proxy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

/* eslint-disable @typescript-eslint/no-explicit-any */

import { Disposable, Event, Is, MaybePromise } from '../../common';
import { Disposable, Event, isObject, MaybePromise } from '../../common';
import { PreferenceService } from './preference-service';
import { PreferenceSchema } from './preference-contribution';
import { PreferenceScope } from './preference-scope';
Expand Down Expand Up @@ -332,7 +332,7 @@ export function createPreferenceProxy<T>(preferences: PreferenceService, promise
} while (parentSegment && value === undefined);

let segment;
while (Is.object(value) && (segment = segments.pop())) {
while (isObject(value) && (segment = segments.pop())) {
value = value[segment];
}
return segments.length ? undefined : value;
Expand Down
6 changes: 3 additions & 3 deletions packages/core/src/browser/saveable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import { Key } from './keyboard/keys';
import { AbstractDialog } from './dialogs';
import { waitForClosed } from './widgets';
import { nls } from '../common/nls';
import { Is } from '../common/is';
import { isObject } from '../common';

export interface Saveable {
readonly dirty: boolean;
Expand Down Expand Up @@ -61,10 +61,10 @@ export namespace Saveable {

export type Snapshot = { value: string } | { read(): string | null };
export function isSource(arg: unknown): arg is SaveableSource {
return Is.object<SaveableSource>(arg) && is(arg.saveable);
return isObject<SaveableSource>(arg) && is(arg.saveable);
}
export function is(arg: unknown): arg is Saveable {
return Is.object(arg) && 'dirty' in arg && 'onDirtyChanged' in arg;
return isObject(arg) && 'dirty' in arg && 'onDirtyChanged' in arg;
}
export function get(arg: unknown): Saveable | undefined {
if (is(arg)) {
Expand Down
4 changes: 2 additions & 2 deletions packages/core/src/browser/shell/application-shell.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import {
} from '@phosphor/widgets';
import { Message } from '@phosphor/messaging';
import { IDragEvent } from '@phosphor/dragdrop';
import { RecursivePartial, Event as CommonEvent, DisposableCollection, Disposable, environment, Is } from '../../common';
import { RecursivePartial, Event as CommonEvent, DisposableCollection, Disposable, environment, isObject } from '../../common';
import { animationFrame } from '../browser';
import { Saveable, SaveableWidget, SaveOptions, SaveableSource } from '../saveable';
import { StatusBarImpl, StatusBarEntry, StatusBarAlignment } from '../status-bar/status-bar';
Expand Down Expand Up @@ -2108,7 +2108,7 @@ export namespace ApplicationShell {

export namespace TrackableWidgetProvider {
export function is(widget: unknown): widget is TrackableWidgetProvider {
return Is.object(widget) && 'getTrackableWidgets' in widget;
return isObject(widget) && 'getTrackableWidgets' in widget;
}
}

Expand Down
9 changes: 4 additions & 5 deletions packages/core/src/browser/shell/shell-layout-restorer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,11 @@ import { ILogger } from '../../common/logger';
import { CommandContribution, CommandRegistry, Command } from '../../common/command';
import { ThemeService } from '../theming';
import { ContributionProvider } from '../../common/contribution-provider';
import { MaybePromise } from '../../common/types';
import { ApplicationShell, applicationShellLayoutVersion, ApplicationShellLayoutVersion } from './application-shell';
import { CommonCommands } from '../common-frontend-contribution';
import { WindowService } from '../window/window-service';
import { StopReason } from '../../common/frontend-application-state';
import { Is } from '../../common/is';
import { isFunction, isObject, MaybePromise } from '../../common';

/**
* A contract for widgets that want to store and restore their inner state, between sessions.
Expand All @@ -48,7 +47,7 @@ export interface StatefulWidget {

export namespace StatefulWidget {
export function is(arg: unknown): arg is StatefulWidget {
return Is.object<StatefulWidget>(arg) && Is.func(arg.storeState) && Is.func(arg.restoreState);
return isObject<StatefulWidget>(arg) && isFunction(arg.storeState) && isFunction(arg.restoreState);
}
}

Expand Down Expand Up @@ -279,7 +278,7 @@ export class ShellLayoutRestorer implements CommandContribution {
});
}
return widgets;
} else if (Is.object<Record<string, WidgetDescription>>(value) && !Array.isArray(value)) {
} else if (isObject<Record<string, WidgetDescription>>(value) && !Array.isArray(value)) {
const copy: Record<string, unknown> = {};
for (const p in value) {
if (this.isWidgetProperty(p)) {
Expand All @@ -302,7 +301,7 @@ export class ShellLayoutRestorer implements CommandContribution {
// don't catch exceptions, if one migration fails all should fail.
const migrated = await migration.onWillInflateWidget(desc, context);
if (migrated) {
if (Is.object(migrated.innerWidgetState)) {
if (isObject(migrated.innerWidgetState)) {
// in order to inflate nested widgets
migrated.innerWidgetState = JSON.stringify(migrated.innerWidgetState);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
// *****************************************************************************

import * as React from 'react';
import { ArrayUtils, Event, Is, MenuPath } from '../../../common';
import { ArrayUtils, Event, isFunction, isObject, isString, MenuPath } from '../../../common';
import { Widget } from '../../widgets';

/** Items whose group is exactly 'navigation' will be rendered inline. */
Expand All @@ -28,7 +28,7 @@ export interface TabBarDelegator extends Widget {

export namespace TabBarDelegator {
export function is(candidate?: Widget): candidate is TabBarDelegator {
return Is.object<TabBarDelegator>(candidate) && Is.func(candidate.getTabBarDelegate);
return isObject<TabBarDelegator>(candidate) && isFunction(candidate.getTabBarDelegate);
}
}

Expand Down Expand Up @@ -168,7 +168,7 @@ export namespace TabBarToolbarItem {
};

export function is(arg: unknown): arg is TabBarToolbarItem {
return Is.object<TabBarToolbarItem>(arg) && Is.string(arg.command);
return isObject<TabBarToolbarItem>(arg) && isString(arg.command);
}

}
Expand Down
7 changes: 2 additions & 5 deletions packages/core/src/browser/source-tree/tree-source.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,8 @@

import { ReactNode } from 'react';
import { injectable, unmanaged } from 'inversify';
import { Emitter, Event } from '../../common/event';
import { MaybePromise } from '../../common/types';
import { Disposable, DisposableCollection } from '../../common/disposable';
import { Disposable, DisposableCollection, Emitter, Event, isObject, MaybePromise } from '../../common';
import { TreeWidget } from '../tree';
import { Is } from '../../common/is';

export interface TreeElement {
/** default: parent id + position among siblings */
Expand All @@ -40,7 +37,7 @@ export interface CompositeTreeElement extends TreeElement {
}
export namespace CompositeTreeElement {
export function is(element: unknown): element is CompositeTreeElement {
return Is.object(element) && 'getElements' in element;
return isObject(element) && 'getElements' in element;
}
export function hasElements(element: unknown): element is CompositeTreeElement {
return is(element) && element.hasElements !== false;
Expand Down
4 changes: 2 additions & 2 deletions packages/core/src/browser/tree/tree-selection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
// *****************************************************************************

import { TreeNode } from './tree';
import { Event, Disposable, SelectionProvider, Is } from '../../common';
import { Event, Disposable, isObject, SelectionProvider } from '../../common';

/**
* The tree selection service.
Expand Down Expand Up @@ -87,7 +87,7 @@ export namespace TreeSelection {
}

export function is(arg: unknown): arg is TreeSelection {
return Is.object(arg) && 'node' in arg;
return isObject(arg) && 'node' in arg;
}

export function isRange(arg: TreeSelection | SelectionType | undefined): boolean {
Expand Down
7 changes: 3 additions & 4 deletions packages/core/src/browser/tree/tree.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,8 @@ import { injectable } from 'inversify';
import { Event, Emitter, WaitUntilEvent } from '../../common/event';
import { Disposable, DisposableCollection } from '../../common/disposable';
import { CancellationToken, CancellationTokenSource } from '../../common/cancellation';
import { Mutable } from '../../common/types';
import { timeout } from '../../common/promise-util';
import { Is } from '../../common/is';
import { isObject, Mutable } from '../../common';

export const Tree = Symbol('Tree');

Expand Down Expand Up @@ -125,7 +124,7 @@ export interface TreeNode {

export namespace TreeNode {
export function is(node: unknown): node is TreeNode {
return Is.object(node) && 'id' in node && 'parent' in node;
return isObject(node) && 'id' in node && 'parent' in node;
}

export function equals(left: TreeNode | undefined, right: TreeNode | undefined): boolean {
Expand All @@ -149,7 +148,7 @@ export interface CompositeTreeNode extends TreeNode {

export namespace CompositeTreeNode {
export function is(node: unknown): node is CompositeTreeNode {
return Is.object(node) && 'children' in node;
return isObject(node) && 'children' in node;
}

export function getFirstChild(parent: CompositeTreeNode): TreeNode | undefined {
Expand Down
Loading

0 comments on commit 9edcebb

Please sign in to comment.