{"id":13560683,"url":"https://github.com/vaadin/router","last_synced_at":"2025-05-15T18:03:51.154Z","repository":{"id":36969671,"uuid":"125837527","full_name":"vaadin/router","owner":"vaadin","description":"Small and powerful client-side router for Web Components. Framework-agnostic.","archived":false,"fork":false,"pushed_at":"2025-01-27T06:38:13.000Z","size":10493,"stargazers_count":436,"open_issues_count":119,"forks_count":53,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-05-15T18:03:45.653Z","etag":null,"topics":["vaadin","webcomponents"],"latest_commit_sha":null,"homepage":"https://vaadin.com/router","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vaadin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-03-19T10:00:42.000Z","updated_at":"2025-05-03T09:36:53.000Z","dependencies_parsed_at":"2024-01-14T03:46:56.874Z","dependency_job_id":"39a397e5-1868-4bd2-bd4b-91cd559053f3","html_url":"https://github.com/vaadin/router","commit_stats":{"total_commits":345,"total_committers":21,"mean_commits":"16.428571428571427","dds":0.7275362318840579,"last_synced_commit":"7e87b3b0921a608d44441fbdec66613542c87d2a"},"previous_names":["vaadin/vaadin-router"],"tags_count":34,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaadin%2Frouter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaadin%2Frouter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaadin%2Frouter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaadin%2Frouter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vaadin","download_url":"https://codeload.github.com/vaadin/router/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254394720,"owners_count":22063984,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["vaadin","webcomponents"],"created_at":"2024-08-01T13:00:48.629Z","updated_at":"2025-05-15T18:03:51.117Z","avatar_url":"https://github.com/vaadin.png","language":"TypeScript","readme":"[![NPM version](https://img.shields.io/npm/v/@vaadin/router.svg)](https://www.npmjs.com/package/@vaadin/router)\n[![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/@vaadin/router.svg)](https://bundlephobia.com/result?p=@vaadin/router)\n\n# Vaadin Router\n\n[API documentation](https://vaadin.github.io/router/)\n\nVaadin Router is a small and powerful client-side router JS library. It uses the widely adopted express.js syntax for routes (`/users/:id`) to map URLs to Web Component views. All features one might expect from a modern router are supported: async route resolution, animated transitions, navigation guards, redirects, and more. It is framework-agnostic and works equally well with all Web Components regardless of how they are created (Polymer / SkateJS / Stencil / Angular / Vue / etc).\n\nVaadin Router is a good fit for developers that do not want to go all-in with one framework, and prefer to have freedom in picking the components that work best for their specific needs.\n\n```\nnpm install --save @vaadin/router\n```\n\n```javascript\nimport {Router} from '@vaadin/router';\n\nconst router = new Router(document.getElementById('outlet'));\nrouter.setRoutes([\n  {path: '/', component: 'x-home-view'},\n  {path: '/users', component: 'x-user-list'}\n]);\n```\n\n## Browser support\n\nA specific version of Vaadin Router supports the same browsers as the Vaadin platform major version which includes that version of Vaadin Router.\nSee [Vaadin platform release notes](https://github.com/vaadin/platform/releases) for details on included Vaadin Router version and supported technologies.\nThe Supported Technologies section is typically listed in the release notes of the first publicly available release of a Vaadin platform major version\n(for example [Vaadin 18.0.1](https://github.com/vaadin/platform/releases/tag/18.0.1) since 18.0.0 was skipped).\n\n### Desktop browsers\n\nEvergreen versions of the following browsers\n- Chrome, Firefox, Firefox ESR, Safari and Edge (Chromium)\n\n### Mobile browsers\n\nBuilt-in browsers in the following mobile operating systems:\n- Safari starting from iOS 13 (Safari 13 or newer)\n- Google Chrome evergreen on Android (requiring Android 4.4 or newer)\n\n### Sauce Labs test status\n\n[![Sauce Test Status](https://saucelabs.com/browser-matrix/vaadin-router.svg)](https://saucelabs.com/u/vaadin-router)\n\n### Big Thanks\n\nCross-browser Testing Platform and Open Source \u003c3 Provided by [Sauce Labs](https://saucelabs.com).\n\n\n## Running demos and tests in the browser\n\n1. Fork the `vaadin-router` repository and clone it locally.\n\n1. Make sure you have [npm](https://www.npmjs.com/) installed.\n\n1. When in the `vaadin-router` directory, run `npm install` and then `npm run install:dependencies` to install dependencies.\n\n1. Run `npm start`, and open [http://127.0.0.1:8000/components/vaadin-router](http://127.0.0.1:8000/components/vaadin-router) in your browser to see the component API documentation.\n\n1. You can also open demo or in-browser tests by adding **demo** or **test** to the URL, for example:\n\n  - [http://127.0.0.1:8000/components/vaadin-router/demo](http://127.0.0.1:8000/components/vaadin-router/demo)\n  - Public API tests: [http://127.0.0.1:8000/components/vaadin-router/test](http://127.0.0.1:8000/components/vaadin-router/test)\n  - Unit tests: [http://127.0.0.1:8000/components/vaadin-router/test/index.html](http://127.0.0.1:8000/components/vaadin-router/test/index.html)\n\n\n## Running tests from the command line\n\n1. When in the `vaadin-router` directory, run `npm test`\n\n\n## Following the coding style\n\nWe are using [ESLint](http://eslint.org/) for linting JavaScript code. You can check if your code is following our standards by running `npm run lint`, which will automatically lint all `.js` files as well as JavaScript snippets inside `.html` files.\n\n\n## Contributing\n\n  - Make sure your code is compliant with our code linters: `npm run lint`\n  - Check that tests are passing: `npm test`\n  - [Submit a pull request](https://www.digitalocean.com/community/tutorials/how-to-create-a-pull-request-on-github) with detailed title and description\n  - Wait for response from one of Vaadin components team members\n\n\n## License\n\nApache License 2.0\n\nVaadin collects development time usage statistics to improve this product. For details and to opt-out, see https://github.com/vaadin/vaadin-usage-statistics.\n","funding_links":[],"categories":["Routers (URL Pattern Standard)"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaadin%2Frouter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvaadin%2Frouter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaadin%2Frouter/lists"}