From a5fc5de78f7adffefb9d9edc39eb86f6b08825e4 Mon Sep 17 00:00:00 2001 From: "Namhyeon, Go" Date: Mon, 5 May 2025 17:47:50 +0900 Subject: [PATCH] Update ResourceServer.cs --- WelsonJS.Toolkit/WelsonJS.Launcher/ResourceServer.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/WelsonJS.Toolkit/WelsonJS.Launcher/ResourceServer.cs b/WelsonJS.Toolkit/WelsonJS.Launcher/ResourceServer.cs index 3d8c96f..6d5ce06 100644 --- a/WelsonJS.Toolkit/WelsonJS.Launcher/ResourceServer.cs +++ b/WelsonJS.Toolkit/WelsonJS.Launcher/ResourceServer.cs @@ -24,7 +24,8 @@ namespace WelsonJS.Launcher private string _resourceName; private List _tools = new List(); private readonly HttpClient _httpClient = new HttpClient(); - private readonly string _defaultMimeType = "application/octet-stream"; + private static readonly string _defaultMimeType = "application/octet-stream"; + private static readonly Regex _nodePackageRegex = new Regex(@"^[^/@]+@[^/]+/", RegexOptions.Compiled); public ResourceServer(string prefix, string resourceName) { @@ -195,7 +196,7 @@ namespace WelsonJS.Launcher private async Task TryServeFromCdn(HttpListenerContext context, string path) { - bool isNodePackageExpression = Regex.IsMatch(path, @"^[^/@]+@[^/]+/"); + bool isNodePackageExpression = _nodePackageRegex.IsMatch(path); var sources = new (bool isMatch, string configKey, Func transform)[] { @@ -205,7 +206,7 @@ namespace WelsonJS.Launcher (isNodePackageExpression, "EsmShPrefix", p => p), (isNodePackageExpression, "EsmRunPrefix", p => p), (path.StartsWith("npm/") || path.StartsWith("gh/") || path.StartsWith("wp/"), "JsDeliverPrefix", p => p), - (path.StartsWith("jquery/"), "JqueryCdnPrefix", p => p.Substring("jquery/".Length)), + (path.StartsWith("jquery/") && path.Length > "jquery/".Length, "JqueryCdnPrefix", p => p.Substring("jquery/".Length)), (true, "BlobStoragePrefix", p => p) // fallback };