UNPKG

@mui/x-charts-vendor

Version:

Vendored dependencies for MUI X Charts.

80 lines (51 loc) 2.42 kB
# Charts Vendor Vendored dependencies for @mui/x-charts. An adaptation of the victory-vendor ## Background D3 has released most of its libraries as ESM-only. This means that consumers in Node.js applications can no longer just `require()` anything with a d3 transitive dependency, including much of @mui/x-charts. To help provide an easy path to folks still using CommonJS in their Node.js applications that consume @mui/x-charts, we now provide this package to vendor in various d3-related packages. ## Main difference with victory-vendor Victory is using the `d3-voronoi` which is an archived project. ## Packages We presently provide the following top-level libraries: - d3-color - d3-interpolate - d3-sankey - d3-scale - d3-shape - d3-time - d3-timer This is the total list of top and transitive libraries we vendor: - d3-array - d3-color - d3-format - d3-interpolate - d3-path - d3-sankey - d3-scale - d3-shape - d3-time - d3-time-format - d3-timer - internmap ## How to add a new package To add a new package, simply install it as a dependency in this package, and then run the build script. If your package is not built, you may need to adjust the parameters on [./scripts/build.js](./scripts/build.js), then run the build script again. ## How it works We provide two alternate paths and behaviors -- for ESM and CommonJS ### ESM If you do a Node.js import like: ```js import { interpolate } from '@mui/x-charts-vendor/d3-interpolate'; ``` under the hood it's going to just re-export and pass you through to `node_modules/d3-interpolate`, the **real** ESM library from D3. ### CommonJS If you do a Node.js import like: ```js const { interpolate } = require('@mui/x-charts-vendor/d3-interpolate'); ``` under the hood, it will go to an alternate path that contains the transpiled version of the underlying d3 library found at `x-charts-vendor/lib-vendor/d3-interpolate/**/*.js`. This further has internally consistent import references to other `x-charts-vendor/lib-vendor/<pkg-name>` paths. Note that for some tooling (like Jest) that doesn't play well with `package.json:exports` routing to this CommonJS path, we **also** output a root file in the form of `x-charts-vendor/d3-interpolate.js`. ## Licenses This project is released under the MIT license, but the vendored in libraries include other licenses (for example ISC) that we enumerate in our `package.json:license` field.