@real-router/logger-plugin 0.3.1 → 0.3.3
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 +57 -122
- package/dist/cjs/metafile-cjs.json +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,22 +1,28 @@
|
|
|
1
1
|
# @real-router/logger-plugin
|
|
2
2
|
|
|
3
|
-
[](https://www.npmjs.com/package/@real-router/logger-plugin)
|
|
4
|
+
[](https://www.npmjs.com/package/@real-router/logger-plugin)
|
|
5
|
+
[](https://bundlejs.com/?q=@real-router/logger-plugin&treeshake=[*])
|
|
6
|
+
[](../../LICENSE)
|
|
5
7
|
|
|
6
|
-
|
|
8
|
+
> Development logging plugin for [Real-Router](https://github.com/greydragon888/real-router). Transition timing, parameter diffs, Performance API marks, and log grouping.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
[logger-plugin] Router started
|
|
12
|
+
▼ Router transition
|
|
13
|
+
[logger-plugin] Transition: home → users.profile {from: {...}, to: {...}}
|
|
14
|
+
[logger-plugin] Changed: { id: "123" → "456" }, Added: {"sort":"name"}
|
|
15
|
+
[logger-plugin] Transition success (1.23ms) {to: {...}, from: {...}}
|
|
16
|
+
```
|
|
7
17
|
|
|
8
18
|
## Installation
|
|
9
19
|
|
|
10
20
|
```bash
|
|
11
21
|
npm install @real-router/logger-plugin
|
|
12
|
-
# or
|
|
13
|
-
pnpm add @real-router/logger-plugin
|
|
14
|
-
# or
|
|
15
|
-
yarn add @real-router/logger-plugin
|
|
16
|
-
# or
|
|
17
|
-
bun add @real-router/logger-plugin
|
|
18
22
|
```
|
|
19
23
|
|
|
24
|
+
**Peer dependency:** `@real-router/core`
|
|
25
|
+
|
|
20
26
|
## Quick Start
|
|
21
27
|
|
|
22
28
|
```typescript
|
|
@@ -24,159 +30,88 @@ import { createRouter } from "@real-router/core";
|
|
|
24
30
|
import { loggerPluginFactory } from "@real-router/logger-plugin";
|
|
25
31
|
|
|
26
32
|
const router = createRouter(routes);
|
|
27
|
-
|
|
28
|
-
// Use with default settings
|
|
29
33
|
router.usePlugin(loggerPluginFactory());
|
|
30
|
-
|
|
31
|
-
router.start();
|
|
32
34
|
```
|
|
33
35
|
|
|
34
|
-
|
|
36
|
+
## Options
|
|
35
37
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
---
|
|
38
|
+
| Option | Type | Default | Description |
|
|
39
|
+
|--------|------|---------|-------------|
|
|
40
|
+
| `level` | `"all" \| "transitions" \| "errors" \| "none"` | `"all"` | What to log |
|
|
41
|
+
| `showTiming` | `boolean` | `true` | Transition execution time (adaptive ms/μs) |
|
|
42
|
+
| `showParamsDiff` | `boolean` | `true` | Show param changes on same-route navigation |
|
|
43
|
+
| `usePerformanceMarks` | `boolean` | `false` | Create Performance API marks for DevTools |
|
|
44
|
+
| `context` | `string` | `"logger-plugin"` | Log prefix (useful for multiple routers) |
|
|
44
45
|
|
|
45
|
-
|
|
46
|
+
### Log Levels
|
|
46
47
|
|
|
47
|
-
|
|
48
|
+
| Level | Lifecycle (start/stop) | Transitions | Warnings (cancel) | Errors |
|
|
49
|
+
|-------|:-----:|:-----------:|:-------:|:------:|
|
|
50
|
+
| `"all"` | Yes | Yes | Yes | Yes |
|
|
51
|
+
| `"transitions"` | — | Yes | Yes | Yes |
|
|
52
|
+
| `"errors"` | — | — | — | Yes |
|
|
53
|
+
| `"none"` | — | — | — | — |
|
|
48
54
|
|
|
49
|
-
|
|
55
|
+
### Usage Examples
|
|
50
56
|
|
|
51
57
|
```typescript
|
|
52
|
-
|
|
58
|
+
// Multiple routers — distinguish by context
|
|
59
|
+
router.usePlugin(loggerPluginFactory({ context: "main-router" }));
|
|
53
60
|
|
|
54
|
-
//
|
|
55
|
-
router.usePlugin(loggerPluginFactory());
|
|
61
|
+
// Performance profiling
|
|
62
|
+
router.usePlugin(loggerPluginFactory({ usePerformanceMarks: true }));
|
|
56
63
|
|
|
57
|
-
//
|
|
58
|
-
router.usePlugin(
|
|
59
|
-
loggerPluginFactory({
|
|
60
|
-
level: "errors",
|
|
61
|
-
showTiming: false,
|
|
62
|
-
}),
|
|
63
|
-
);
|
|
64
|
+
// Errors only (staging/production)
|
|
65
|
+
router.usePlugin(loggerPluginFactory({ level: "errors" }));
|
|
64
66
|
```
|
|
65
67
|
|
|
66
|
-
---
|
|
67
|
-
|
|
68
|
-
## Configuration
|
|
69
|
-
|
|
70
|
-
| Option | Type | Default | Description |
|
|
71
|
-
| --------------------- | ---------- | ----------------- | ---------------------------------------------------- |
|
|
72
|
-
| `level` | `LogLevel` | `"all"` | `"all"` \| `"transitions"` \| `"errors"` \| `"none"` |
|
|
73
|
-
| `showTiming` | `boolean` | `true` | Show transition execution time (μs/ms) |
|
|
74
|
-
| `showParamsDiff` | `boolean` | `true` | Show param changes within same route |
|
|
75
|
-
| `usePerformanceMarks` | `boolean` | `false` | Create Performance API marks for DevTools |
|
|
76
|
-
| `context` | `string` | `"logger-plugin"` | Log prefix for multiple routers |
|
|
77
|
-
|
|
78
|
-
### Configuration Examples
|
|
79
|
-
|
|
80
|
-
```typescript
|
|
81
|
-
// With custom context for multiple routers
|
|
82
|
-
router.usePlugin(
|
|
83
|
-
loggerPluginFactory({
|
|
84
|
-
context: "main-router",
|
|
85
|
-
}),
|
|
86
|
-
);
|
|
87
|
-
|
|
88
|
-
// Performance profiling enabled
|
|
89
|
-
router.usePlugin(
|
|
90
|
-
loggerPluginFactory({
|
|
91
|
-
usePerformanceMarks: true,
|
|
92
|
-
showTiming: true,
|
|
93
|
-
}),
|
|
94
|
-
);
|
|
95
|
-
|
|
96
|
-
// Errors only (for production-like environments)
|
|
97
|
-
router.usePlugin(
|
|
98
|
-
loggerPluginFactory({
|
|
99
|
-
level: "errors",
|
|
100
|
-
showTiming: false,
|
|
101
|
-
}),
|
|
102
|
-
);
|
|
103
|
-
|
|
104
|
-
// Minimal output
|
|
105
|
-
router.usePlugin(
|
|
106
|
-
loggerPluginFactory({
|
|
107
|
-
level: "transitions",
|
|
108
|
-
showParamsDiff: false,
|
|
109
|
-
showTiming: false,
|
|
110
|
-
}),
|
|
111
|
-
);
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
See [Wiki](https://github.com/greydragon888/real-router/wiki/logger-plugin#3-configuration-options) for detailed descriptions.
|
|
115
|
-
|
|
116
|
-
---
|
|
117
|
-
|
|
118
68
|
## Features
|
|
119
69
|
|
|
120
|
-
### Timing
|
|
70
|
+
### Adaptive Timing
|
|
121
71
|
|
|
122
72
|
```
|
|
123
|
-
[logger-plugin] Transition success (15ms)
|
|
124
|
-
[logger-plugin] Transition success (27.29μs)
|
|
73
|
+
[logger-plugin] Transition success (15ms) // normal
|
|
74
|
+
[logger-plugin] Transition success (27.29μs) // fast (<0.1ms)
|
|
125
75
|
```
|
|
126
76
|
|
|
127
77
|
### Parameter Diff
|
|
128
78
|
|
|
129
|
-
|
|
79
|
+
Logs added, changed, and removed params when navigating within the same route:
|
|
130
80
|
|
|
131
81
|
```
|
|
132
|
-
|
|
133
|
-
[logger-plugin] Transition: users.view → users.view {from: {...}, to: {...}}
|
|
134
|
-
[logger-plugin] Changed: { id: "123" → "456" }, Added: {"sort":"name"}
|
|
135
|
-
[logger-plugin] Transition success (2.15ms) {to: {...}, from: {...}}
|
|
82
|
+
[logger-plugin] Changed: { id: "123" → "456" }, Added: {"sort":"name"}
|
|
136
83
|
```
|
|
137
84
|
|
|
138
85
|
### Performance API
|
|
139
86
|
|
|
140
87
|
With `usePerformanceMarks: true`, creates marks visible in DevTools Performance tab:
|
|
141
88
|
|
|
142
|
-
- `router:transition-start:{from}→{to}`
|
|
143
|
-
- `router:transition-end:{from}→{to}`
|
|
144
|
-
- `router:transition:{from}→{to}` (measure)
|
|
145
|
-
|
|
146
|
-
See [Wiki](https://github.com/greydragon888/real-router/wiki/logger-plugin#10-performance-marks-and-measures) for full list.
|
|
147
|
-
|
|
148
|
-
---
|
|
149
|
-
|
|
150
|
-
## SSR Support
|
|
151
|
-
|
|
152
|
-
For high-precision timing in Node.js:
|
|
153
|
-
|
|
154
|
-
```typescript
|
|
155
|
-
import { performance } from "perf_hooks";
|
|
156
|
-
|
|
157
|
-
if (typeof globalThis.performance === "undefined") {
|
|
158
|
-
globalThis.performance = performance;
|
|
159
|
-
}
|
|
160
89
|
```
|
|
161
|
-
|
|
162
|
-
|
|
90
|
+
router:transition-start:{from}→{to}
|
|
91
|
+
router:transition-end:{from}→{to}
|
|
92
|
+
router:transition:{from}→{to} (measure)
|
|
93
|
+
router:lifetime (measure: start → stop)
|
|
94
|
+
```
|
|
163
95
|
|
|
164
96
|
## Documentation
|
|
165
97
|
|
|
166
|
-
Full documentation
|
|
98
|
+
Full documentation: [Wiki — logger-plugin](https://github.com/greydragon888/real-router/wiki/logger-plugin)
|
|
167
99
|
|
|
168
100
|
- [Configuration Options](https://github.com/greydragon888/real-router/wiki/logger-plugin#3-configuration-options)
|
|
169
|
-
- [Lifecycle Hooks](https://github.com/greydragon888/real-router/wiki/logger-plugin#4-lifecycle-hooks)
|
|
170
101
|
- [Performance Marks](https://github.com/greydragon888/real-router/wiki/logger-plugin#10-performance-marks-and-measures)
|
|
171
102
|
- [Migration from router5](https://github.com/greydragon888/real-router/wiki/logger-plugin#13-migration-from-router5)
|
|
172
103
|
|
|
173
|
-
---
|
|
174
|
-
|
|
175
104
|
## Related Packages
|
|
176
105
|
|
|
177
|
-
|
|
178
|
-
|
|
106
|
+
| Package | Description |
|
|
107
|
+
|---------|-------------|
|
|
108
|
+
| [@real-router/core](https://www.npmjs.com/package/@real-router/core) | Core router (required peer dependency) |
|
|
109
|
+
| [@real-router/browser-plugin](https://www.npmjs.com/package/@real-router/browser-plugin) | Browser History API integration |
|
|
110
|
+
|
|
111
|
+
## Contributing
|
|
112
|
+
|
|
113
|
+
See [contributing guidelines](../../CONTRIBUTING.md) for development setup and PR process.
|
|
179
114
|
|
|
180
115
|
## License
|
|
181
116
|
|
|
182
|
-
MIT © [Oleg Ivanov](https://github.com/greydragon888)
|
|
117
|
+
[MIT](../../LICENSE) © [Oleg Ivanov](https://github.com/greydragon888)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"../../node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.
|
|
1
|
+
{"inputs":{"../../node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.8_tsx@4.19.4_typescript@5.9.3_yaml@2.8.2/node_modules/tsup/assets/cjs_shims.js":{"bytes":569,"imports":[],"format":"esm"},"src/constants.ts":{"bytes":391,"imports":[{"path":"/home/runner/work/real-router/real-router/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.8_tsx@4.19.4_typescript@5.9.3_yaml@2.8.2/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/internal/console-groups.ts":{"bytes":1493,"imports":[{"path":"/home/runner/work/real-router/real-router/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.8_tsx@4.19.4_typescript@5.9.3_yaml@2.8.2/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/internal/formatting.ts":{"bytes":1230,"imports":[{"path":"/home/runner/work/real-router/real-router/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.8_tsx@4.19.4_typescript@5.9.3_yaml@2.8.2/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/internal/params-diff.ts":{"bytes":2530,"imports":[{"path":"/home/runner/work/real-router/real-router/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.8_tsx@4.19.4_typescript@5.9.3_yaml@2.8.2/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/internal/performance-marks.ts":{"bytes":1723,"imports":[{"path":"/home/runner/work/real-router/real-router/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.8_tsx@4.19.4_typescript@5.9.3_yaml@2.8.2/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/internal/timing.ts":{"bytes":1476,"imports":[{"path":"/home/runner/work/real-router/real-router/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.8_tsx@4.19.4_typescript@5.9.3_yaml@2.8.2/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/plugin.ts":{"bytes":6172,"imports":[{"path":"src/internal/console-groups.ts","kind":"import-statement","original":"./internal/console-groups"},{"path":"src/internal/formatting.ts","kind":"import-statement","original":"./internal/formatting"},{"path":"src/internal/params-diff.ts","kind":"import-statement","original":"./internal/params-diff"},{"path":"src/internal/performance-marks.ts","kind":"import-statement","original":"./internal/performance-marks"},{"path":"src/internal/timing.ts","kind":"import-statement","original":"./internal/timing"},{"path":"/home/runner/work/real-router/real-router/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.8_tsx@4.19.4_typescript@5.9.3_yaml@2.8.2/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/validation.ts":{"bytes":1714,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"./constants"},{"path":"/home/runner/work/real-router/real-router/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.8_tsx@4.19.4_typescript@5.9.3_yaml@2.8.2/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/factory.ts":{"bytes":561,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/plugin.ts","kind":"import-statement","original":"./plugin"},{"path":"src/validation.ts","kind":"import-statement","original":"./validation"},{"path":"/home/runner/work/real-router/real-router/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.8_tsx@4.19.4_typescript@5.9.3_yaml@2.8.2/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":151,"imports":[{"path":"src/factory.ts","kind":"import-statement","original":"./factory"},{"path":"/home/runner/work/real-router/real-router/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.8_tsx@4.19.4_typescript@5.9.3_yaml@2.8.2/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/cjs/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":25622},"dist/cjs/index.js":{"imports":[],"exports":["loggerPluginFactory"],"entryPoint":"src/index.ts","inputs":{"src/constants.ts":{"bytesInOutput":235},"src/internal/console-groups.ts":{"bytesInOutput":727},"src/internal/formatting.ts":{"bytesInOutput":592},"src/internal/params-diff.ts":{"bytesInOutput":1277},"src/internal/performance-marks.ts":{"bytesInOutput":941},"src/internal/timing.ts":{"bytesInOutput":450},"src/plugin.ts":{"bytesInOutput":4975},"src/validation.ts":{"bytesInOutput":1298},"src/factory.ts":{"bytesInOutput":185},"src/index.ts":{"bytesInOutput":0}},"bytes":10956}}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@real-router/logger-plugin",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"description": "Development logging plugin with transition tracking and performance metrics",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"homepage": "https://github.com/greydragon888/real-router",
|
|
46
46
|
"sideEffects": false,
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@real-router/core": "^0.
|
|
48
|
+
"@real-router/core": "^0.38.0"
|
|
49
49
|
},
|
|
50
50
|
"scripts": {
|
|
51
51
|
"build": "tsup",
|