Skip to content

Commit 5258ab1

Browse files
authored
Feature/merge options #5 (#6)
* ➕ Add dependency lodash * ✨ Add helper function to merge chartOptions * Change Charts to merge options * And renamed options data to defaultOptions
1 parent df7b6ec commit 5258ab1

File tree

8 files changed

+52
-28
lines changed

8 files changed

+52
-28
lines changed

package.json

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,16 @@
3434
"babel-plugin-transform-runtime": "^6.0.0",
3535
"babel-preset-es2015": "^6.0.0",
3636
"babel-preset-stage-2": "^6.0.0",
37+
"chai": "^3.5.0",
38+
"chromedriver": "^2.21.2",
3739
"connect-history-api-fallback": "^1.1.0",
40+
"cross-spawn": "^2.1.5",
3841
"css-loader": "^0.23.0",
3942
"eslint": "^2.10.2",
43+
"eslint-config-standard": "^5.1.0",
4044
"eslint-friendly-formatter": "^2.0.5",
4145
"eslint-loader": "^1.3.0",
4246
"eslint-plugin-html": "^1.3.0",
43-
"eslint-config-standard": "^5.1.0",
4447
"eslint-plugin-promise": "^1.0.8",
4548
"eslint-plugin-standard": "^1.3.2",
4649
"eventsource-polyfill": "^0.9.6",
@@ -50,6 +53,8 @@
5053
"function-bind": "^1.0.2",
5154
"html-webpack-plugin": "^2.8.1",
5255
"http-proxy-middleware": "^0.12.0",
56+
"inject-loader": "^2.0.1",
57+
"isparta-loader": "^2.0.0",
5358
"json-loader": "^0.5.4",
5459
"karma": "^0.13.15",
5560
"karma-coverage": "^0.5.5",
@@ -59,20 +64,16 @@
5964
"karma-sourcemap-loader": "^0.3.7",
6065
"karma-spec-reporter": "0.0.24",
6166
"karma-webpack": "^1.7.0",
67+
"lodash": "^4.15.0",
6268
"lolex": "^1.4.0",
6369
"mocha": "^2.4.5",
64-
"chai": "^3.5.0",
65-
"sinon": "^1.17.3",
66-
"sinon-chai": "^2.8.0",
67-
"inject-loader": "^2.0.1",
68-
"isparta-loader": "^2.0.0",
69-
"phantomjs-prebuilt": "^2.1.3",
70-
"chromedriver": "^2.21.2",
71-
"cross-spawn": "^2.1.5",
7270
"nightwatch": "^0.8.18",
73-
"selenium-server": "2.53.0",
7471
"ora": "^0.2.0",
72+
"phantomjs-prebuilt": "^2.1.3",
73+
"selenium-server": "2.53.0",
7574
"shelljs": "^0.6.0",
75+
"sinon": "^1.17.3",
76+
"sinon-chai": "^2.8.0",
7677
"url-loader": "^0.5.7",
7778
"vue-hot-reload-api": "^1.2.0",
7879
"vue-html-loader": "^1.0.0",

src/BaseCharts/Bar.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import Vue from 'vue'
22
import Chart from 'chart.js'
3+
import { mergeOptions } from '../helpers/options'
34

45
export default Vue.extend({
56
template: `
@@ -21,7 +22,7 @@ export default Vue.extend({
2122

2223
data () {
2324
return {
24-
options: {
25+
defaultOptions: {
2526
scales: {
2627
yAxes: [{
2728
ticks: {
@@ -44,12 +45,14 @@ export default Vue.extend({
4445
},
4546

4647
methods: {
47-
render (data, options = this.options) {
48+
render (data, options) {
49+
let chartOptions = mergeOptions(this.defaultOptions, options)
50+
4851
this._chart = new Chart(
4952
this.$els.canvas.getContext('2d'), {
5053
type: 'bar',
5154
data: data,
52-
options: options
55+
options: chartOptions
5356
}
5457
)
5558
this._chart.generateLegend()

src/BaseCharts/Doughnut.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import Vue from 'vue'
22
import Chart from 'chart.js'
3+
import { mergeOptions } from '../helpers/options'
34

45
export default Vue.extend({
56
template: `
@@ -21,18 +22,20 @@ export default Vue.extend({
2122

2223
data () {
2324
return {
24-
options: {
25+
defaultOptions: {
2526
}
2627
}
2728
},
2829

2930
methods: {
30-
render (data, options = this.options) {
31+
render (data, options) {
32+
let chartOptions = mergeOptions(this.defaultOptions, options)
33+
3134
this._chart = new Chart(
3235
this.$els.canvas.getContext('2d'), {
3336
type: 'doughnut',
3437
data: data,
35-
options: options
38+
options: chartOptions
3639
}
3740
)
3841
this._chart.generateLegend()

src/BaseCharts/Line.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import Vue from 'vue'
22
import Chart from 'chart.js'
3+
import { mergeOptions } from '../helpers/options'
34

45
export default Vue.extend({
56
template: `
@@ -21,7 +22,7 @@ export default Vue.extend({
2122

2223
data () {
2324
return {
24-
options: {
25+
defaultOptions: {
2526
scales: {
2627
yAxes: [{
2728
ticks: {
@@ -42,12 +43,14 @@ export default Vue.extend({
4243
},
4344

4445
methods: {
45-
render (data, options = this.options) {
46+
render (data, options) {
47+
let chartOptions = mergeOptions(this.defaultOptions, options)
48+
4649
this._chart = new Chart(
4750
this.$els.canvas.getContext('2d'), {
4851
type: 'line',
4952
data: data,
50-
options: options
53+
options: chartOptions
5154
}
5255
)
5356
this._chart.generateLegend()

src/BaseCharts/Pie.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import Vue from 'vue'
22
import Chart from 'chart.js'
3+
import { mergeOptions } from '../helpers/options'
34

45
export default Vue.extend({
56
template: `
@@ -21,18 +22,20 @@ export default Vue.extend({
2122

2223
data () {
2324
return {
24-
options: {
25+
defaultOptions: {
2526
}
2627
}
2728
},
2829

2930
methods: {
30-
render (data, options = this.options) {
31+
render (data, options) {
32+
let chartOptions = mergeOptions(this.defaultOptions, options)
33+
3134
this._chart = new Chart(
3235
this.$els.canvas.getContext('2d'), {
3336
type: 'pie',
3437
data: data,
35-
options: options
38+
options: chartOptions
3639
}
3740
)
3841
this._chart.generateLegend()

src/BaseCharts/PolarArea.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import Vue from 'vue'
22
import Chart from 'chart.js'
3+
import { mergeOptions } from '../helpers/options'
34

45
export default Vue.extend({
56
template: `
@@ -21,18 +22,20 @@ export default Vue.extend({
2122

2223
data () {
2324
return {
24-
options: {
25+
defaultOptions: {
2526
}
2627
}
2728
},
2829

2930
methods: {
30-
render (data, options = this.options) {
31+
render (data, options) {
32+
let chartOptions = mergeOptions(this.defaultOptions, options)
33+
3134
this._chart = new Chart(
3235
this.$els.canvas.getContext('2d'), {
3336
type: 'polarArea',
3437
data: data,
35-
options: options
38+
options: chartOptions
3639
}
3740
)
3841
this._chart.generateLegend()

src/BaseCharts/Radar.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import Vue from 'vue'
22
import Chart from 'chart.js'
3+
import { mergeOptions } from '../helpers/options'
34

45
export default Vue.extend({
56
template: `
@@ -21,18 +22,20 @@ export default Vue.extend({
2122

2223
data () {
2324
return {
24-
options: {
25+
defaultOptions: {
2526
}
2627
}
2728
},
2829

2930
methods: {
30-
render (data, options = this.options) {
31+
render (data, options) {
32+
let chartOptions = mergeOptions(this.defaultOptions, options)
33+
3134
this._chart = new Chart(
3235
this.$els.canvas.getContext('2d'), {
3336
type: 'radar',
3437
data: data,
35-
options: options
38+
options: chartOptions
3639
}
3740
)
3841
this._chart.generateLegend()

src/helpers/options.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import merge from 'lodash/fp/merge'
2+
3+
export function mergeOptions (obj, src) {
4+
return merge(obj, src)
5+
}

0 commit comments

Comments
 (0)