From 7b8f3699a8f088be22d32f3e0a8cf63ae446ff38 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Fri, 5 Jan 2024 16:16:20 +0000 Subject: [PATCH 1/2] GH-39289: [JS] Add types to exports --- js/gulp/package-task.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/js/gulp/package-task.js b/js/gulp/package-task.js index 449b0761ca9e9..8e51a0f7025b5 100644 --- a/js/gulp/package-task.js +++ b/js/gulp/package-task.js @@ -45,6 +45,9 @@ const createMainPackageJson = (target, format) => (orig) => ({ type: 'commonjs', main: `${mainExport}.node.js`, module: `${mainExport}.node.mjs`, + types: `${mainExport}.node.d.ts`, + unpkg: `${mainExport}.es2015.min.js`, + jsdelivr: `${mainExport}.es2015.min.js`, browser: { [`./${mainExport}.node.js`]: `./${mainExport}.dom.js`, [`./${mainExport}.node.mjs`]: `./${mainExport}.dom.mjs` @@ -54,18 +57,17 @@ const createMainPackageJson = (target, format) => (orig) => ({ node: { import: `./${mainExport}.node.mjs`, require: `./${mainExport}.node.js`, + types: `./${mainExport}.node.d.ts`, }, import: `./${mainExport}.dom.mjs`, require: `./${mainExport}.dom.js`, + types: `./${mainExport}.dom.d.ts`, }, './*': { import: `./*.mjs`, - require: `./*.js` + require: `./*.js`, } }, - types: `${mainExport}.node.d.ts`, - unpkg: `${mainExport}.es2015.min.js`, - jsdelivr: `${mainExport}.es2015.min.js`, sideEffects: false, esm: { mode: `all`, sourceMap: true } }); From fba9c4644a235bcaecc357e22a9931ba7180cbd8 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Fri, 5 Jan 2024 22:05:46 +0000 Subject: [PATCH 2/2] updates from @andrew0 --- js/gulp/arrow-task.js | 1 + js/gulp/package-task.js | 34 +++++++++++++++++++++++++--------- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/js/gulp/arrow-task.js b/js/gulp/arrow-task.js index 2de20947dc2f5..f8a18fe122a93 100644 --- a/js/gulp/arrow-task.js +++ b/js/gulp/arrow-task.js @@ -41,6 +41,7 @@ export const arrowTask = ((cache) => memoizeTask(cache, function copyMain(target const esnextUmdSourceMapsGlob = `${targetDir(`esnext`, `umd`)}/*.map`; return ObservableForkJoin([ observableFromStreams(gulp.src(dtsGlob), gulp.dest(out)), // copy d.ts files + observableFromStreams(gulp.src(dtsGlob), gulpRename((p) => { p.extname = '.mts'; }), gulp.dest(out)), // copy d.ts files as esm observableFromStreams(gulp.src(cjsGlob), gulp.dest(out)), // copy es2015 cjs files observableFromStreams(gulp.src(cjsSourceMapsGlob), gulp.dest(out)), // copy es2015 cjs sourcemaps observableFromStreams(gulp.src(esmSourceMapsGlob), gulp.dest(out)), // copy es2015 esm sourcemaps diff --git a/js/gulp/package-task.js b/js/gulp/package-task.js index 8e51a0f7025b5..9bc002e664885 100644 --- a/js/gulp/package-task.js +++ b/js/gulp/package-task.js @@ -55,18 +55,34 @@ const createMainPackageJson = (target, format) => (orig) => ({ exports: { '.': { node: { - import: `./${mainExport}.node.mjs`, - require: `./${mainExport}.node.js`, - types: `./${mainExport}.node.d.ts`, + import: { + types: `./${mainExport}.node.d.mts`, + default: `./${mainExport}.node.mjs`, + }, + require: { + types: `./${mainExport}.node.d.ts`, + default: `./${mainExport}.node.js`, + }, }, - import: `./${mainExport}.dom.mjs`, - require: `./${mainExport}.dom.js`, - types: `./${mainExport}.dom.d.ts`, + import: { + types: `./${mainExport}.dom.d.mts`, + default: `./${mainExport}.dom.mjs`, + }, + require: { + types: `./${mainExport}.dom.d.ts`, + default: `./${mainExport}.dom.js`, + } }, './*': { - import: `./*.mjs`, - require: `./*.js`, - } + import: { + types: `./*.d.mts`, + default: `./*.mjs`, + }, + require: { + types: `./*.d.ts`, + default: `./*.js`, + }, + }, }, sideEffects: false, esm: { mode: `all`, sourceMap: true }