@everystate/router 1.0.0
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.
- package/README.md +50 -0
- package/index.js +8 -0
- package/package.json +29 -0
package/README.md
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# @everystate/router
|
|
2
|
+
|
|
3
|
+
**SPA router for EveryState: routing is just state**
|
|
4
|
+
|
|
5
|
+
Treat routing as state. Routes, params, and navigation history live in your EveryState store.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @everystate/router @everystate/core
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Quick Start
|
|
14
|
+
|
|
15
|
+
```js
|
|
16
|
+
import { createEventState } from '@everystate/core';
|
|
17
|
+
import { createRouter } from '@everystate/router';
|
|
18
|
+
|
|
19
|
+
const store = createEventState({});
|
|
20
|
+
|
|
21
|
+
const router = createRouter(store, {
|
|
22
|
+
routes: {
|
|
23
|
+
'/': 'home',
|
|
24
|
+
'/about': 'about',
|
|
25
|
+
'/user/:id': 'user'
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
// Subscribe to route changes
|
|
30
|
+
store.subscribe('router.current', (route) => {
|
|
31
|
+
console.log('Route changed:', route);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
// Navigate
|
|
35
|
+
router.navigate('/user/123');
|
|
36
|
+
|
|
37
|
+
// Access params
|
|
38
|
+
const userId = store.get('router.params.id'); // '123'
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Features
|
|
42
|
+
|
|
43
|
+
- **Routes as state** Current route stored at `router.current`
|
|
44
|
+
- **Params as state** URL params at `router.params.*`
|
|
45
|
+
- **History integration** Browser back/forward support
|
|
46
|
+
- **Framework-agnostic** Works with any view layer
|
|
47
|
+
|
|
48
|
+
## License
|
|
49
|
+
|
|
50
|
+
MIT © Ajdin Imsirovic
|
package/index.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@everystate/router",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "EveryState Router: SPA router for EventState stores. Routing is just state",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "index.js",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"everystate",
|
|
9
|
+
"router",
|
|
10
|
+
"spa",
|
|
11
|
+
"state-management",
|
|
12
|
+
"path-based",
|
|
13
|
+
"vanilla-js",
|
|
14
|
+
"framework-agnostic",
|
|
15
|
+
"routing"
|
|
16
|
+
],
|
|
17
|
+
"author": {
|
|
18
|
+
"name": "Ajdin Imsirovic",
|
|
19
|
+
"url": "https://www.linkedin.com/in/ajdin-imsirovic"
|
|
20
|
+
},
|
|
21
|
+
"license": "MIT",
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "https://github.com/ImsirovicAjdin/everystate-router"
|
|
25
|
+
},
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"@uistate/router": "^1.0.1"
|
|
28
|
+
}
|
|
29
|
+
}
|