]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Allow ESM files to be used in Node.js (#10479)
authorBen McCann <322311+benmccann@users.noreply.github.com>
Sat, 30 Jul 2022 15:25:23 +0000 (08:25 -0700)
committerGitHub <noreply@github.com>
Sat, 30 Jul 2022 15:25:23 +0000 (11:25 -0400)
Allow ESM files to be used in Node.js

14 files changed:
auto/auto.esm.js [deleted file]
auto/auto.mjs [new file with mode: 0644]
auto/auto.mts [moved from auto/auto.esm.d.ts with 100% similarity]
auto/package.json
docs/.vuepress/config.js
docs/scripts/components.js
docs/scripts/helpers.js
docs/scripts/register.js
docs/scripts/utils.js
helpers/helpers.mjs [moved from helpers/helpers.esm.js with 100% similarity]
helpers/helpers.mts [moved from helpers/helpers.esm.d.ts with 100% similarity]
helpers/package.json
package.json
rollup.config.js

diff --git a/auto/auto.esm.js b/auto/auto.esm.js
deleted file mode 100644 (file)
index 8111b89..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-import {Chart, registerables} from '../dist/chart.esm.js';
-
-Chart.register(...registerables);
-
-export default Chart;
diff --git a/auto/auto.mjs b/auto/auto.mjs
new file mode 100644 (file)
index 0000000..95d0a9a
--- /dev/null
@@ -0,0 +1,5 @@
+import {Chart, registerables} from '../dist/chart.mjs';
+
+Chart.register(...registerables);
+
+export default Chart;
similarity index 100%
rename from auto/auto.esm.d.ts
rename to auto/auto.mts
index c2ad5b2caf4fbe46bc92410d699f4a467ccaecd7..5f89c8f903fc60d8a33a7eb3407214cc09c5e119 100644 (file)
@@ -3,6 +3,6 @@
     "private": true,
     "description": "auto registering package",
     "main": "auto.js",
-    "module": "auto.esm.js",
-    "types": "auto.esm.d.ts"
+    "module": "auto.mjs",
+    "types": "auto.mts"
 }
index 77d1d19d971e872ead5132a8d9d6aeb8604af474..142122bc3be1e1e5d73f59c984d8b13512236e8d 100644 (file)
@@ -94,7 +94,7 @@ module.exports = {
     config.merge({
       resolve: {
         alias: {
-          'chart.js': path.resolve(__dirname, '../../dist/chart.esm.js'),
+          'chart.js': path.resolve(__dirname, '../../dist/chart.mjs'),
         }
       }
     })
index 5ed77b6afb9957173fee0ec7c93548c3a05c0ae5..9334eb2d72f08496a90c7ae974af70a268e508f1 100644 (file)
@@ -1,3 +1,3 @@
 // Add Chart components needed in samples here.
 // Usable through `components[name]`.
-export {Tooltip} from '../../dist/chart.esm';
+export {Tooltip} from '../../dist/chart.mjs';
index b7c92c5acac6161a76794b0b44ee53f5c77c28de..39d60b68b1fb1d3ef27b79fb5709ad61d6e0b7e1 100644 (file)
@@ -1,4 +1,3 @@
 // Add helpers needed in samples here.
 // Usable through `helpers[name]`.
-export {color, getHoverColor, easingEffects} from '../../dist/helpers.esm';
-
+export {color, getHoverColor, easingEffects} from '../../dist/helpers.mjs';
index 43f0ebcdba7d57512ae91f83432d7e1fff3563a9..675f6443a407978f18433f51980365607a452f87 100644 (file)
@@ -1,4 +1,4 @@
-import {Chart, registerables} from '../../dist/chart.esm';
+import {Chart, registerables} from '../../dist/chart.mjs';
 import Log2Axis from './log2';
 import './derived-bubble';
 import analyzer from './analyzer';
index 59a07d7ebe3957c2d279e13a44cd8bd147aaacde..eab68e5f0060c754acc785a58b04a00c5eaad5a3 100644 (file)
@@ -1,7 +1,7 @@
 import colorLib from '@kurkle/color';
 import {DateTime} from 'luxon';
 import 'chartjs-adapter-luxon';
-import {valueOrDefault} from '../../dist/helpers.esm';
+import {valueOrDefault} from '../../dist/helpers.mjs';
 
 // Adapted from http://indiegamr.com/generate-repeatable-random-numbers-in-js/
 var _seed = Date.now();
similarity index 100%
rename from helpers/helpers.esm.js
rename to helpers/helpers.mjs
similarity index 100%
rename from helpers/helpers.esm.d.ts
rename to helpers/helpers.mts
index d97b75cbfba054be6a4b0deeb1b657ce0bd64fc2..668b05e7007d2f2b127f2d6b7c2181879c3d7ece 100644 (file)
@@ -3,6 +3,6 @@
     "private": true,
     "description": "helper package",
     "main": "helpers.js",
-    "module": "helpers.esm.js",
-    "types": "helpers.esm.d.ts"
+    "module": "helpers.mjs",
+    "types": "helpers.mts"
 }
\ No newline at end of file
index 0f98b7f8c7477cca9e1457599d15f353b080df3e..fb2f438aab28883a8e7a6070d09ab064b8ad131d 100644 (file)
@@ -7,7 +7,7 @@
     "jsdelivr": "dist/chart.min.js",
     "unpkg": "dist/chart.min.js",
     "main": "dist/chart.js",
-    "module": "dist/chart.esm.js",
+    "module": "dist/chart.mjs",
     "types": "types/index.esm.d.ts",
     "keywords": [
         "canvas",
         "url": "https://github.com/chartjs/Chart.js/issues"
     },
     "files": [
-        "auto/package.json",
-        "auto/**/*.js",
-        "auto/**/*.d.ts",
-        "dist/*.js",
-        "dist/chunks/*.js",
-        "types/*.d.ts",
-        "types/helpers/*.d.ts",
-        "helpers/package.json",
-        "helpers/**/*.js",
-        "helpers/**/*.d.ts"
+        "auto/**",
+        "dist/**",
+        "types/**",
+        "helpers/**"
     ],
     "scripts": {
         "autobuild": "rollup -c -w",
index 6f05bff34a7bcc74850e9e0393b03b554cc57ad3..4d88bcf16f2d224b0202f9a920f01cb62bfdd2cd 100644 (file)
@@ -6,10 +6,6 @@ const terser = require('rollup-plugin-terser').terser;
 const pkg = require('./package.json');
 
 const input = 'src/index.js';
-const inputESM = {
-  'dist/chart.esm': 'src/index.esm.js',
-  'dist/helpers.esm': 'src/helpers/index.js'
-};
 
 const banner = `/*!
  * Chart.js v${pkg.version}
@@ -60,10 +56,38 @@ module.exports = [
   },
 
   // ES6 builds
+  // dist/chart.mjs
+  // helpers/*.js
+  {
+    input: {
+      'dist/chart': 'src/index.esm.js',
+      'dist/helpers': 'src/helpers/index.js'
+    },
+    plugins: [
+      json(),
+      resolve(),
+      cleanup({
+        sourcemap: true
+      }),
+    ],
+    output: {
+      dir: './',
+      chunkFileNames: 'dist/chunks/[name].mjs',
+      entryFileNames: '[name].mjs',
+      banner,
+      format: 'esm',
+      indent: false,
+    },
+  },
+
+  // Legacy ES6 builds for backwards compatibility. Remove for Chart.js 4.0
   // dist/chart.esm.js
   // helpers/*.js
   {
-    input: inputESM,
+    input: {
+      'dist/chart.esm': 'src/index.esm.js',
+      'dist/helpers.esm': 'src/helpers/index.js'
+    },
     plugins: [
       json(),
       resolve(),