Migrate util/autoCompleteProvider to TypeScript

Summary: Migrated autoCompleteProvider.js to autoCompleteProvider.tsx

Reviewed By: danielbuechele

Differential Revision: D17133612

fbshipit-source-id: 7d4da17bd639fdd4fc7a79cc931abeab62be2086
This commit is contained in:
Benjamin Elo
2019-09-02 03:54:48 -07:00
committed by Facebook Github Bot
parent 8269d128d6
commit d5d0b0cd49
4 changed files with 29 additions and 29 deletions

View File

@@ -6,7 +6,7 @@
* @flow strict-local
*/
import {filterMatchPatterns} from '../util/autoCompleteProvider';
import {filterMatchPatterns} from '../util/autoCompleteProvider.tsx';
import type {URI} from '../flow-types';

View File

@@ -8,7 +8,7 @@
import {Glyph, styled} from 'flipper';
import {useItemNavigation} from '../hooks/autoCompleteSheet';
import {filterProvidersToLineItems} from '../util/autoCompleteProvider';
import {filterProvidersToLineItems} from '../util/autoCompleteProvider.tsx';
import type {AutoCompleteProvider} from '../flow-types';

View File

@@ -24,7 +24,7 @@ import {
appMatchPatternsToAutoCompleteProvider,
bookmarksToAutoCompleteProvider,
DefaultProvider,
} from './util/autoCompleteProvider';
} from './util/autoCompleteProvider.tsx';
import {getAppMatchPatterns} from './util/appMatchPatterns';
import {getRequiredParameters, filterOptionalParameters} from './util/uri.tsx';

View File

@@ -3,30 +3,30 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
* @format
* @flow strict-local
*/
import type {
import {
URI,
Bookmark,
AutoCompleteProvider,
AutoCompleteLineItem,
AppMatchPattern,
} from '../flow-types';
} from '../types';
export function DefaultProvider(): AutoCompleteProvider {
this.icon = 'caution';
this.matchPatterns = new Map<string, URI>();
return this;
return {
icon: 'caution',
matchPatterns: new Map<string, URI>(),
};
}
export const bookmarksToAutoCompleteProvider: (
Map<URI, Bookmark>,
) => AutoCompleteProvider = bookmarks => {
export const bookmarksToAutoCompleteProvider = (
bookmarks: Map<URI, Bookmark>,
) => {
const autoCompleteProvider = {
icon: 'bookmark',
matchPatterns: new Map<string, URI>(),
};
} as AutoCompleteProvider;
bookmarks.forEach((bookmark, uri) => {
const matchPattern = bookmark.commonName + ' - ' + uri;
autoCompleteProvider.matchPatterns.set(matchPattern, uri);
@@ -49,14 +49,14 @@ export const appMatchPatternsToAutoCompleteProvider = (
appMatchPattern.pattern,
);
});
return (autoCompleteProvider: AutoCompleteProvider);
return autoCompleteProvider;
};
export const filterMatchPatterns: (
Map<string, URI>,
string,
number,
) => Map<string, URI> = (matchPatterns, query, maxItems) => {
export const filterMatchPatterns = (
matchPatterns: Map<string, URI>,
query: URI,
maxItems: number,
) => {
const filteredPatterns = new Map<string, URI>();
for (const [pattern, uri] of matchPatterns) {
if (filteredPatterns.size >= maxItems) {
@@ -68,22 +68,22 @@ export const filterMatchPatterns: (
return filteredPatterns;
};
const filterProvider: (
AutoCompleteProvider,
string,
number,
) => AutoCompleteProvider = (provider, query, maxItems) => {
const filterProvider = (
provider: AutoCompleteProvider,
query: string,
maxItems: number,
) => {
return {
...provider,
matchPatterns: filterMatchPatterns(provider.matchPatterns, query, maxItems),
};
};
export const filterProvidersToLineItems: (
Array<AutoCompleteProvider>,
string,
number,
) => Array<AutoCompleteLineItem> = (providers, query, maxItems) => {
export const filterProvidersToLineItems = (
providers: Array<AutoCompleteProvider>,
query: string,
maxItems: number,
) => {
let itemsLeft = maxItems;
const lineItems = new Array<AutoCompleteLineItem>(0);
for (const provider of providers) {