Skip to content

Commit b014d64

Browse files
committed
feat: isValidHttpUrl helper 함수 추가
1 parent f5ed7bd commit b014d64

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

packages/common/src/utils/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
filterReadOnlyPropertiesInJsonSchema as _filterReadOnlyPropertiesInJsonSchema,
1111
filterWritablePropertiesInJsonSchema as _filterWritablePropertiesInJsonSchema,
1212
} from "./json_schema";
13-
import { isFilledString as _isFilledString, rtrim as _rtrim } from "./string";
13+
import { isFilledString as _isFilledString, isValidHttpUrl as _isValidHttpUrl, rtrim as _rtrim } from "./string";
1414

1515
namespace Utils {
1616
export const buildNestedSiteMap = _buildNestedSiteMap;
@@ -20,6 +20,7 @@ namespace Utils {
2020
export const isFormValid = _isFormValid;
2121
export const getFormValue = _getFormValue;
2222
export const isFilledString = _isFilledString;
23+
export const isValidHttpUrl = _isValidHttpUrl;
2324
export const rtrim = _rtrim;
2425
export const filterWritablePropertiesInJsonSchema = _filterWritablePropertiesInJsonSchema;
2526
export const filterReadOnlyPropertiesInJsonSchema = _filterReadOnlyPropertiesInJsonSchema;

packages/common/src/utils/string.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,15 @@ import * as R from "remeda";
22

33
export const isFilledString = (obj: unknown): obj is string => R.isString(obj) && !R.isEmpty(obj);
44

5+
export const isValidHttpUrl = (obj: unknown): obj is string => {
6+
try {
7+
const url = new URL(obj as string);
8+
return url.protocol === "http:" || url.protocol === "https:";
9+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
10+
} catch (_) {
11+
return false;
12+
}
13+
};
14+
515
// Remove whitespace from the right side of the input string.
616
export const rtrim = (x: string): string => x.replace(/\s+$/gm, "");

0 commit comments

Comments
 (0)