Migrated util/uri to TypeScript

Summary: Migrated uri.js to uri.tsx

Reviewed By: danielbuechele

Differential Revision: D17133606

fbshipit-source-id: d278c293c6040a522f5cc0c5462c6682dc634328
This commit is contained in:
Benjamin Elo
2019-09-02 03:54:48 -07:00
committed by Facebook Github Bot
parent 61ddbd9950
commit 332821d315
6 changed files with 9 additions and 12 deletions

View File

@@ -11,7 +11,7 @@ import {
parameterIsNumberType, parameterIsNumberType,
replaceRequiredParametersWithValues, replaceRequiredParametersWithValues,
filterOptionalParameters, filterOptionalParameters,
} from '../util/uri'; } from '../util/uri.tsx';
test('parse required parameters from uri', () => { test('parse required parameters from uri', () => {
const testURI = const testURI =

View File

@@ -7,7 +7,7 @@
*/ */
import {styled} from 'flipper'; import {styled} from 'flipper';
import {parseURIParameters} from '../util/uri'; import {parseURIParameters} from '../util/uri.tsx';
import {IconButton, FavoriteButton} from './'; import {IconButton, FavoriteButton} from './';
type Props = {| type Props = {|

View File

@@ -13,7 +13,7 @@ import {
parameterIsBooleanType, parameterIsBooleanType,
validateParameter, validateParameter,
liveEdit, liveEdit,
} from '../util/uri'; } from '../util/uri.tsx';
import {useRequiredParameterFormValidator} from '../hooks/requiredParameters'; import {useRequiredParameterFormValidator} from '../hooks/requiredParameters';
import type {URI} from '../flow-types'; import type {URI} from '../flow-types';

View File

@@ -7,7 +7,7 @@
*/ */
import {useEffect, useState} from 'react'; import {useEffect, useState} from 'react';
import {validateParameter} from '../util/uri'; import {validateParameter} from '../util/uri.tsx';
export const useRequiredParameterFormValidator = ( export const useRequiredParameterFormValidator = (
requiredParameters: Array<string>, requiredParameters: Array<string>,

View File

@@ -26,7 +26,7 @@ import {
DefaultProvider, DefaultProvider,
} from './util/autoCompleteProvider'; } from './util/autoCompleteProvider';
import {getAppMatchPatterns} from './util/appMatchPatterns'; import {getAppMatchPatterns} from './util/appMatchPatterns';
import {getRequiredParameters, filterOptionalParameters} from './util/uri'; import {getRequiredParameters, filterOptionalParameters} from './util/uri.tsx';
import type { import type {
State, State,

View File

@@ -3,7 +3,6 @@
* 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 querystring from 'querystring'; import querystring from 'querystring';
@@ -18,13 +17,11 @@ export const validateParameter = (value: string, parameter: string) => {
); );
}; };
export const filterOptionalParameters: string => string = (uri: string) => { export const filterOptionalParameters = (uri: string) => {
return uri.replace(/[/&]?([^&?={}\/]*=)?{\?.*?}/g, ''); return uri.replace(/[/&]?([^&?={}\/]*=)?{\?.*?}/g, '');
}; };
export const parseURIParameters: string => Map<string, string> = ( export const parseURIParameters = (query: string) => {
query: string,
) => {
// get parameters from query string and store in Map // get parameters from query string and store in Map
const parameters = query const parameters = query
.split('?') .split('?')
@@ -33,7 +30,7 @@ export const parseURIParameters: string => Map<string, string> = (
const parametersObj = querystring.parse(parameters); const parametersObj = querystring.parse(parameters);
const parametersMap = new Map<string, string>(); const parametersMap = new Map<string, string>();
for (const key in parametersObj) { for (const key in parametersObj) {
parametersMap.set(key, parametersObj[key]); parametersMap.set(key, parametersObj[key] as string);
} }
return parametersMap; return parametersMap;
}; };
@@ -78,7 +75,7 @@ export const getRequiredParameters = (uri: string) => {
return matches; return matches;
}; };
export const liveEdit = (uri: string, formValues: Array<string>): string => { export const liveEdit = (uri: string, formValues: Array<string>) => {
const parameterRegExp = /({[^?]*?})/g; const parameterRegExp = /({[^?]*?})/g;
const uriArray = uri.split(parameterRegExp); const uriArray = uri.split(parameterRegExp);
return uriArray.reduce((acc, uriComponent, idx) => { return uriArray.reduce((acc, uriComponent, idx) => {