summaryrefslogtreecommitdiff
path: root/packages/astro-rss/src
diff options
context:
space:
mode:
authorGravatar Bjorn Lu <bjornlu.dev@gmail.com> 2022-09-28 23:13:33 +0800
committerGravatar GitHub <noreply@github.com> 2022-09-28 23:13:33 +0800
commit812658ad2ab3732a99e35c4fd903e302e723db46 (patch)
tree37dc457bcfa8558e546d064eb315a74149010da1 /packages/astro-rss/src
parentf4bca41a2d85968a2c9f2379f99954c7bcb06df1 (diff)
downloadastro-812658ad2ab3732a99e35c4fd903e302e723db46.tar.gz
astro-812658ad2ab3732a99e35c4fd903e302e723db46.tar.zst
astro-812658ad2ab3732a99e35c4fd903e302e723db46.zip
Remove shamefully-hoist (#4842)
Diffstat (limited to 'packages/astro-rss/src')
-rw-r--r--packages/astro-rss/src/util.ts10
1 files changed, 7 insertions, 3 deletions
diff --git a/packages/astro-rss/src/util.ts b/packages/astro-rss/src/util.ts
index 0dad6b239..7218cc934 100644
--- a/packages/astro-rss/src/util.ts
+++ b/packages/astro-rss/src/util.ts
@@ -1,10 +1,8 @@
-import npath from 'path-browserify';
-
/** Normalize URL to its canonical form */
export function createCanonicalURL(url: string, base?: string): URL {
let pathname = url.replace(/\/index.html$/, ''); // index.html is not canonical
pathname = pathname.replace(/\/1\/?$/, ''); // neither is a trailing /1/ (impl. detail of collections)
- if (!npath.extname(pathname)) pathname = pathname.replace(/(\/+)?$/, '/'); // add trailing slash if there’s no extension
+ if (!getUrlExtension(url)) pathname = pathname.replace(/(\/+)?$/, '/'); // add trailing slash if there’s no extension
pathname = pathname.replace(/\/+/g, '/'); // remove duplicate slashes (URL() won’t)
return new URL(pathname, base);
}
@@ -17,3 +15,9 @@ export function isValidURL(url: string): boolean {
} catch (e) {}
return false;
}
+
+function getUrlExtension(url: string) {
+ const lastDot = url.lastIndexOf('.');
+ const lastSlash = url.lastIndexOf('/');
+ return lastDot > lastSlash ? url.slice(lastDot + 1) : '';
+}