@real-router/logger-plugin 0.3.1 → 0.3.2

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.
Files changed (2) hide show
  1. package/README.md +57 -122
  2. package/package.json +2 -2
package/README.md CHANGED
@@ -1,22 +1,28 @@
1
1
  # @real-router/logger-plugin
2
2
 
3
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
- [![TypeScript](https://img.shields.io/badge/TypeScript-5.9-blue.svg)](https://www.typescriptlang.org/)
3
+ [![npm](https://img.shields.io/npm/v/@real-router/logger-plugin.svg?style=flat-square)](https://www.npmjs.com/package/@real-router/logger-plugin)
4
+ [![npm downloads](https://img.shields.io/npm/dm/@real-router/logger-plugin.svg?style=flat-square)](https://www.npmjs.com/package/@real-router/logger-plugin)
5
+ [![bundle size](https://deno.bundlejs.com/?q=@real-router/logger-plugin&treeshake=[*]&badge=detailed)](https://bundlejs.com/?q=@real-router/logger-plugin&treeshake=[*])
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](../../LICENSE)
5
7
 
6
- Console logging plugin for Real-Router. Provides transition timing, parameter diff tracking, Performance API integration, and log grouping.
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
- **Console output:**
36
+ ## Options
35
37
 
36
- ```
37
- [logger-plugin] Router started
38
- Router transition
39
- [logger-plugin] Transition: home users {from: {...}, to: {...}}
40
- [logger-plugin] Transition success (1.23ms) {to: {...}, from: {...}}
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
- ## API
46
+ ### Log Levels
46
47
 
47
- ### `loggerPluginFactory(options?)`
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
- Factory for creating a plugin instance with optional configuration.
55
+ ### Usage Examples
50
56
 
51
57
  ```typescript
52
- import { loggerPluginFactory } from "@real-router/logger-plugin";
58
+ // Multiple routers distinguish by context
59
+ router.usePlugin(loggerPluginFactory({ context: "main-router" }));
53
60
 
54
- // Default configuration
55
- router.usePlugin(loggerPluginFactory());
61
+ // Performance profiling
62
+ router.usePlugin(loggerPluginFactory({ usePerformanceMarks: true }));
56
63
 
57
- // With custom options
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 Display
70
+ ### Adaptive Timing
121
71
 
122
72
  ```
123
- [logger-plugin] Transition success (15ms) // normal
124
- [logger-plugin] Transition success (27.29μs) // fast (<0.1ms)
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
- When navigating within the same route:
79
+ Logs added, changed, and removed params when navigating within the same route:
130
80
 
131
81
  ```
132
- Router transition
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 on [Wiki](https://github.com/greydragon888/real-router/wiki/logger-plugin):
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
- - [@real-router/core](https://www.npmjs.com/package/@real-router/core) Core router
178
- - [@real-router/browser-plugin](https://www.npmjs.com/package/@real-router/browser-plugin) — Browser history
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)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@real-router/logger-plugin",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
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.36.0"
48
+ "@real-router/core": "^0.37.0"
49
49
  },
50
50
  "scripts": {
51
51
  "build": "tsup",