chartjs-chart-financial icon indicating copy to clipboard operation
chartjs-chart-financial copied to clipboard

Running on NodeJS

Open SeanSobey opened this issue 4 years ago • 3 comments

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?

SeanSobey avatar Nov 21 '21 22:11 SeanSobey

That sounds fine to me

benmccann avatar Nov 22 '21 15:11 benmccann

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;...

KooperL avatar Jan 05 '22 05:01 KooperL

Created a pull request for this

SeanSobey avatar Jan 06 '22 19:01 SeanSobey