Skip to content

Commit ed2a22d

Browse files
authored
chore: replace querystring with URLSearchParams (#107)
* chore: replace querystring with URLSearchParams * refactor: improve query parser
1 parent 1792d7a commit ed2a22d

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

.changeset/breezy-kids-divide.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@sveltejs/vite-plugin-svelte': patch
3+
---
4+
5+
replace querystring with URLSearchParams

packages/vite-plugin-svelte/src/utils/id.ts

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
/* eslint-disable no-unused-vars */
2-
import qs from 'querystring';
32
import { createFilter } from '@rollup/pluginutils';
43
import { Arrayable, ResolvedOptions } from './options';
54
import { normalizePath } from 'vite';
@@ -44,13 +43,7 @@ function parseToSvelteRequest(
4443
timestamp: number,
4544
ssr: boolean
4645
): SvelteRequest | undefined {
47-
const query: RequestQuery = qs.parse(rawQuery) as RequestQuery;
48-
for (const p of ['svelte', 'url', 'raw'] as Array<keyof RequestQuery>) {
49-
if (query[p] != null) {
50-
// @ts-ignore
51-
query[p] = true;
52-
}
53-
}
46+
const query = parseRequestQuery(rawQuery);
5447
if (query.url || query.raw) {
5548
// skip requests with special vite tags
5649
return;
@@ -85,6 +78,17 @@ function createVirtualImportId(filename: string, root: string, type: SvelteQuery
8578
return `${filename}?${parts.join('&')}`;
8679
}
8780

81+
function parseRequestQuery(rawQuery: string): RequestQuery {
82+
const query = Object.fromEntries(new URLSearchParams(rawQuery));
83+
for (const key in query) {
84+
if (query[key] === '') {
85+
// @ts-ignore
86+
query[key] = true;
87+
}
88+
}
89+
return query as RequestQuery;
90+
}
91+
8892
/**
8993
* posixify and remove root at start
9094
*

0 commit comments

Comments
 (0)