mulink 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1037,13 +1037,25 @@ import { cache } from 'react'
1037
1037
  * Next.js 16.0.1: These modules are only available on the server
1038
1038
  * We use dynamic imports to avoid bundling them in the client
1039
1039
  */
1040
+ type NextHeadersModule = typeof import('next/headers')
1041
+ type NextReadonlyHeaders = Awaited<ReturnType<NextHeadersModule['headers']>>
1042
+ type NextReadonlyCookies = Awaited<ReturnType<NextHeadersModule['cookies']>>
1043
+
1040
1044
  let serverOnlyModules: {
1041
- cookies?: () => Awaited<ReturnType<typeof import('next/headers').cookies>>
1042
- headers?: () => Awaited<ReturnType<typeof import('next/headers').headers>>
1045
+ cookies?: () => NextReadonlyCookies
1046
+ headers?: () => Headers
1043
1047
  after?: (fn: () => void | Promise<void>) => void
1044
1048
  updateTag?: (tag: string) => void
1045
1049
  } | null = null
1046
1050
 
1051
+ function toMutableHeaders(source: NextReadonlyHeaders) {
1052
+ const mutableHeaders = new Headers()
1053
+ source.forEach((value, key) => {
1054
+ mutableHeaders.append(key, value)
1055
+ })
1056
+ return mutableHeaders
1057
+ }
1058
+
1047
1059
  /**
1048
1060
  * Lazy load server-only modules only when needed (server-side)
1049
1061
  * Next.js 16.0.1: This ensures server-only code is not bundled in the client
@@ -1061,9 +1073,11 @@ async function getServerModules() {
1061
1073
  const serverModule = await import('next/server').catch(() => null)
1062
1074
  const cacheModule = await import('next/cache').catch(() => null)
1063
1075
 
1076
+ const getReadonlyHeaders = headersModule?.headers as (() => NextReadonlyHeaders) | undefined
1077
+ const getReadonlyCookies = headersModule?.cookies as (() => NextReadonlyCookies) | undefined
1064
1078
  serverOnlyModules = {
1065
- cookies: headersModule?.cookies,
1066
- headers: headersModule?.headers,
1079
+ cookies: getReadonlyCookies,
1080
+ headers: getReadonlyHeaders ? () => toMutableHeaders(getReadonlyHeaders()) : undefined,
1067
1081
  after: serverModule?.after,
1068
1082
  updateTag: cacheModule?.updateTag,
1069
1083
  }
@@ -1244,7 +1258,7 @@ const metricsCollector = {
1244
1258
  // Send metrics in background (server-side only)
1245
1259
  try {
1246
1260
  const serverModules = await getServerModules()
1247
- if (serverModules.after) {
1261
+ if (serverModules?.after) {
1248
1262
  serverModules.after(async () => {
1249
1263
  await this.sendMetrics(metrics)
1250
1264
  })
@@ -1317,7 +1331,7 @@ export class BaseApiClient {
1317
1331
  const serverModules = await getServerModules()
1318
1332
 
1319
1333
  // Get auth token from various sources (server-side only)
1320
- if (serverModules.cookies && serverModules.headers) {
1334
+ if (serverModules?.cookies && serverModules.headers) {
1321
1335
  try {
1322
1336
  const cookieStore = serverModules.cookies()
1323
1337
  const headersList = serverModules.headers()
@@ -1377,7 +1391,7 @@ export class BaseApiClient {
1377
1391
  // Get server modules (only available server-side)
1378
1392
  const serverModules = await getServerModules()
1379
1393
 
1380
- if (serverModules.headers) {
1394
+ if (serverModules?.headers) {
1381
1395
  try {
1382
1396
  const headersList = serverModules.headers()
1383
1397
 
@@ -3761,12 +3775,36 @@ const searchParamsParser = {
3761
3775
  filter: parseAsString.withDefault(''),
3762
3776
  }` : ""}
3763
3777
 
3764
- ${hasMutations ? `// Error handling utility
3778
+ // Error handling utility
3765
3779
  function handleActionError(error: unknown): never {
3766
3780
  const message = error instanceof Error ? error.message : 'An unexpected error occurred'
3767
3781
  toast.error(message)
3768
3782
  throw new Error(message)
3769
- }` : ""}
3783
+ }
3784
+
3785
+ type ActionResultLike<T> = {
3786
+ data?: T
3787
+ serverError?: unknown
3788
+ validationErrors?: unknown
3789
+ }
3790
+
3791
+ async function resolveActionResult<T>(actionPromise: Promise<any>): Promise<T> {
3792
+ const result = await actionPromise
3793
+ if (result && typeof result === 'object') {
3794
+ const actionResult = result as ActionResultLike<T>
3795
+ if (actionResult.serverError) {
3796
+ const message = typeof actionResult.serverError === 'string' ? actionResult.serverError : 'Server action failed'
3797
+ throw new Error(message)
3798
+ }
3799
+ if (actionResult.validationErrors) {
3800
+ throw new Error('Validation failed, please check your input')
3801
+ }
3802
+ if (typeof actionResult.data !== 'undefined') {
3803
+ return actionResult.data as T
3804
+ }
3805
+ }
3806
+ return result as T
3807
+ }
3770
3808
 
3771
3809
  ${queryHooks}
3772
3810
 
@@ -3849,7 +3887,7 @@ export function ${hookName}(${parameterTypes.length > 0 ? `${parameterTypes.join
3849
3887
  queryKey: [...${queryKey}, searchParams],
3850
3888
  queryFn: async ({ signal }: { signal?: AbortSignal }) => {
3851
3889
  try {
3852
- const result = await ${actionName}(${actionCallParams.replace(queryParamObject, "{ ...searchParams }")})
3890
+ const result = await resolveActionResult<${returnType}>(${actionName}(${actionCallParams.replace(queryParamObject, "{ ...searchParams }")}))
3853
3891
  return result
3854
3892
  } catch (error) {
3855
3893
  handleActionError(error)
@@ -3887,7 +3925,7 @@ export function ${hookName.replace("use", "useInfinite")}(${parameterTypes.lengt
3887
3925
  queryKey: [...${queryKey}, 'infinite', searchParams],
3888
3926
  queryFn: async ({ pageParam = 1, signal }: { pageParam?: number; signal?: AbortSignal }) => {
3889
3927
  try {
3890
- const result = await ${actionName}(${actionCallParams.replace(queryParamObject, "{ ...searchParams, page: pageParam, limit: searchParams.limit }")})
3928
+ const result = await resolveActionResult<${returnType}>(${actionName}(${actionCallParams.replace(queryParamObject, "{ ...searchParams, page: pageParam, limit: searchParams.limit }")}))
3891
3929
  return result
3892
3930
  } catch (error) {
3893
3931
  handleActionError(error)
@@ -3922,7 +3960,7 @@ export function ${hookName.replace("use", "useSuspense")}(${parameterTypes.lengt
3922
3960
  return useSuspenseQuery({
3923
3961
  queryKey: ${queryKey},
3924
3962
  queryFn: async () => {
3925
- const result = await ${actionName}(${actionCallParams})
3963
+ const result = await resolveActionResult<${returnType}>(${actionName}(${actionCallParams}))
3926
3964
  return result
3927
3965
  },
3928
3966
  staleTime: ${staleTime},
@@ -3943,7 +3981,7 @@ export function ${hookName}(${parameterTypes.length > 0 ? `${parameterTypes.join
3943
3981
  queryKey: ${queryKey},
3944
3982
  queryFn: async ({ signal }: { signal?: AbortSignal }) => {
3945
3983
  try {
3946
- const result = await ${actionName}(${actionCallParams})
3984
+ const result = await resolveActionResult<${returnType}>(${actionCallParams === "{}" ? `${actionName}()` : `${actionName}(${actionCallParams})`})
3947
3985
  return result
3948
3986
  } catch (error) {
3949
3987
  handleActionError(error)
@@ -3979,7 +4017,7 @@ export function ${hookName.replace("use", "useSuspense")}(${parameterTypes.lengt
3979
4017
  return useSuspenseQuery({
3980
4018
  queryKey: ${queryKey},
3981
4019
  queryFn: async () => {
3982
- const result = await ${actionName}(${actionCallParams})
4020
+ const result = await resolveActionResult<${returnType}>(${actionCallParams === "{}" ? `${actionName}()` : `${actionName}(${actionCallParams})`})
3983
4021
  return result
3984
4022
  },
3985
4023
  staleTime: ${staleTime},
@@ -4033,7 +4071,7 @@ export function ${hookName}(options?: {
4033
4071
  const mutation = useMutation({
4034
4072
  mutationFn: async (variables: ${inputType}): Promise<${outputType}> => {
4035
4073
  try {
4036
- const result = await ${actionName}(${variablesParam === "undefined" ? "" : "variables"})
4074
+ const result = await resolveActionResult<${outputType}>(${actionName}(${variablesParam === "undefined" ? "" : "variables"}))
4037
4075
  return (result ?? ({} as ${outputType}))
4038
4076
  } catch (error) {
4039
4077
  handleActionError(error)
@@ -9616,5 +9654,5 @@ exports.VersionChecker = VersionChecker;
9616
9654
  exports.__name = __name;
9617
9655
  exports.checkAndNotifyUpdates = checkAndNotifyUpdates;
9618
9656
  exports.createBridgeVersionChecker = createBridgeVersionChecker;
9619
- //# sourceMappingURL=chunk-PZXEJ43S.cjs.map
9620
- //# sourceMappingURL=chunk-PZXEJ43S.cjs.map
9657
+ //# sourceMappingURL=chunk-PSLYNNKP.cjs.map
9658
+ //# sourceMappingURL=chunk-PSLYNNKP.cjs.map