Skip to content

Commit 0f65982

Browse files
committed
feat: Add temporary dedicated server features imports
This allows using the serializer and the parsers in server-side code without depending on React for the cache, as would be the case if importing from `nuqs/server`. Closes #804. See also discussion #717.
1 parent 10e526d commit 0f65982

8 files changed

+49
-1
lines changed

packages/nuqs/package.json

+18
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@
3535
"files": [
3636
"dist/",
3737
"server.d.ts",
38+
"server/cache.d.ts",
39+
"server/serializer.d.ts",
40+
"server/parsers.d.ts",
3841
"adapters/react.d.ts",
3942
"adapters/next.d.ts",
4043
"adapters/next/app.d.ts",
@@ -60,6 +63,21 @@
6063
"import": "./dist/server.js",
6164
"require": "./esm-only.cjs"
6265
},
66+
"./server/cache": {
67+
"types": "./dist/server/cache.d.ts",
68+
"import": "./dist/server/cache.js",
69+
"require": "./esm-only.cjs"
70+
},
71+
"./server/serializer": {
72+
"types": "./dist/server/serializer.d.ts",
73+
"import": "./dist/server/serializer.js",
74+
"require": "./esm-only.cjs"
75+
},
76+
"./server/parsers": {
77+
"types": "./dist/server/parsers.d.ts",
78+
"import": "./dist/server/parsers.js",
79+
"require": "./esm-only.cjs"
80+
},
6381
"./adapters/react": {
6482
"types": "./dist/adapters/react.d.ts",
6583
"import": "./dist/adapters/react.js",

packages/nuqs/server/cache.d.ts

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// This file is needed for projects that have `moduleResolution` set to `node`
2+
// in their tsconfig.json to be able to `import {} from 'nuqs/server/cache'`.
3+
// Other module resolutions strategies will look for the `exports` in `package.json`,
4+
// but with `node`, TypeScript will look for a .d.ts file with that name at the
5+
// root of the package.
6+
7+
export * from './dist/server/cache'

packages/nuqs/server/parsers.d.ts

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// This file is needed for projects that have `moduleResolution` set to `node`
2+
// in their tsconfig.json to be able to `import {} from 'nuqs/server/parsers'`.
3+
// Other module resolutions strategies will look for the `exports` in `package.json`,
4+
// but with `node`, TypeScript will look for a .d.ts file with that name at the
5+
// root of the package.
6+
7+
export * from './dist/server/parsers'

packages/nuqs/server/serializer.d.ts

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// This file is needed for projects that have `moduleResolution` set to `node`
2+
// in their tsconfig.json to be able to `import {} from 'nuqs/server/serializer'`.
3+
// Other module resolutions strategies will look for the `exports` in `package.json`,
4+
// but with `node`, TypeScript will look for a .d.ts file with that name at the
5+
// root of the package.
6+
7+
export * from './dist/server/serializer'
+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export { createSearchParamsCache } from './cache'
2+
export type { HistoryOptions, Nullable, Options, SearchParams } from './defs'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export type { HistoryOptions, Nullable, Options, SearchParams } from './defs'
2+
export * from './parsers'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export type { HistoryOptions, Nullable, Options, SearchParams } from './defs'
2+
export { createSerializer } from './serializer'

packages/nuqs/tsup.config.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,10 @@ const entrypoints = {
3434
'adapters/testing': 'src/adapters/testing.ts'
3535
},
3636
server: {
37-
server: 'src/index.server.ts'
37+
server: 'src/index.server.ts',
38+
'server/cache': 'src/index.server.cache.ts',
39+
'server/parsers': 'src/index.server.parsers.ts',
40+
'server/serializer': 'src/index.server.serializer.ts'
3841
}
3942
}
4043

0 commit comments

Comments
 (0)