chartjs / chartjs-chart-financial

Chart.js module for charting financial securities
MIT License
720 stars 195 forks source link

Running on NodeJS #111

Open SeanSobey opened 2 years ago

SeanSobey commented 2 years ago

While running this plugin on NodeJS we are getting this error (running ChartJS via my lib):

(node:8700) UnhandledPromiseRejectionWarning: ReferenceError: window is not defined
at afterBuildTicks (/home/../node_modules/chartjs-chart-financial/dist/chartjs-chart-financial.min.js:11:2437)
    at callback (/home/../node_modules/chart.js/dist/chart.js:800:15)
    at TimeSeriesScale._callHooks (/home/../node_modules/chart.js/dist/chart.js:5099:5)
    at TimeSeriesScale.afterBuildTicks (/home/../node_modules/chart.js/dist/chart.js:5115:10)
    at TimeSeriesScale.update (/home/../node_modules/chart.js/dist/chart.js:5037:10)
    ...

Obviously, the error is from the window reference. It looks to just be the one reference, when checking for Luxon, and it can be resolved via something like this:

afterBuildTicks: scale => {
        if (!('window' in this)) {
            return;
        }
        const DateTime = window && window.luxon && window.luxon.DateTime;
        if (!DateTime) {
            return;
        }
        ...

I am happy to test and submit this via pull request but am just inquiring about interest and appetite to support NodeJS with this fix and going forward?

benmccann commented 2 years ago

That sounds fine to me

KooperL commented 2 years ago

Really glad I found this, was ready to give up. idk what I'm doing but I added to Sean's fix and pasted into chartjs-chart-financial.min.js and now I have pretty candlesticks saved from node :))

...afterBuildTicks:e=>{if(typeof(this)=='undefined'){return;}else{if(!('window' in this)){return;};};const t=window&&window.luxon&&window.luxon.DateTime;...

SeanSobey commented 2 years ago

Created a pull request for this