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 * @flow strict-local
*/ */
import {filterMatchPatterns} from '../util/autoCompleteProvider'; import {filterMatchPatterns} from '../util/autoCompleteProvider.tsx';
import type {URI} from '../flow-types'; import type {URI} from '../flow-types';

View File

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

View File

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