next-intl 2.22.0 → 2.22.2

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.
Files changed (362) hide show
  1. package/README.md +1 -1
  2. package/config.d.ts +3 -0
  3. package/dist/config.js +7 -0
  4. package/dist/development/_virtual/_rollupPluginBabelHelpers.js +20 -0
  5. package/dist/development/config.js +9 -0
  6. package/dist/development/index.js +21 -0
  7. package/dist/development/index.react-server.js +28 -0
  8. package/dist/development/middleware/getAlternateLinksHeaderValue.js +81 -0
  9. package/dist/development/middleware/middleware.js +146 -0
  10. package/dist/development/middleware/resolveLocale.js +110 -0
  11. package/dist/development/middleware/utils.js +150 -0
  12. package/dist/development/middleware.js +9 -0
  13. package/dist/development/navigation/BaseLink.js +52 -0
  14. package/dist/development/navigation/baseRedirect.js +22 -0
  15. package/dist/development/navigation/createLocalizedPathnamesNavigation.js +135 -0
  16. package/dist/development/navigation/createSharedPathnamesNavigation.js +19 -0
  17. package/dist/development/navigation/react-server/BaseLink.js +25 -0
  18. package/dist/development/navigation/react-server/baseRedirect.js +16 -0
  19. package/dist/development/navigation/react-server/createLocalizedPathnamesNavigation.js +77 -0
  20. package/dist/development/navigation/react-server/createSharedPathnamesNavigation.js +22 -0
  21. package/dist/development/navigation/useBasePathname.js +37 -0
  22. package/dist/development/navigation/useBaseRouter.js +76 -0
  23. package/dist/development/navigation/utils.js +108 -0
  24. package/dist/development/navigation.js +11 -0
  25. package/dist/development/navigation.react-server.js +11 -0
  26. package/dist/development/plugin.js +48 -0
  27. package/dist/development/react-client/index.js +38 -0
  28. package/dist/development/react-client/useLocale.js +24 -0
  29. package/dist/development/react-server/NextIntlClientProvider.js +33 -0
  30. package/dist/development/react-server/getBaseTranslator.js +21 -0
  31. package/dist/development/react-server/useFormatter.js +19 -0
  32. package/dist/development/react-server/useHook.js +21 -0
  33. package/dist/development/react-server/useLocale.js +14 -0
  34. package/dist/development/react-server/useMessages.js +19 -0
  35. package/dist/development/react-server/useNow.js +23 -0
  36. package/dist/development/react-server/useTimeZone.js +19 -0
  37. package/dist/development/react-server/useTranslations.js +19 -0
  38. package/dist/development/server/RequestLocale.js +43 -0
  39. package/dist/development/server/createRequestConfig.js +17 -0
  40. package/dist/development/server/getConfig.js +43 -0
  41. package/dist/development/server/getFormatter.js +26 -0
  42. package/dist/development/server/getLocale.js +11 -0
  43. package/dist/development/server/getMessages.js +21 -0
  44. package/dist/development/server/getNow.js +18 -0
  45. package/dist/development/server/getRequestConfig.js +12 -0
  46. package/dist/development/server/getTimeZone.js +18 -0
  47. package/dist/development/server/getTranslations.js +31 -0
  48. package/dist/development/server/resolveLocaleArg.js +15 -0
  49. package/dist/development/server.js +23 -0
  50. package/dist/development/shared/BaseLinkWithLocale.js +58 -0
  51. package/dist/development/shared/NextIntlClientProvider.js +30 -0
  52. package/dist/development/shared/constants.js +17 -0
  53. package/dist/development/shared/redirectWithLocale.js +16 -0
  54. package/dist/development/shared/utils.js +87 -0
  55. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +1 -0
  56. package/dist/esm/config.js +1 -0
  57. package/dist/esm/index.js +1 -0
  58. package/dist/esm/index.react-server.js +1 -0
  59. package/dist/esm/middleware/getAlternateLinksHeaderValue.js +1 -0
  60. package/dist/esm/middleware/middleware.js +1 -0
  61. package/dist/esm/middleware/resolveLocale.js +1 -0
  62. package/dist/esm/middleware/utils.js +1 -0
  63. package/dist/esm/middleware.js +1 -0
  64. package/dist/esm/navigation/BaseLink.js +1 -0
  65. package/dist/esm/navigation/baseRedirect.js +1 -0
  66. package/dist/esm/navigation/createLocalizedPathnamesNavigation.js +1 -0
  67. package/dist/esm/navigation/createSharedPathnamesNavigation.js +1 -0
  68. package/dist/esm/navigation/react-server/BaseLink.js +1 -0
  69. package/dist/esm/navigation/react-server/baseRedirect.js +1 -0
  70. package/dist/esm/navigation/react-server/createLocalizedPathnamesNavigation.js +1 -0
  71. package/dist/esm/navigation/react-server/createSharedPathnamesNavigation.js +1 -0
  72. package/dist/esm/navigation/useBasePathname.js +2 -0
  73. package/dist/esm/navigation/useBaseRouter.js +1 -0
  74. package/dist/esm/navigation/utils.js +1 -0
  75. package/dist/esm/navigation.js +1 -0
  76. package/dist/esm/navigation.react-server.js +1 -0
  77. package/dist/esm/plugin.js +1 -0
  78. package/dist/esm/react-client/index.js +1 -0
  79. package/dist/esm/react-client/useLocale.js +1 -0
  80. package/dist/esm/react-server/NextIntlClientProvider.js +1 -0
  81. package/dist/esm/react-server/getBaseTranslator.js +1 -0
  82. package/dist/esm/react-server/useFormatter.js +1 -0
  83. package/dist/esm/react-server/useHook.js +1 -0
  84. package/dist/esm/react-server/useLocale.js +1 -0
  85. package/dist/esm/react-server/useMessages.js +1 -0
  86. package/dist/esm/react-server/useNow.js +1 -0
  87. package/dist/esm/react-server/useTimeZone.js +1 -0
  88. package/dist/esm/react-server/useTranslations.js +1 -0
  89. package/dist/esm/server/RequestLocale.js +1 -0
  90. package/dist/esm/server/createRequestConfig.js +1 -0
  91. package/dist/esm/server/getConfig.js +1 -0
  92. package/dist/esm/server/getFormatter.js +1 -0
  93. package/dist/esm/server/getLocale.js +1 -0
  94. package/dist/esm/server/getMessages.js +1 -0
  95. package/dist/esm/server/getNow.js +1 -0
  96. package/dist/esm/server/getRequestConfig.js +1 -0
  97. package/dist/esm/server/getTimeZone.js +1 -0
  98. package/dist/esm/server/getTranslations.js +1 -0
  99. package/dist/esm/server/resolveLocaleArg.js +1 -0
  100. package/dist/esm/server.js +1 -0
  101. package/dist/esm/shared/BaseLinkWithLocale.js +2 -0
  102. package/dist/esm/shared/NextIntlClientProvider.js +2 -0
  103. package/dist/esm/shared/constants.js +1 -0
  104. package/dist/esm/shared/redirectWithLocale.js +1 -0
  105. package/dist/esm/shared/utils.js +1 -0
  106. package/dist/index.js +3 -4
  107. package/dist/index.react-server.js +7 -0
  108. package/dist/middleware.js +7 -0
  109. package/dist/navigation.js +7 -0
  110. package/dist/navigation.react-server.js +7 -0
  111. package/dist/plugin.js +7 -0
  112. package/dist/production/_virtual/_rollupPluginBabelHelpers.js +1 -0
  113. package/dist/production/config.js +1 -0
  114. package/dist/production/index.js +1 -0
  115. package/dist/production/index.react-server.js +1 -0
  116. package/dist/production/middleware/getAlternateLinksHeaderValue.js +1 -0
  117. package/dist/production/middleware/middleware.js +1 -0
  118. package/dist/production/middleware/resolveLocale.js +1 -0
  119. package/dist/production/middleware/utils.js +1 -0
  120. package/dist/production/middleware.js +1 -0
  121. package/dist/production/navigation/BaseLink.js +1 -0
  122. package/dist/production/navigation/baseRedirect.js +1 -0
  123. package/dist/production/navigation/createLocalizedPathnamesNavigation.js +1 -0
  124. package/dist/production/navigation/createSharedPathnamesNavigation.js +1 -0
  125. package/dist/production/navigation/react-server/BaseLink.js +1 -0
  126. package/dist/production/navigation/react-server/baseRedirect.js +1 -0
  127. package/dist/production/navigation/react-server/createLocalizedPathnamesNavigation.js +1 -0
  128. package/dist/production/navigation/react-server/createSharedPathnamesNavigation.js +1 -0
  129. package/dist/production/navigation/useBasePathname.js +2 -0
  130. package/dist/production/navigation/useBaseRouter.js +1 -0
  131. package/dist/production/navigation/utils.js +1 -0
  132. package/dist/production/navigation.js +1 -0
  133. package/dist/production/navigation.react-server.js +1 -0
  134. package/dist/production/plugin.js +1 -0
  135. package/dist/production/react-client/index.js +1 -0
  136. package/dist/production/react-client/useLocale.js +1 -0
  137. package/dist/production/react-server/NextIntlClientProvider.js +1 -0
  138. package/dist/production/react-server/getBaseTranslator.js +1 -0
  139. package/dist/production/react-server/useFormatter.js +1 -0
  140. package/dist/production/react-server/useHook.js +1 -0
  141. package/dist/production/react-server/useLocale.js +1 -0
  142. package/dist/production/react-server/useMessages.js +1 -0
  143. package/dist/production/react-server/useNow.js +1 -0
  144. package/dist/production/react-server/useTimeZone.js +1 -0
  145. package/dist/production/react-server/useTranslations.js +1 -0
  146. package/dist/production/server/RequestLocale.js +1 -0
  147. package/dist/production/server/createRequestConfig.js +1 -0
  148. package/dist/production/server/getConfig.js +1 -0
  149. package/dist/production/server/getFormatter.js +1 -0
  150. package/dist/production/server/getLocale.js +1 -0
  151. package/dist/production/server/getMessages.js +1 -0
  152. package/dist/production/server/getNow.js +1 -0
  153. package/dist/production/server/getRequestConfig.js +1 -0
  154. package/dist/production/server/getTimeZone.js +1 -0
  155. package/dist/production/server/getTranslations.js +1 -0
  156. package/dist/production/server/resolveLocaleArg.js +1 -0
  157. package/dist/production/server.js +1 -0
  158. package/dist/production/shared/BaseLinkWithLocale.js +2 -0
  159. package/dist/production/shared/NextIntlClientProvider.js +2 -0
  160. package/dist/production/shared/constants.js +1 -0
  161. package/dist/production/shared/redirectWithLocale.js +1 -0
  162. package/dist/production/shared/utils.js +1 -0
  163. package/dist/server.js +7 -0
  164. package/dist/types/src/config.d.ts +1 -0
  165. package/dist/types/src/index.react-server.d.ts +1 -0
  166. package/dist/{src → types/src}/middleware/NextIntlMiddlewareConfig.d.ts +14 -10
  167. package/dist/types/src/middleware/getAlternateLinksHeaderValue.d.ts +12 -0
  168. package/dist/types/src/middleware/middleware.d.ts +4 -0
  169. package/dist/types/src/middleware/resolveLocale.d.ts +7 -0
  170. package/dist/types/src/middleware/utils.d.ts +17 -0
  171. package/dist/types/src/middleware.d.ts +1 -0
  172. package/dist/types/src/navigation/BaseLink.d.ts +63 -0
  173. package/dist/types/src/navigation/StrictParams.d.ts +8 -0
  174. package/dist/types/src/navigation/baseRedirect.d.ts +3 -0
  175. package/dist/types/src/navigation/createLocalizedPathnamesNavigation.d.ts +78 -0
  176. package/dist/types/src/navigation/createSharedPathnamesNavigation.d.ts +13 -0
  177. package/dist/types/src/navigation/index.d.ts +3 -0
  178. package/dist/types/src/navigation/react-server/BaseLink.d.ts +8 -0
  179. package/dist/types/src/navigation/react-server/baseRedirect.d.ts +3 -0
  180. package/dist/types/src/navigation/react-server/createLocalizedPathnamesNavigation.d.ts +60 -0
  181. package/dist/types/src/navigation/react-server/createSharedPathnamesNavigation.d.ts +44 -0
  182. package/dist/types/src/navigation/react-server/index.d.ts +3 -0
  183. package/dist/{src/client/usePathname.d.ts → types/src/navigation/useBasePathname.d.ts} +1 -1
  184. package/dist/{client/useRouter.d.ts → types/src/navigation/useBaseRouter.d.ts} +32 -31
  185. package/dist/types/src/navigation/utils.d.ts +51 -0
  186. package/dist/types/src/navigation.d.ts +1 -0
  187. package/dist/types/src/navigation.react-server.d.ts +1 -0
  188. package/dist/types/src/plugin.d.ts +1 -0
  189. package/dist/{react-client → types/src/react-client}/index.d.ts +15 -12
  190. package/dist/types/src/react-client/useLocale.d.ts +1 -0
  191. package/dist/types/src/react-server/NextIntlClientProvider.d.ts +5 -0
  192. package/dist/types/src/react-server/getBaseTranslator.d.ts +42 -0
  193. package/dist/types/src/react-server/index.d.ts +15 -0
  194. package/dist/types/src/react-server/useFormatter.d.ts +2 -0
  195. package/dist/types/src/react-server/useHook.d.ts +1 -0
  196. package/dist/types/src/react-server/useLocale.d.ts +2 -0
  197. package/dist/types/src/react-server/useMessages.d.ts +2 -0
  198. package/dist/types/src/react-server/useNow.d.ts +2 -0
  199. package/dist/types/src/react-server/useTimeZone.d.ts +2 -0
  200. package/dist/types/src/react-server/useTranslations.d.ts +2 -0
  201. package/dist/types/src/server/RequestLocale.d.ts +2 -0
  202. package/dist/types/src/server/createRequestConfig.d.ts +4 -0
  203. package/dist/types/src/server/getConfig.d.ts +23 -0
  204. package/dist/types/src/server/getFormatter.d.ts +14 -0
  205. package/dist/types/src/server/getLocale.d.ts +1 -0
  206. package/dist/types/src/server/getMessages.d.ts +3 -0
  207. package/dist/types/src/server/getNow.d.ts +3 -0
  208. package/dist/types/src/server/getRequestConfig.d.ts +10 -0
  209. package/dist/types/src/server/getTimeZone.d.ts +3 -0
  210. package/dist/types/src/server/getTranslations.d.ts +83 -0
  211. package/dist/types/src/server/index.d.ts +11 -0
  212. package/dist/types/src/server/resolveLocaleArg.d.ts +3 -0
  213. package/dist/types/src/server.d.ts +1 -0
  214. package/dist/types/src/shared/NextIntlClientProvider.d.ts +8 -0
  215. package/dist/{shared → types/src/shared}/constants.d.ts +3 -2
  216. package/dist/types/src/shared/redirectWithLocale.d.ts +3 -0
  217. package/dist/types/src/shared/types.d.ts +6 -0
  218. package/dist/{src → types/src}/shared/utils.d.ts +6 -0
  219. package/dist/types/test/middleware/getAlternateLinksHeaderValue.test.d.ts +1 -0
  220. package/dist/types/test/middleware/middleware.test.d.ts +1 -0
  221. package/dist/types/test/middleware/utils.test.d.ts +1 -0
  222. package/dist/types/test/navigation/BaseLink.test.d.ts +1 -0
  223. package/dist/types/test/navigation/createLocalizedPathnamesNavigation.test.d.ts +1 -0
  224. package/dist/types/test/navigation/createSharedPathnamesNavigation.test.d.ts +1 -0
  225. package/dist/types/test/navigation/useBasePathname.test.d.ts +1 -0
  226. package/dist/types/test/navigation/useBaseRouter.test.d.ts +1 -0
  227. package/dist/types/test/navigation/utils.test.d.ts +1 -0
  228. package/dist/types/test/react-client/useFormatter.test.d.ts +1 -0
  229. package/dist/types/test/react-client/useLocale.test.d.ts +1 -0
  230. package/dist/types/test/react-client/useNow.test.d.ts +1 -0
  231. package/dist/types/test/react-client/useTimeZone.test.d.ts +1 -0
  232. package/dist/types/test/react-client/useTranslations.test.d.ts +1 -0
  233. package/dist/types/test/server/index.test.d.ts +1 -0
  234. package/dist/types/test/setup.d.ts +1 -0
  235. package/dist/types/test/shared/NextIntlClientProvider.test.d.ts +1 -0
  236. package/dist/types/test/shared/utils.test.d.ts +1 -0
  237. package/middleware.d.ts +1 -1
  238. package/navigation.d.ts +1 -0
  239. package/package.json +45 -34
  240. package/plugin.d.ts +6 -0
  241. package/server.d.ts +1 -1
  242. package/client.d.ts +0 -1
  243. package/dist/_virtual/next-intl.esm.js +0 -29
  244. package/dist/_virtual/next-intl.esm.js.map +0 -1
  245. package/dist/client/NextIntlClientProvider.d.ts +0 -4
  246. package/dist/client/index.d.ts +0 -6
  247. package/dist/client/useClientLocale.d.ts +0 -1
  248. package/dist/client/usePathname.d.ts +0 -14
  249. package/dist/index.d.ts +0 -8
  250. package/dist/link/Link.d.ts +0 -27
  251. package/dist/link/index.d.ts +0 -1
  252. package/dist/link/react-server/Link.d.ts +0 -1
  253. package/dist/link/react-server/index.d.ts +0 -1
  254. package/dist/middleware/NextIntlMiddlewareConfig.d.ts +0 -28
  255. package/dist/middleware/getAlternateLinksHeaderValue.d.ts +0 -6
  256. package/dist/middleware/index.d.ts +0 -4
  257. package/dist/middleware/middleware.d.ts +0 -3
  258. package/dist/middleware/resolveLocale.d.ts +0 -6
  259. package/dist/middleware/utils.d.ts +0 -5
  260. package/dist/next-intl.cjs.development.js +0 -82
  261. package/dist/next-intl.cjs.development.js.map +0 -1
  262. package/dist/next-intl.cjs.production.min.js +0 -2
  263. package/dist/next-intl.cjs.production.min.js.map +0 -1
  264. package/dist/next-intl.esm.js +0 -3
  265. package/dist/next-intl.esm.js.map +0 -1
  266. package/dist/react-server/index.d.ts +0 -17
  267. package/dist/server/index.d.ts +0 -6
  268. package/dist/shared/BaseLink.d.ts +0 -7
  269. package/dist/shared/NextIntlClientProvider.d.ts +0 -9
  270. package/dist/shared/next-intl.esm.js +0 -41
  271. package/dist/shared/next-intl.esm.js.map +0 -1
  272. package/dist/shared/utils.d.ts +0 -15
  273. package/dist/src/client/NextIntlClientProvider.d.ts +0 -4
  274. package/dist/src/client/NextIntlClientProvider.js +0 -16
  275. package/dist/src/client/NextIntlClientProvider.js.map +0 -1
  276. package/dist/src/client/index.d.ts +0 -6
  277. package/dist/src/client/index.js +0 -8
  278. package/dist/src/client/index.js.map +0 -1
  279. package/dist/src/client/useClientLocale.d.ts +0 -1
  280. package/dist/src/client/useClientLocale.js +0 -18
  281. package/dist/src/client/useClientLocale.js.map +0 -1
  282. package/dist/src/client/usePathname.js +0 -34
  283. package/dist/src/client/usePathname.js.map +0 -1
  284. package/dist/src/client/useRouter.d.ts +0 -31
  285. package/dist/src/client/useRouter.js +0 -61
  286. package/dist/src/client/useRouter.js.map +0 -1
  287. package/dist/src/index.js +0 -9
  288. package/dist/src/index.js.map +0 -1
  289. package/dist/src/link/Link.d.ts +0 -27
  290. package/dist/src/link/Link.js +0 -29
  291. package/dist/src/link/Link.js.map +0 -1
  292. package/dist/src/link/index.d.ts +0 -1
  293. package/dist/src/link/index.js +0 -2
  294. package/dist/src/link/index.js.map +0 -1
  295. package/dist/src/link/react-server/Link.d.ts +0 -1
  296. package/dist/src/link/react-server/Link.js +0 -6
  297. package/dist/src/link/react-server/Link.js.map +0 -1
  298. package/dist/src/link/react-server/index.d.ts +0 -1
  299. package/dist/src/link/react-server/index.js +0 -2
  300. package/dist/src/link/react-server/index.js.map +0 -1
  301. package/dist/src/middleware/NextIntlMiddlewareConfig.js +0 -2
  302. package/dist/src/middleware/NextIntlMiddlewareConfig.js.map +0 -1
  303. package/dist/src/middleware/getAlternateLinksHeaderValue.d.ts +0 -6
  304. package/dist/src/middleware/getAlternateLinksHeaderValue.js +0 -71
  305. package/dist/src/middleware/getAlternateLinksHeaderValue.js.map +0 -1
  306. package/dist/src/middleware/index.js +0 -5
  307. package/dist/src/middleware/index.js.map +0 -1
  308. package/dist/src/middleware/middleware.d.ts +0 -3
  309. package/dist/src/middleware/middleware.js +0 -149
  310. package/dist/src/middleware/middleware.js.map +0 -1
  311. package/dist/src/middleware/resolveLocale.d.ts +0 -6
  312. package/dist/src/middleware/resolveLocale.js +0 -88
  313. package/dist/src/middleware/resolveLocale.js.map +0 -1
  314. package/dist/src/middleware/utils.d.ts +0 -5
  315. package/dist/src/middleware/utils.js +0 -37
  316. package/dist/src/middleware/utils.js.map +0 -1
  317. package/dist/src/react-client/index.d.ts +0 -12
  318. package/dist/src/react-client/index.js +0 -14
  319. package/dist/src/react-client/index.js.map +0 -1
  320. package/dist/src/react-server/index.d.ts +0 -17
  321. package/dist/src/react-server/index.js +0 -25
  322. package/dist/src/react-server/index.js.map +0 -1
  323. package/dist/src/server/index.d.ts +0 -6
  324. package/dist/src/server/index.js +0 -30
  325. package/dist/src/server/index.js.map +0 -1
  326. package/dist/src/shared/BaseLink.js +0 -38
  327. package/dist/src/shared/BaseLink.js.map +0 -1
  328. package/dist/src/shared/NextIntlClientProvider.d.ts +0 -9
  329. package/dist/src/shared/NextIntlClientProvider.js +0 -33
  330. package/dist/src/shared/NextIntlClientProvider.js.map +0 -1
  331. package/dist/src/shared/constants.d.ts +0 -2
  332. package/dist/src/shared/constants.js +0 -6
  333. package/dist/src/shared/constants.js.map +0 -1
  334. package/dist/src/shared/utils.js +0 -53
  335. package/dist/src/shared/utils.js.map +0 -1
  336. package/link.d.ts +0 -3
  337. package/src/client/NextIntlClientProvider.tsx +0 -18
  338. package/src/client/index.tsx +0 -9
  339. package/src/client/useClientLocale.tsx +0 -20
  340. package/src/client/usePathname.tsx +0 -40
  341. package/src/client/useRouter.tsx +0 -92
  342. package/src/index.tsx +0 -9
  343. package/src/link/Link.tsx +0 -34
  344. package/src/link/index.tsx +0 -1
  345. package/src/link/react-server/Link.tsx +0 -6
  346. package/src/link/react-server/index.tsx +0 -1
  347. package/src/middleware/NextIntlMiddlewareConfig.tsx +0 -42
  348. package/src/middleware/getAlternateLinksHeaderValue.tsx +0 -97
  349. package/src/middleware/index.tsx +0 -5
  350. package/src/middleware/middleware.tsx +0 -206
  351. package/src/middleware/resolveLocale.tsx +0 -151
  352. package/src/middleware/utils.tsx +0 -61
  353. package/src/react-client/index.tsx +0 -15
  354. package/src/react-server/index.tsx +0 -29
  355. package/src/server/index.tsx +0 -34
  356. package/src/shared/BaseLink.tsx +0 -57
  357. package/src/shared/NextIntlClientProvider.tsx +0 -54
  358. package/src/shared/constants.tsx +0 -6
  359. package/src/shared/utils.tsx +0 -91
  360. /package/dist/{src → types/src}/index.d.ts +0 -0
  361. /package/dist/{src → types/src}/middleware/index.d.ts +0 -0
  362. /package/dist/{src/shared/BaseLink.d.ts → types/src/shared/BaseLinkWithLocale.d.ts} +0 -0
@@ -1,91 +0,0 @@
1
- import {UrlObject} from 'url';
2
- import NextLink from 'next/link';
3
- import {ComponentProps} from 'react';
4
-
5
- type Href = ComponentProps<typeof NextLink>['href'];
6
-
7
- export function isRelativeHref(href: Href) {
8
- const pathname = typeof href === 'object' ? href.pathname : href;
9
- return pathname != null && !pathname.startsWith('/');
10
- }
11
-
12
- export function isLocalHref(href: Href) {
13
- if (typeof href === 'object') {
14
- return href.host == null && href.hostname == null;
15
- } else {
16
- const hasProtocol = /^[a-z]+:/i.test(href);
17
- return !hasProtocol;
18
- }
19
- }
20
-
21
- export function localizeHref(
22
- href: string,
23
- locale: string,
24
- defaultLocale: string,
25
- pathname: string
26
- ): string;
27
- export function localizeHref(
28
- href: UrlObject | string,
29
- locale: string,
30
- defaultLocale: string,
31
- pathname: string
32
- ): UrlObject | string;
33
- export function localizeHref(
34
- href: UrlObject | string,
35
- locale: string,
36
- defaultLocale: string = locale,
37
- pathname: string
38
- ) {
39
- if (!isLocalHref(href) || isRelativeHref(href)) {
40
- return href;
41
- }
42
-
43
- const isSwitchingLocale = locale !== defaultLocale;
44
- const isPathnamePrefixed =
45
- locale == null || hasPathnamePrefixed(locale, pathname);
46
- const shouldPrefix = isPathnamePrefixed || isSwitchingLocale;
47
-
48
- if (shouldPrefix && locale != null) {
49
- return prefixHref(href, locale);
50
- }
51
-
52
- return href;
53
- }
54
-
55
- export function prefixHref(href: string, locale: string): string;
56
- export function prefixHref(
57
- href: UrlObject | string,
58
- locale: string
59
- ): UrlObject | string;
60
- export function prefixHref(href: UrlObject | string, locale: string) {
61
- let prefixedHref;
62
- if (typeof href === 'string') {
63
- prefixedHref = localizePathname(locale, href);
64
- } else {
65
- prefixedHref = {...href};
66
- if (href.pathname) {
67
- prefixedHref.pathname = localizePathname(locale, href.pathname);
68
- }
69
- }
70
-
71
- return prefixedHref;
72
- }
73
-
74
- export function unlocalizePathname(pathname: string, locale: string) {
75
- return pathname.replace(new RegExp(`^/${locale}`), '') || '/';
76
- }
77
-
78
- export function localizePathname(locale: string, pathname: string) {
79
- let localizedHref = '/' + locale;
80
-
81
- if (pathname !== '/') {
82
- localizedHref += pathname;
83
- }
84
-
85
- return localizedHref;
86
- }
87
-
88
- export function hasPathnamePrefixed(locale: string, pathname: string) {
89
- const prefix = `/${locale}`;
90
- return pathname === prefix || pathname.startsWith(`${prefix}/`);
91
- }
File without changes
File without changes