Skip to content

Commit 6afe5df

Browse files
authored
Merge pull request #4 from lppjunior/develop
Develop
2 parents 5aab412 + 398586e commit 6afe5df

File tree

6 files changed

+110
-20
lines changed

6 files changed

+110
-20
lines changed

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [1.0.2] - 2020-07-30
11+
### Update
12+
- Add Observer parameter validations
13+
- Add Observer tests
14+
- Update jest to 100% code coverage
15+
### Fixbug
16+
- Fix initialize event on subscribe or emit call
17+
1018
## [1.0.1] - 2020-07-29
1119
### Added
1220
- Update project import references

dist/patterns.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/patterns.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "pattern-js",
3-
"version": "1.0.1",
3+
"version": "1.0.2",
44
"description": "Pattern JS project is a collection of pattern implemented in JS",
55
"private": true,
66
"main": "index.js",
@@ -38,10 +38,10 @@
3838
"jest": {
3939
"coverageThreshold": {
4040
"global": {
41-
"branches": 80,
42-
"functions": 80,
43-
"lines": 80,
44-
"statements": 80
41+
"branches": 100,
42+
"functions": 100,
43+
"lines": 100,
44+
"statements": 100
4545
}
4646
},
4747
"transform": {

src/pattern/observer/Observer.js

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,43 @@ class Observer {
44
}
55

66
on (event, callback) {
7-
if (this.observer[event] === undefined) {
8-
this.observer[event] = []
9-
}
10-
7+
this.checkParam('callback', callback)
8+
this.addEvent(event)
119
this.observer[event].push(callback)
1210

1311
return this
1412
}
1513

1614
emit (event, data) {
15+
this.addEvent(event)
1716
this.observer[event].forEach(callback => callback(data))
1817
}
18+
19+
addEvent(event) {
20+
this.checkParam('event', event)
21+
if (this.observer[event] === undefined) {
22+
this.observer[event] = []
23+
}
24+
}
25+
26+
checkParam(param, value) {
27+
switch (param) {
28+
case 'event':
29+
if (!(typeof value === 'string' || value instanceof String)) {
30+
throw new Error('Event definition must be a string')
31+
}
32+
break;
33+
34+
case 'callback':
35+
if (!(value && {}.toString.call(value) === '[object Function]')) {
36+
throw new Error('callback definition must be a function')
37+
}
38+
break;
39+
40+
default:
41+
throw new Error('Inexistent parameter')
42+
}
43+
}
1944
}
2045

2146
export default Observer

0 commit comments

Comments
 (0)