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,
replaceRequiredParametersWithValues,
filterOptionalParameters,
} from '../util/uri';
} from '../util/uri.tsx';
test('parse required parameters from uri', () => {
const testURI =

View File

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

View File

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

View File

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

View File

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

View File

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