@peter.naydenov/notice 2.2.3 → 2.3.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/Changelog.md +6 -0
- package/README.md +55 -4
- package/coverage/lcov-report/index.html +14 -14
- package/coverage/lcov-report/main.js.html +80 -65
- package/coverage/lcov.info +124 -116
- package/coverage/tmp/coverage-18329-1710398056283-0.json +1 -0
- package/coverage/tmp/{coverage-42326-1706509962568-0.json → coverage-18330-1710398055946-0.json} +1 -1
- package/dist/notice.cjs +1 -1
- package/dist/notice.esm.mjs +1 -1
- package/dist/notice.umd.js +1 -1
- package/package.json +4 -4
- package/src/main.js +6 -1
- package/coverage/tmp/coverage-42325-1706509962826-0.json +0 -1
package/Changelog.md
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
# Release History
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
### 2.3.0 ( 2024-03-14 )
|
|
5
|
+
- [x] Stop execution of the event callbacks on first callback that returns string 'stop';
|
|
6
|
+
|
|
7
|
+
|
|
4
8
|
|
|
5
9
|
### 2.2.3 ( 2024-01-29)
|
|
6
10
|
- [x] Folder 'dist' was added. It contains compiled files for commonjs and es6 modules;
|
|
@@ -16,6 +20,8 @@
|
|
|
16
20
|
### 2.2.1 ( 2023-10-23)
|
|
17
21
|
- [x] Fix: Calling 'Reset' breaks callback execution;
|
|
18
22
|
|
|
23
|
+
|
|
24
|
+
|
|
19
25
|
### 2.2.0 ( 2023-09-20)
|
|
20
26
|
- [x] Listen with wildcard was added;
|
|
21
27
|
- [ ] Bug: Calling 'Reset' breaks callback execution;
|
package/README.md
CHANGED
|
@@ -6,14 +6,24 @@
|
|
|
6
6
|
|
|
7
7
|
# Notice (@peter.naydenov/notice)
|
|
8
8
|
|
|
9
|
-

|
|
10
|
+

|
|
11
|
+

|
|
12
12
|

|
|
13
13
|
|
|
14
14
|
|
|
15
|
+
`Notice` is an simple event emitter. Define a behaviour related to event and then trigger the event.
|
|
16
|
+
Register multiple callbacks to the same event. Order of execution is the same as the order of registration.
|
|
17
|
+
Use method '**stop**' to mute the event for a while. Use method '**start**' to unmute the event. Method '**off**' will remove the event and all related callbacks. Method 'reset' will remove all events and functions from the event emitter.
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
## Last Updates
|
|
22
|
+
- After version 2.1.0 Method 'reset' was added. It removes all events and functions from the event emitter;
|
|
23
|
+
- After version 2.3.0 If callback that returns a string 'stop', the execution of followed callbacks will be stopped. Use this functionality to create a condition checking functions before your main callback if needed;
|
|
24
|
+
|
|
25
|
+
|
|
15
26
|
|
|
16
|
-
Notice is an simple event emitter. Define a behaviour related to event and then trigger the event.
|
|
17
27
|
|
|
18
28
|
## Installation
|
|
19
29
|
Write in your project
|
|
@@ -29,12 +39,53 @@ npm install @peter.naydenov/notice
|
|
|
29
39
|
## How to use it
|
|
30
40
|
Here is simple example for using this trivial event emitter:
|
|
31
41
|
```js
|
|
42
|
+
// with ES6 modules:
|
|
32
43
|
import notice from '@peter.naydenov/notice'
|
|
44
|
+
// with CommonJS:
|
|
45
|
+
// const notice = require('@peter.naydenov/notice')
|
|
33
46
|
const eBus = notice ();
|
|
34
47
|
|
|
35
48
|
eBus.on ( 'note' , () => console.log ( 'hey!') )
|
|
36
49
|
eBus.emit ( 'note' )
|
|
37
50
|
// ---> 'hey!'
|
|
51
|
+
|
|
52
|
+
// example 2
|
|
53
|
+
eBus.on ( 'note' , () => console.log ( 'hey!') )
|
|
54
|
+
eBus.on ( 'note' , () => console.log ( 'ho!') )
|
|
55
|
+
eBus.emit ( 'note' ) // will execute all functions related to the event
|
|
56
|
+
// ---> 'hey!ho!'
|
|
57
|
+
|
|
58
|
+
// example 3
|
|
59
|
+
eBus.on ( 'note' , () => console.log ( 'hey!') )
|
|
60
|
+
eBus.on ( 'note' , () => console.log ( 'ho!') )
|
|
61
|
+
eBus.off ( 'note' ) // will remove all functions related to the event
|
|
62
|
+
eBus.emit ( 'note' ) // nothing will happen
|
|
63
|
+
|
|
64
|
+
// example 4
|
|
65
|
+
let x = 0;
|
|
66
|
+
eBus.on ( 'note' , () => {
|
|
67
|
+
console.log ( 'hey!')
|
|
68
|
+
if ( x === 0 ) {
|
|
69
|
+
x++
|
|
70
|
+
return 'stop'
|
|
71
|
+
}
|
|
72
|
+
})
|
|
73
|
+
eBus.on ( 'note' , () => {
|
|
74
|
+
console.log ( 'ho!')
|
|
75
|
+
x++
|
|
76
|
+
})
|
|
77
|
+
eBus.emit ( 'note' ) // Will execute only the first function. If callback returns 'stop', the execution of callbacks will be stopped.
|
|
78
|
+
// ---> 'hey!'
|
|
79
|
+
// x == 1
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
// example 5
|
|
84
|
+
eBus.on ( 'note' , () => console.log ( 'hey!') )
|
|
85
|
+
eBus.stop ( 'note' ) // will mute the event
|
|
86
|
+
eBus.emit ( 'note' ) // nothing will happen
|
|
87
|
+
eBus.start ( 'note' ) // will unmute the event
|
|
88
|
+
eBus.emit ( 'note' ) // ---> 'hey!'
|
|
38
89
|
```
|
|
39
90
|
|
|
40
91
|
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">90.
|
|
26
|
+
<span class="strong">90.26% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>102/113</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">94.11% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>48/51</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">90.
|
|
47
|
+
<span class="strong">90.26% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>102/113</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -80,17 +80,17 @@
|
|
|
80
80
|
</thead>
|
|
81
81
|
<tbody><tr>
|
|
82
82
|
<td class="file high" data-value="main.js"><a href="main.js.html">main.js</a></td>
|
|
83
|
-
<td data-value="90.
|
|
83
|
+
<td data-value="90.26" class="pic high">
|
|
84
84
|
<div class="chart"><div class="cover-fill" style="width: 90%"></div><div class="cover-empty" style="width: 10%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="90.
|
|
87
|
-
<td data-value="
|
|
88
|
-
<td data-value="
|
|
89
|
-
<td data-value="
|
|
86
|
+
<td data-value="90.26" class="pct high">90.26%</td>
|
|
87
|
+
<td data-value="113" class="abs high">102/113</td>
|
|
88
|
+
<td data-value="94.11" class="pct high">94.11%</td>
|
|
89
|
+
<td data-value="51" class="abs high">48/51</td>
|
|
90
90
|
<td data-value="90.9" class="pct high">90.9%</td>
|
|
91
91
|
<td data-value="11" class="abs high">10/11</td>
|
|
92
|
-
<td data-value="90.
|
|
93
|
-
<td data-value="
|
|
92
|
+
<td data-value="90.26" class="pct high">90.26%</td>
|
|
93
|
+
<td data-value="113" class="abs high">102/113</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
</tbody>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at 2024-
|
|
104
|
+
at 2024-03-14T06:34:16.346Z
|
|
105
105
|
</div>
|
|
106
106
|
<script src="prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">90.
|
|
26
|
+
<span class="strong">90.26% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>102/113</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">94.11% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>48/51</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">90.
|
|
47
|
+
<span class="strong">90.26% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>102/113</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -173,26 +173,31 @@
|
|
|
173
173
|
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
174
|
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
175
|
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
-
<a name='L111'></a><a href='#L111'>111</a
|
|
177
|
-
<
|
|
178
|
-
<
|
|
179
|
-
<
|
|
180
|
-
<
|
|
181
|
-
<span class="cline-any cline-yes">
|
|
182
|
-
<span class="cline-any cline-yes">
|
|
183
|
-
<span class="cline-any cline-yes">
|
|
184
|
-
<span class="cline-any cline-yes">
|
|
185
|
-
<span class="cline-any cline-yes">
|
|
186
|
-
<span class="cline-any cline-yes">
|
|
187
|
-
<span class="cline-any cline-yes">
|
|
188
|
-
<span class="cline-any cline-yes">
|
|
189
|
-
<span class="cline-any cline-yes">
|
|
190
|
-
<span class="cline-any cline-yes">
|
|
176
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
+
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
+
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
+
<a name='L116'></a><a href='#L116'>116</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
182
|
+
<span class="cline-any cline-yes">23x</span>
|
|
183
|
+
<span class="cline-any cline-yes">23x</span>
|
|
184
|
+
<span class="cline-any cline-yes">23x</span>
|
|
185
|
+
<span class="cline-any cline-yes">23x</span>
|
|
186
|
+
<span class="cline-any cline-yes">23x</span>
|
|
187
|
+
<span class="cline-any cline-yes">23x</span>
|
|
188
|
+
<span class="cline-any cline-yes">23x</span>
|
|
189
|
+
<span class="cline-any cline-yes">23x</span>
|
|
190
|
+
<span class="cline-any cline-yes">23x</span>
|
|
191
|
+
<span class="cline-any cline-yes">23x</span>
|
|
192
|
+
<span class="cline-any cline-yes">29x</span>
|
|
193
|
+
<span class="cline-any cline-yes">29x</span>
|
|
194
|
+
<span class="cline-any cline-yes">23x</span>
|
|
195
|
+
<span class="cline-any cline-yes">23x</span>
|
|
191
196
|
<span class="cline-any cline-yes">9x</span>
|
|
192
197
|
<span class="cline-any cline-yes">9x</span>
|
|
193
198
|
<span class="cline-any cline-yes">9x</span>
|
|
194
|
-
<span class="cline-any cline-yes">
|
|
195
|
-
<span class="cline-any cline-yes">
|
|
199
|
+
<span class="cline-any cline-yes">23x</span>
|
|
200
|
+
<span class="cline-any cline-yes">23x</span>
|
|
196
201
|
<span class="cline-any cline-yes">7x</span>
|
|
197
202
|
<span class="cline-any cline-yes">5x</span>
|
|
198
203
|
<span class="cline-any cline-yes">5x</span>
|
|
@@ -202,19 +207,19 @@
|
|
|
202
207
|
<span class="cline-any cline-yes">5x</span>
|
|
203
208
|
<span class="cline-any cline-yes">7x</span>
|
|
204
209
|
<span class="cline-any cline-yes">7x</span>
|
|
205
|
-
<span class="cline-any cline-yes">
|
|
206
|
-
<span class="cline-any cline-yes">
|
|
210
|
+
<span class="cline-any cline-yes">23x</span>
|
|
211
|
+
<span class="cline-any cline-yes">23x</span>
|
|
207
212
|
<span class="cline-any cline-yes">1x</span>
|
|
208
213
|
<span class="cline-any cline-yes">1x</span>
|
|
209
214
|
<span class="cline-any cline-yes">1x</span>
|
|
210
|
-
<span class="cline-any cline-yes">
|
|
211
|
-
<span class="cline-any cline-yes">
|
|
215
|
+
<span class="cline-any cline-yes">23x</span>
|
|
216
|
+
<span class="cline-any cline-yes">23x</span>
|
|
212
217
|
<span class="cline-any cline-no"> </span>
|
|
213
218
|
<span class="cline-any cline-no"> </span>
|
|
214
|
-
<span class="cline-any cline-yes">
|
|
215
|
-
<span class="cline-any cline-yes">
|
|
216
|
-
<span class="cline-any cline-yes">
|
|
217
|
-
<span class="cline-any cline-yes">
|
|
219
|
+
<span class="cline-any cline-yes">23x</span>
|
|
220
|
+
<span class="cline-any cline-yes">23x</span>
|
|
221
|
+
<span class="cline-any cline-yes">39x</span>
|
|
222
|
+
<span class="cline-any cline-yes">39x</span>
|
|
218
223
|
<span class="cline-any cline-no"> </span>
|
|
219
224
|
<span class="cline-any cline-no"> </span>
|
|
220
225
|
<span class="cline-any cline-no"> </span>
|
|
@@ -223,36 +228,41 @@
|
|
|
223
228
|
<span class="cline-any cline-no"> </span>
|
|
224
229
|
<span class="cline-any cline-no"> </span>
|
|
225
230
|
<span class="cline-any cline-no"> </span>
|
|
226
|
-
<span class="cline-any cline-yes">
|
|
227
|
-
<span class="cline-any cline-yes">
|
|
228
|
-
<span class="cline-any cline-yes">
|
|
229
|
-
<span class="cline-any cline-yes">
|
|
230
|
-
<span class="cline-any cline-yes">
|
|
231
|
-
<span class="cline-any cline-yes">
|
|
232
|
-
<span class="cline-any cline-yes">
|
|
233
|
-
<span class="cline-any cline-yes">
|
|
234
|
-
<span class="cline-any cline-
|
|
231
|
+
<span class="cline-any cline-yes">39x</span>
|
|
232
|
+
<span class="cline-any cline-yes">39x</span>
|
|
233
|
+
<span class="cline-any cline-yes">29x</span>
|
|
234
|
+
<span class="cline-any cline-yes">29x</span>
|
|
235
|
+
<span class="cline-any cline-yes">22x</span>
|
|
236
|
+
<span class="cline-any cline-yes">24x</span>
|
|
237
|
+
<span class="cline-any cline-yes">24x</span>
|
|
238
|
+
<span class="cline-any cline-yes">1x</span>
|
|
239
|
+
<span class="cline-any cline-no"> </span>
|
|
240
|
+
<span class="cline-any cline-yes">22x</span>
|
|
241
|
+
<span class="cline-any cline-yes">22x</span>
|
|
242
|
+
<span class="cline-any cline-yes">39x</span>
|
|
243
|
+
<span class="cline-any cline-yes">39x</span>
|
|
244
|
+
<span class="cline-any cline-yes">39x</span>
|
|
235
245
|
<span class="cline-any cline-yes">3x</span>
|
|
236
246
|
<span class="cline-any cline-yes">3x</span>
|
|
237
247
|
<span class="cline-any cline-yes">3x</span>
|
|
238
248
|
<span class="cline-any cline-yes">3x</span>
|
|
239
|
-
<span class="cline-any cline-yes">
|
|
249
|
+
<span class="cline-any cline-yes">39x</span>
|
|
240
250
|
<span class="cline-any cline-yes">6x</span>
|
|
241
251
|
<span class="cline-any cline-yes">5x</span>
|
|
242
252
|
<span class="cline-any cline-yes">5x</span>
|
|
243
253
|
<span class="cline-any cline-yes">5x</span>
|
|
244
|
-
<span class="cline-any cline-yes">
|
|
245
|
-
<span class="cline-any cline-yes">
|
|
246
|
-
<span class="cline-any cline-yes">
|
|
247
|
-
<span class="cline-any cline-yes">
|
|
248
|
-
<span class="cline-any cline-yes">
|
|
254
|
+
<span class="cline-any cline-yes">39x</span>
|
|
255
|
+
<span class="cline-any cline-yes">20x</span>
|
|
256
|
+
<span class="cline-any cline-yes">20x</span>
|
|
257
|
+
<span class="cline-any cline-yes">23x</span>
|
|
258
|
+
<span class="cline-any cline-yes">23x</span>
|
|
249
259
|
<span class="cline-any cline-yes">3x</span>
|
|
250
260
|
<span class="cline-any cline-yes">1x</span>
|
|
251
261
|
<span class="cline-any cline-yes">1x</span>
|
|
252
262
|
<span class="cline-any cline-yes">1x</span>
|
|
253
263
|
<span class="cline-any cline-yes">2x</span>
|
|
254
|
-
<span class="cline-any cline-yes">
|
|
255
|
-
<span class="cline-any cline-yes">
|
|
264
|
+
<span class="cline-any cline-yes">23x</span>
|
|
265
|
+
<span class="cline-any cline-yes">23x</span>
|
|
256
266
|
<span class="cline-any cline-yes">4x</span>
|
|
257
267
|
<span class="cline-any cline-yes">1x</span>
|
|
258
268
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -262,21 +272,21 @@
|
|
|
262
272
|
<span class="cline-any cline-yes">1x</span>
|
|
263
273
|
<span class="cline-any cline-yes">1x</span>
|
|
264
274
|
<span class="cline-any cline-yes">3x</span>
|
|
265
|
-
<span class="cline-any cline-yes">
|
|
266
|
-
<span class="cline-any cline-yes">
|
|
267
|
-
<span class="cline-any cline-yes">
|
|
268
|
-
<span class="cline-any cline-yes">
|
|
269
|
-
<span class="cline-any cline-yes">
|
|
270
|
-
<span class="cline-any cline-yes">
|
|
271
|
-
<span class="cline-any cline-yes">
|
|
272
|
-
<span class="cline-any cline-yes">
|
|
273
|
-
<span class="cline-any cline-yes">
|
|
274
|
-
<span class="cline-any cline-yes">
|
|
275
|
-
<span class="cline-any cline-yes">
|
|
276
|
-
<span class="cline-any cline-yes">
|
|
277
|
-
<span class="cline-any cline-yes">
|
|
278
|
-
<span class="cline-any cline-yes">
|
|
279
|
-
<span class="cline-any cline-yes">
|
|
275
|
+
<span class="cline-any cline-yes">23x</span>
|
|
276
|
+
<span class="cline-any cline-yes">23x</span>
|
|
277
|
+
<span class="cline-any cline-yes">23x</span>
|
|
278
|
+
<span class="cline-any cline-yes">23x</span>
|
|
279
|
+
<span class="cline-any cline-yes">23x</span>
|
|
280
|
+
<span class="cline-any cline-yes">23x</span>
|
|
281
|
+
<span class="cline-any cline-yes">23x</span>
|
|
282
|
+
<span class="cline-any cline-yes">23x</span>
|
|
283
|
+
<span class="cline-any cline-yes">23x</span>
|
|
284
|
+
<span class="cline-any cline-yes">23x</span>
|
|
285
|
+
<span class="cline-any cline-yes">23x</span>
|
|
286
|
+
<span class="cline-any cline-yes">23x</span>
|
|
287
|
+
<span class="cline-any cline-yes">23x</span>
|
|
288
|
+
<span class="cline-any cline-yes">23x</span>
|
|
289
|
+
<span class="cline-any cline-yes">23x</span>
|
|
280
290
|
<span class="cline-any cline-yes">1x</span>
|
|
281
291
|
<span class="cline-any cline-yes">1x</span>
|
|
282
292
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -337,7 +347,12 @@ function notice () {
|
|
|
337
347
|
function exeCallback ( name ) {
|
|
338
348
|
if ( name === '*' ) return
|
|
339
349
|
if ( ignore.includes(name) ) return
|
|
340
|
-
scroll[name].
|
|
350
|
+
scroll[name].every ( fn => {
|
|
351
|
+
const r = fn ( ...args );
|
|
352
|
+
if ( typeof(r) !== 'string' ) return true
|
|
353
|
+
if ( r.toUpperCase() === 'STOP' ) return false
|
|
354
|
+
<span class="cstat-no" title="statement not covered" ><span class="branch-0 cbranch-no" title="branch not covered" > return true</span></span>
|
|
355
|
+
})
|
|
341
356
|
scroll['*'].forEach ( fn => fn(e,...args) )
|
|
342
357
|
} // exeCallback func.
|
|
343
358
|
|
|
@@ -400,7 +415,7 @@ export default notice
|
|
|
400
415
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
401
416
|
Code coverage generated by
|
|
402
417
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
403
|
-
at 2024-
|
|
418
|
+
at 2024-03-14T06:34:16.346Z
|
|
404
419
|
</div>
|
|
405
420
|
<script src="prettify.js"></script>
|
|
406
421
|
<script>
|