diff --git a/packages/compiler-sfc/src/templateUtils.ts b/packages/compiler-sfc/src/templateUtils.ts index 7099b284..bbeafd15 100644 --- a/packages/compiler-sfc/src/templateUtils.ts +++ b/packages/compiler-sfc/src/templateUtils.ts @@ -1,4 +1,5 @@ import { UrlWithStringQuery, parse as uriParse } from 'url' +import { isString } from '@vue/shared' // We need an extra transform context API for injecting arbitrary import // statements. @@ -18,15 +19,7 @@ export function parseUrl(url: string): UrlWithStringQuery { * @param urlString an url as a string */ function parseUriParts(urlString: string): UrlWithStringQuery { - // initialize return value - const returnValue: UrlWithStringQuery = uriParse('') - if (urlString) { - // A TypeError is thrown if urlString is not a string - // @see https://nodejs.org/api/url.html#url_url_parse_urlstring_parsequerystring_slashesdenotehost - if ('string' === typeof urlString) { - // check is an uri - return uriParse(urlString) // take apart the uri - } - } - return returnValue + // A TypeError is thrown if urlString is not a string + // @see https://nodejs.org/api/url.html#url_url_parse_urlstring_parsequerystring_slashesdenotehost + return uriParse(isString(urlString) ? urlString : '') }