wa0x6e / cal-heatmap

Cal-Heatmap is a javascript charting library to create a time-series calendar heatmap
http://cal-heatmap.com
MIT License
2.66k stars 291 forks source link

New external plugins repositories #487

Open wa0x6e opened 5 months ago

wa0x6e commented 5 months ago

Discussed in https://github.com/wa0x6e/cal-heatmap/discussions/486

Originally posted by **wa0x6e** February 11, 2024 Following https://github.com/wa0x6e/cal-heatmap/issues/366 The current plugin files are not exported correctly. I made some tests, by trying to add all plugins files and types to the `export` property in package.json, and got it working only on when `moduleResolution` is set to `Node16` in tsconfig, and `type` set to `module` in package.json in the package importing cal-heatmap. Multiple export from package.json is available only on recent config, and broken on package using `node`, or `esnext`. To ensure the broadest support of setup, multiple export is not a solution. This left us with 2 solutions: 1. merge the plugins inside the core package, and import them with `import { Tooltip } from 'cal-heatmap'` => will increase build size 2. externalize the plugins to their own NPM package => will require installing each plugin as a new dependency Solution 2 has been retained, and all plugins will have their own repositories in https://github.com/cal-heatmap/ Refactoring is in progress, and next release (4.3.0, or maybe even 5) will incorporate this breaking changes.
savakarrohan commented 4 months ago

Hey, Any way I can help?

I need to use these plugins in a react application building through typescript in a NodeNext moduleRes