Skip to content

Commit 6c99326

Browse files
authored
feat: replace qs with qs-esm (#6966)
qs-esm is a qs fork I created and doesn't add bloated polyfills, is ESM-only, has a smaller bundle size and comes with types included. qs: https://bundlephobia.com/package/qs@6.12.1 (11kb) https://npm.anvaka.com/#/view/2d/qs (15 dependencies) qs-esm: https://bundlephobia.com/package/qs-esm@7.0.0 (4.2kb) https://npm.anvaka.com/#/view/2d/qs-esm (1 dependency) I don't agree with the backwards philosophy of qs: ljharb/qs#404 (comment) ("more deps is better", lower bundle size as opt-in, maximum environment compatibility as opt-out) qs imports waaay too many useless dependencies
1 parent a467ce9 commit 6c99326

File tree

32 files changed

+77
-81
lines changed

32 files changed

+77
-81
lines changed

docs/queries/overview.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ This one isn't too bad, but more complex queries get unavoidably more difficult
154154
**For example, using fetch:**
155155

156156
```js
157-
import qs from 'qs'
157+
import { stringify } from 'qs-esm'
158158

159159
const query = {
160160
color: {
@@ -165,7 +165,7 @@ const query = {
165165
}
166166

167167
const getPosts = async () => {
168-
const stringifiedQuery = qs.stringify(
168+
const stringifiedQuery = stringify(
169169
{
170170
where: query, // ensure that `qs` adds the `where` property, too!
171171
},

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@
103103
"@types/minimist": "1.2.5",
104104
"@types/node": "20.12.5",
105105
"@types/prompts": "^2.4.5",
106-
"@types/qs": "6.9.14",
107106
"@types/react": "npm:types-react@19.0.0-beta.2",
108107
"@types/react-dom": "npm:types-react-dom@19.0.0-beta.2",
109108
"@types/semver": "^7.5.3",

packages/next/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
"graphql-playground-html": "1.6.30",
7373
"http-status": "1.6.2",
7474
"path-to-regexp": "^6.2.1",
75-
"qs": "6.12.1",
75+
"qs-esm": "7.0.2",
7676
"react-diff-viewer-continued": "3.2.6",
7777
"sass": "1.77.4",
7878
"sonner": "^1.5.0",

packages/next/src/utilities/createPayloadRequest.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { CustomPayloadRequestProperties, PayloadRequest, SanitizedConfig }
22

33
import { initI18n } from '@payloadcms/translations'
44
import { executeAuthStrategies, getDataLoader, parseCookies } from 'payload'
5-
import qs from 'qs'
5+
import * as qs from 'qs-esm'
66
import { URL } from 'url'
77

88
import { sanitizeLocales } from './addLocalesToRequest.js'

packages/next/src/utilities/initPage/handleAuthRedirect.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { redirect } from 'next/navigation.js'
2-
import qs from 'qs'
2+
import * as qs from 'qs-esm'
33

44
import { isAdminAuthRoute, isAdminRoute } from './shared.js'
55

packages/next/src/utilities/initPage/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { initI18n } from '@payloadcms/translations'
55
import { findLocaleFromCode } from '@payloadcms/ui/shared'
66
import { headers as getHeaders } from 'next/headers.js'
77
import { createLocalReq, isEntityHidden, parseCookies } from 'payload'
8-
import qs from 'qs'
8+
import * as qs from 'qs-esm'
99

1010
import type { Args } from './types.js'
1111

packages/next/src/utilities/meta.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import type { Icon } from 'next/dist/lib/metadata/types/metadata-types.js'
33
import type { MetaConfig } from 'payload'
44

55
import { payloadFaviconDark, payloadFaviconLight, staticOGImage } from '@payloadcms/ui/assets'
6-
import qs from 'qs'
6+
import * as qs from 'qs-esm'
77

88
const defaultOpenGraph = {
99
description:

packages/next/src/views/Version/SelectComparison/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
useTranslation,
1010
} from '@payloadcms/ui'
1111
import { formatDate } from '@payloadcms/ui/shared'
12-
import qs from 'qs'
12+
import * as qs from 'qs-esm'
1313
import React, { useCallback, useEffect, useState } from 'react'
1414

1515
import type { Props } from './types.js'

packages/richtext-lexical/bundle.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ const resultClient = await esbuild
5454
'*.scss',
5555
'*.css',
5656
'*.svg',
57-
'qs',
57+
'qs-esm',
5858
'@dnd-kit/core',
5959
'@payloadcms/graphql',
6060
'@payloadcms/translations',

packages/richtext-lexical/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
"payload": "workspace:*"
7373
},
7474
"peerDependencies": {
75-
"@faceless-ui/modal": "3.0.0-beta.0",
75+
"@faceless-ui/modal": "3.0.0-beta.2",
7676
"@faceless-ui/scroll-info": "2.0.0-beta.0",
7777
"@lexical/headless": "0.16.1",
7878
"@lexical/link": "0.16.1",

0 commit comments

Comments
 (0)