4Catalyzer / farce

History repeats itself
MIT License
98 stars 8 forks source link

Removing `basename` results in empty `location.pathname` #483

Open catamphetamine opened 11 months ago

catamphetamine commented 11 months ago

location.pathname is supposed to always be non-empty.

If basename is set to /basename and the user navigates to /basename URL, createBasenameMiddleware() simply strips the whole string from the URL and the result is incorrect: pathname: "".

The fix would be adding || '/' after location.pathname.slice(pathnamePrefix.length):

    makeLocation: (location) => ({
      ...location,
      pathname:
        location.pathname.indexOf(pathnamePrefix) === 0
          ? location.pathname.slice(pathnamePrefix.length)
          : null,
    }),