{"_id":"@aarhus-university/react-simple-router","_rev":"4-5cd514a1fbb5328d94ca79f7bf512fe9","name":"@aarhus-university/react-simple-router","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@aarhus-university/react-simple-router","version":"1.0.0","keywords":["react","router","routing","typescript","simple"],"author":{"name":"Thomas Riis Hansen"},"license":"MIT","_id":"@aarhus-university/react-simple-router@1.0.0","maintainers":[{"name":"riisen","email":"trh@au.dk"},{"name":"rauffhansen","email":"rauffhansen@gmail.com"},{"name":"antonbrixtoro","email":"anton.brix@au.dk"},{"name":"jonatan.schwennesen.au","email":"schwennesen@au.dk"},{"name":"mbkau","email":"mbk@au.dk"},{"name":"mihtjel","email":"rune.broberg@au.dk"},{"name":"ceciliedreyerlyng","email":"cdl@au.dk"}],"homepage":"https://github.com/AarhusUniversitet/react-simple-router#readme","bugs":{"url":"https://github.com/AarhusUniversitet/react-simple-router/issues"},"dist":{"shasum":"c52edfa00b01812484f1859fab8acbe12cc25b9c","tarball":"https://registry.npmjs.org/@aarhus-university/react-simple-router/-/react-simple-router-1.0.0.tgz","fileCount":3,"integrity":"sha512-+OUXhkjcOaHj/yyko0AkzdynFqpg20cTPPy1v9FZUrDPMibnpMoyR0rn9wG+2F1dC5/aMmAU5BhCYBfiphyOsQ==","signatures":[{"sig":"MEUCIQDNnJpnzmYJW7PehaHZvbeJzeXUhyAVY9VmP7tP0XLEoAIgRkEzfVvfZN54CiULPLz287enH0o8Z67m0UYm/urpzy4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6008},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"1dfe8a76ee0b27d523f259ecdccc403a7c31ac49","scripts":{"dev":"vite","test":"jest --config jest.config.cjs","build":"vite build","preview":"vite preview","ts-build":"tsup","storybook":"storybook dev -p 6006","test:watch":"jest --config jest.config.cjs --watch","test:coverage":"jest --config jest.config.cjs --coverage","build-storybook":"storybook build"},"_npmUser":{"name":"riisen","email":"trh@au.dk"},"repository":{"url":"git+https://github.com/AarhusUniversitet/react-simple-router.git","type":"git"},"_npmVersion":"10.8.1","description":"A simple router implementation for React without frameworks","directories":{},"_nodeVersion":"22.16.0","dependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","vite":"^5.1.4","ts-jest":"^29.2.6","storybook":"^8.6.7","typescript":"^5.8.2","@babel/core":"^7.26.10","@types/jest":"^29.5.14","@types/node":"^20.11.25","@types/react":"^19.0.12","@storybook/test":"^8.6.7","@storybook/react":"^8.6.7","@types/react-dom":"^19.0.4","@babel/preset-env":"^7.26.9","@storybook/blocks":"^8.6.7","@babel/preset-react":"^7.26.3","@vitejs/plugin-react":"^4.2.1","@storybook/addon-a11y":"^8.6.7","@storybook/react-vite":"^8.6.7","@storybook/addon-links":"^8.6.7","@testing-library/react":"^16.2.0","jest-environment-jsdom":"^29.7.0","@babel/preset-typescript":"^7.26.0","@chromatic-com/storybook":"^3.2.6","@testing-library/jest-dom":"^6.6.3","@storybook/addon-essentials":"^8.6.7","@testing-library/user-event":"^14.6.1","@storybook/addon-interactions":"^8.6.7"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-simple-router_1.0.0_1749561028310_0.0325400493694008","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@aarhus-university/react-simple-router","version":"1.1.0","keywords":["react","router","routing","typescript","simple"],"author":{"name":"Thomas Riis Hansen"},"license":"MIT","_id":"@aarhus-university/react-simple-router@1.1.0","maintainers":[{"name":"riisen","email":"trh@au.dk"},{"name":"rauffhansen","email":"rauffhansen@gmail.com"},{"name":"antonbrixtoro","email":"anton.brix@au.dk"},{"name":"jonatan.schwennesen.au","email":"schwennesen@au.dk"},{"name":"mbkau","email":"mbk@au.dk"},{"name":"mihtjel","email":"rune.broberg@au.dk"},{"name":"ceciliedreyerlyng","email":"cdl@au.dk"}],"homepage":"https://github.com/AarhusUniversitet/react-simple-router#readme","bugs":{"url":"https://github.com/AarhusUniversitet/react-simple-router/issues"},"dist":{"shasum":"5603400ed27f736454fad1f6cd20be8345819de5","tarball":"https://registry.npmjs.org/@aarhus-university/react-simple-router/-/react-simple-router-1.1.0.tgz","fileCount":3,"integrity":"sha512-CUoI5hov/4m9FGlg875BVSqiJLhT3kiiM359y31KbpvISGm+CtNBz3FHNcO0WMvodHWFsMP3JvRR2vOFW6KVrQ==","signatures":[{"sig":"MEYCIQDPfpvDswGvSsS5EF7LnT/p/VLPKu9u15BKlT+KyvOkKgIhALNzgVw4skSvdUSng7d+hYaNYyoP82B2qGj87xYQsAPj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6010},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"e82287f4846e74464ba01845579fa8feaedb34de","scripts":{"dev":"vite","test":"jest --config jest.config.cjs","build":"vite build","preview":"vite preview","ts-build":"tsup","storybook":"storybook dev -p 6006","test:watch":"jest --config jest.config.cjs --watch","test:coverage":"jest --config jest.config.cjs --coverage","build-storybook":"storybook build"},"_npmUser":{"name":"riisen","email":"trh@au.dk"},"repository":{"url":"git+https://github.com/AarhusUniversitet/react-simple-router.git","type":"git"},"_npmVersion":"10.8.1","description":"A simple router implementation for React without frameworks","directories":{},"_nodeVersion":"22.16.0","dependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","vite":"^5.1.4","ts-jest":"^29.2.6","storybook":"^8.6.7","typescript":"^5.8.2","@babel/core":"^7.26.10","@types/jest":"^29.5.14","@types/node":"^20.11.25","@types/react":"^19.0.12","@storybook/test":"^8.6.7","@storybook/react":"^8.6.7","@types/react-dom":"^19.0.4","@babel/preset-env":"^7.26.9","@storybook/blocks":"^8.6.7","@babel/preset-react":"^7.26.3","@vitejs/plugin-react":"^4.2.1","@storybook/addon-a11y":"^8.6.7","@storybook/react-vite":"^8.6.7","@storybook/addon-links":"^8.6.7","@testing-library/react":"^16.2.0","jest-environment-jsdom":"^29.7.0","@babel/preset-typescript":"^7.26.0","@chromatic-com/storybook":"^3.2.6","@testing-library/jest-dom":"^6.6.3","@storybook/addon-essentials":"^8.6.7","@testing-library/user-event":"^14.6.1","@storybook/addon-interactions":"^8.6.7"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-simple-router_1.1.0_1749561553105_0.0836821191526873","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@aarhus-university/react-simple-router","version":"1.2.0","keywords":["react","router","routing","typescript","simple"],"author":{"name":"Thomas Riis Hansen"},"license":"MIT","_id":"@aarhus-university/react-simple-router@1.2.0","maintainers":[{"name":"riisen","email":"trh@au.dk"},{"name":"rauffhansen","email":"rauffhansen@gmail.com"},{"name":"antonbrixtoro","email":"anton.brix@au.dk"},{"name":"jonatan.schwennesen.au","email":"schwennesen@au.dk"},{"name":"mbkau","email":"mbk@au.dk"},{"name":"mihtjel","email":"rune.broberg@au.dk"},{"name":"ceciliedreyerlyng","email":"cdl@au.dk"}],"homepage":"https://github.com/AarhusUniversitet/react-simple-router#readme","bugs":{"url":"https://github.com/AarhusUniversitet/react-simple-router/issues"},"dist":{"shasum":"d25177bc8bec43ed671ded884a0a552f0800448d","tarball":"https://registry.npmjs.org/@aarhus-university/react-simple-router/-/react-simple-router-1.2.0.tgz","fileCount":13,"integrity":"sha512-uFOfx0Y+Pa+3nhb9d35/aeqU064Qp1uGFgZlUT/pxc48x1pqV8U7d+mehkC+G4zuBJBQ2JXNcByCU9nFcnR1zw==","signatures":[{"sig":"MEUCIQDlXoyd4DSnkHNPj0WmShc8QSoiRkgeT+P4y4ePAd71NgIgHdamQ6mCxHXLVm4bVKk4TFG0NNBu6ko4Vk2omC2aBWk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67549},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"8174979dcabe6475552d15a4998da9b4113dbd46","scripts":{"dev":"vite","test":"jest --config jest.config.cjs","build":"vite build","preview":"vite preview","ts-build":"tsup","storybook":"storybook dev -p 6006","test:watch":"jest --config jest.config.cjs --watch","test:coverage":"jest --config jest.config.cjs --coverage","build-storybook":"storybook build"},"_npmUser":{"name":"riisen","email":"trh@au.dk"},"repository":{"url":"git+https://github.com/AarhusUniversitet/react-simple-router.git","type":"git"},"_npmVersion":"10.8.1","description":"A simple router implementation for React without frameworks","directories":{},"_nodeVersion":"22.16.0","dependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","vite":"^5.1.4","ts-jest":"^29.2.6","storybook":"^8.6.7","typescript":"^5.8.2","@babel/core":"^7.26.10","@types/jest":"^29.5.14","@types/node":"^20.11.25","@types/react":"^19.0.12","@storybook/test":"^8.6.7","@storybook/react":"^8.6.7","@types/react-dom":"^19.0.4","@babel/preset-env":"^7.26.9","@storybook/blocks":"^8.6.7","@babel/preset-react":"^7.26.3","@vitejs/plugin-react":"^4.2.1","@storybook/addon-a11y":"^8.6.7","@storybook/react-vite":"^8.6.7","@storybook/addon-links":"^8.6.7","@testing-library/react":"^16.2.0","jest-environment-jsdom":"^29.7.0","@babel/preset-typescript":"^7.26.0","@chromatic-com/storybook":"^3.2.6","@testing-library/jest-dom":"^6.6.3","@storybook/addon-essentials":"^8.6.7","@testing-library/user-event":"^14.6.1","@storybook/addon-interactions":"^8.6.7"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-simple-router_1.2.0_1749562311110_0.6293790053965338","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-06-10T13:10:28.207Z","modified":"2026-02-06T11:16:58.614Z","1.0.0":"2025-06-10T13:10:28.484Z","1.1.0":"2025-06-10T13:19:13.290Z","1.2.0":"2025-06-10T13:31:51.341Z"},"bugs":{"url":"https://github.com/AarhusUniversitet/react-simple-router/issues"},"author":{"name":"Thomas Riis Hansen"},"license":"MIT","homepage":"https://github.com/AarhusUniversitet/react-simple-router#readme","keywords":["react","router","routing","typescript","simple"],"repository":{"url":"git+https://github.com/AarhusUniversitet/react-simple-router.git","type":"git"},"description":"A simple router implementation for React without frameworks","maintainers":[{"email":"trh@au.dk","name":"riisen"},{"email":"rauffhansen@gmail.com","name":"rauffhansen"},{"email":"anton.brix@au.dk","name":"antonbrixtoro"},{"email":"aes@au.dk","name":"banjomus"},{"email":"schwennesen@au.dk","name":"jonatan.schwennesen.au"},{"email":"mbk@au.dk","name":"mbkau"},{"email":"rune.broberg@au.dk","name":"mihtjel"},{"email":"cdl@au.dk","name":"ceciliedreyerlyng"}],"readme":"# react-simple-router\r\n\r\nEn letvægts router til React-applikationer med fokus på simplicitet, typesikkerhed og nul eksterne dependencies.\r\n\r\n## Funktioner\r\n\r\n- 🪶 **Letvægts**: Minimal kodebase uden eksterne dependencies\r\n- 📐 **TypeScript**: Fuldt typesikker for en bedre udvikleroplevelse\r\n- 🔄 **React 19 kompatibel**: Understøtter nyeste React features og hooks\r\n- 🧩 **Modulær**: Brug kun de komponenter, du har brug for\r\n- 🔍 **Transparent**: Lærerig og forståelig kodebase\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install react-simple-router\r\n# eller\r\nyarn add react-simple-router\r\n# eller\r\npnpm add react-simple-router\r\n```\r\n\r\n## Grundlæggende brug\r\n\r\n```tsx\r\nimport React from 'react';\r\nimport { RouterProvider, Route, Link, Switch } from 'react-simple-router';\r\n\r\nconst App = () => (\r\n  <RouterProvider>\r\n    <nav>\r\n      <Link to=\"/\">Hjem</Link>\r\n      <Link to=\"/om\">Om</Link>\r\n    </nav>\r\n\r\n    <Switch>\r\n      <Route path=\"/\" exact>\r\n        <h1>Forside</h1>\r\n      </Route>\r\n      <Route path=\"/om\">\r\n        <h1>Om os</h1>\r\n      </Route>\r\n      <Route path=\"*\">\r\n        <h1>404 - Ikke fundet</h1>\r\n      </Route>\r\n    </Switch>\r\n  </RouterProvider>\r\n);\r\n```\r\n\r\n## Parameteriserede ruter\r\n\r\n```tsx\r\n<Route path=\"/bruger/:id\">\r\n  {(params) => <UserProfile id={params.id} />}\r\n</Route>\r\n```\r\n\r\n## API Reference\r\n\r\n### `<RouterProvider>`\r\n\r\nHovedkomponenten der initialiserer routing konteksten.\r\n\r\n```tsx\r\n<RouterProvider>\r\n  {/* Din app her */}\r\n</RouterProvider>\r\n```\r\n\r\n### `<Route>`\r\n\r\nRenderer indhold kun når den nuværende URL matcher en specifik sti.\r\n\r\n```tsx\r\n<Route path=\"/sti\" exact={true}>\r\n  {/* Indhold der vises når stien matcher */}\r\n</Route>\r\n```\r\n\r\n### `<Link>` og `<NavLink>`\r\n\r\nNavigationskomponenter der ikke genindlæser siden.\r\n\r\n```tsx\r\n<Link to=\"/sti\">Naviger her</Link>\r\n<NavLink to=\"/sti\" activeClassName=\"active\">Naviger her</NavLink>\r\n```\r\n\r\n### `<Switch>`\r\n\r\nRenderer kun den første matchende Route.\r\n\r\n```tsx\r\n<Switch>\r\n  <Route path=\"/a\">A</Route>\r\n  <Route path=\"/b\">B</Route>\r\n</Switch>\r\n```\r\n\r\n### `useRouter()`\r\n\r\nHook der giver adgang til router-konteksten.\r\n\r\n```tsx\r\nconst { currentPath, navigate } = useRouter();\r\nnavigate('/ny-sti');\r\n```\r\n\r\n### `useParams()`\r\n\r\nHook der giver adgang til URL-parametre i den nuværende rute.\r\n\r\n```tsx\r\nconst { id } = useParams();\r\n```\r\n\r\n## License\r\n\r\nMIT","readmeFilename":"README.md"}