|
1 | 1 | import { Operation } from 'fast-json-patch' |
2 | 2 | import iterate from 'iterare' |
3 | | -import { toPairs } from 'lodash' |
4 | 3 | import { castArray, merge, omit } from 'lodash' |
| 4 | +import { toPairs } from 'lodash' |
5 | 5 | import hashObject = require('object-hash') |
6 | 6 | import { Span } from 'opentracing' |
7 | 7 | import { Observable } from 'rxjs' |
@@ -40,7 +40,7 @@ import { FileSystem, FileSystemUpdater, LocalFileSystem, RemoteFileSystem } from |
40 | 40 | import { LanguageClient } from './lang-handler' |
41 | 41 | import { Logger, LSPLogger } from './logging' |
42 | 42 | import { InMemoryFileSystem, isTypeScriptLibrary } from './memfs' |
43 | | -import { extractDefinitelyTypedPackageName, extractNodeModulesPackageName, PackageJson, PackageManager } from './packages' |
| 43 | +import { DEPENDENCY_KEYS, extractDefinitelyTypedPackageName, extractNodeModulesPackageName, PackageJson, PackageManager } from './packages' |
44 | 44 | import { ProjectConfiguration, ProjectManager } from './project-manager' |
45 | 45 | import { |
46 | 46 | CompletionItem, |
@@ -582,10 +582,13 @@ export class TypeScriptService { |
582 | 582 | || info.kind !== ts.ScriptElementKind.constructorImplementationElement |
583 | 583 | )) |
584 | 584 | // Make proper adjectives |
585 | | - .map(mod => ({ |
586 | | - [ts.ScriptElementKindModifier.ambientModifier]: 'ambient', |
587 | | - [ts.ScriptElementKindModifier.exportedModifier]: 'exported' |
588 | | - })[mod] || mod) |
| 585 | + .map(mod => { |
| 586 | + switch (mod) { |
| 587 | + case ts.ScriptElementKindModifier.ambientModifier: return 'ambient' |
| 588 | + case ts.ScriptElementKindModifier.exportedModifier: return 'exported' |
| 589 | + default: return mod |
| 590 | + } |
| 591 | + }) |
589 | 592 | if (modifiers.length > 0) { |
590 | 593 | kind += ' _(' + modifiers.join(', ') + ')_' |
591 | 594 | } |
@@ -714,7 +717,7 @@ export class TypeScriptService { |
714 | 717 | throw new Error(`Could not find tsconfig for ${packageRootUri}`) |
715 | 718 | } |
716 | 719 | // Don't match PackageDescriptor on symbols |
717 | | - return this._getSymbolsInConfig(config, omit<Partial<SymbolDescriptor>, Partial<SymbolDescriptor>>(params.symbol!, 'package'), span) |
| 720 | + return this._getSymbolsInConfig(config, omit(params.symbol!, 'package'), span) |
718 | 721 | })) |
719 | 722 | } |
720 | 723 | // Regular workspace symbol search |
@@ -801,7 +804,7 @@ export class TypeScriptService { |
801 | 804 | * @return Observable of JSON Patches that build a `ReferenceInformation[]` result |
802 | 805 | */ |
803 | 806 | public workspaceXreferences(params: WorkspaceReferenceParams, span = new Span()): Observable<Operation> { |
804 | | - const queryWithoutPackage = omit<Partial<SymbolDescriptor>, Partial<SymbolDescriptor>>(params.query, 'package') |
| 807 | + const queryWithoutPackage = omit(params.query, 'package') |
805 | 808 | const minScore = Math.min(4.75, getPropertyCount(queryWithoutPackage)) |
806 | 809 | return this.isDefinitelyTyped |
807 | 810 | .mergeMap(isDefinitelyTyped => { |
@@ -944,10 +947,10 @@ export class TypeScriptService { |
944 | 947 | repoURL: typeof packageJson.repository === 'object' && packageJson.repository.url || undefined |
945 | 948 | } |
946 | 949 | // Collect all dependencies for this package.json |
947 | | - return Observable.of<keyof PackageJson>('dependencies', 'devDependencies', 'peerDependencies', 'optionalDependencies') |
| 950 | + return Observable.from(DEPENDENCY_KEYS) |
948 | 951 | .filter(key => !!packageJson[key]) |
949 | 952 | // Get [name, version] pairs |
950 | | - .mergeMap(key => toPairs(packageJson[key]) as [string, string][]) |
| 953 | + .mergeMap(key => toPairs(packageJson[key])) |
951 | 954 | // Map to DependencyReferences |
952 | 955 | .map(([name, version]): DependencyReference => ({ |
953 | 956 | attributes: { |
@@ -986,10 +989,10 @@ export class TypeScriptService { |
986 | 989 | .mergeMap(uri => this.packageManager.getPackageJson(uri)) |
987 | 990 | // Map package.json to DependencyReferences |
988 | 991 | .mergeMap(packageJson => |
989 | | - Observable.of<keyof PackageJson>('dependencies', 'devDependencies', 'peerDependencies', 'optionalDependencies') |
| 992 | + Observable.from(DEPENDENCY_KEYS) |
990 | 993 | .filter(key => !!packageJson[key]) |
991 | 994 | // Get [name, version] pairs |
992 | | - .mergeMap(key => toPairs(packageJson[key]) as [string, string][]) |
| 995 | + .mergeMap(key => toPairs(packageJson[key])) |
993 | 996 | .map(([name, version]): DependencyReference => ({ |
994 | 997 | attributes: { |
995 | 998 | name, |
@@ -1458,7 +1461,7 @@ export class TypeScriptService { |
1458 | 1461 | // Same score for all |
1459 | 1462 | .map(item => [1, navigateToItemToSymbolInformation(item, program, this.root)] as [number, SymbolInformation]) |
1460 | 1463 | } else { |
1461 | | - const queryWithoutPackage = query && omit<Partial<SymbolDescriptor>, Partial<SymbolDescriptor>>(query, 'package') as SymbolDescriptor |
| 1464 | + const queryWithoutPackage = query && omit(query, 'package') as SymbolDescriptor |
1462 | 1465 | // Require at least 2 properties to match (or all if less provided) |
1463 | 1466 | const minScore = Math.min(2, getPropertyCount(query)) |
1464 | 1467 | const minScoreWithoutPackage = Math.min(2, getPropertyCount(queryWithoutPackage)) |
|
0 commit comments