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:
committed by
Facebook Github Bot
parent
61ddbd9950
commit
332821d315
@@ -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 =
|
||||||
|
|||||||
@@ -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 = {|
|
||||||
|
|||||||
@@ -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';
|
||||||
|
|||||||
@@ -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>,
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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) => {
|
||||||
Reference in New Issue
Block a user