From 5b509cca0ffd1ac7ad9f1199f87f4dd5375c0038 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Mon, 15 Jan 2024 14:53:49 -0500 Subject: [PATCH 1/3] Add side effects --- js/gulp/package-task.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/js/gulp/package-task.js b/js/gulp/package-task.js index 9bc002e6648..45cd2134503 100644 --- a/js/gulp/package-task.js +++ b/js/gulp/package-task.js @@ -38,6 +38,11 @@ export const packageTask = ((cache) => memoizeTask(cache, function bundle(target export default packageTask; +const sideEffects = (ext) => [ + `./Arrow.dom.${ext ?? '*'}`, + `./Arrow.node.${ext ?? '*'}`, +]; + const createMainPackageJson = (target, format) => (orig) => ({ ...createTypeScriptPackageJson(target, format)(orig), bin: orig.bin, @@ -84,7 +89,7 @@ const createMainPackageJson = (target, format) => (orig) => ({ }, }, }, - sideEffects: false, + sideEffects: sideEffects('*'), esm: { mode: `all`, sourceMap: true } }); @@ -96,7 +101,7 @@ const createTypeScriptPackageJson = (target, format) => (orig) => ({ types: `${mainExport}.node.ts`, browser: `${mainExport}.dom.ts`, type: 'module', - sideEffects: false, + sideEffects: sideEffects('ts'), esm: { mode: `auto`, sourceMap: true }, dependencies: { '@types/node': '*', @@ -124,7 +129,7 @@ const createScopedPackageJSON = (target, format) => (({ name, ...orig }) => // set "module" if building scoped ESM target module: format === 'esm' ? `${mainExport}.node.js` : undefined, // set "sideEffects" to false as a hint to Webpack that it's safe to tree-shake the ESM target - sideEffects: format === 'esm' ? false : undefined, + sideEffects: format === 'esm' ? sideEffects('mjs') : undefined, // include "esm" settings for https://www.npmjs.com/package/esm if building scoped ESM target esm: format === `esm` ? { mode: `auto`, sourceMap: true } : undefined, // set "types" (for TypeScript/VSCode) From 2eda59292c91f7f10d8707727cb93c9fd9af07b7 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Mon, 15 Jan 2024 14:54:59 -0500 Subject: [PATCH 2/3] Remove .mts since they are the same as .ts files --- js/gulp/arrow-task.js | 1 - js/gulp/package-task.js | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/js/gulp/arrow-task.js b/js/gulp/arrow-task.js index f8a18fe122a..2de20947dc2 100644 --- a/js/gulp/arrow-task.js +++ b/js/gulp/arrow-task.js @@ -41,7 +41,6 @@ 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 45cd2134503..99eb705daef 100644 --- a/js/gulp/package-task.js +++ b/js/gulp/package-task.js @@ -61,7 +61,7 @@ const createMainPackageJson = (target, format) => (orig) => ({ '.': { node: { import: { - types: `./${mainExport}.node.d.mts`, + types: `./${mainExport}.node.d.ts`, default: `./${mainExport}.node.mjs`, }, require: { @@ -70,7 +70,7 @@ const createMainPackageJson = (target, format) => (orig) => ({ }, }, import: { - types: `./${mainExport}.dom.d.mts`, + types: `./${mainExport}.dom.d.ts`, default: `./${mainExport}.dom.mjs`, }, require: { @@ -80,7 +80,7 @@ const createMainPackageJson = (target, format) => (orig) => ({ }, './*': { import: { - types: `./*.d.mts`, + types: `./*.d.ts`, default: `./*.mjs`, }, require: { From 5f36e639a756114e5e58b6cd740b760c624a6497 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Fri, 19 Jan 2024 12:36:13 -0800 Subject: [PATCH 3/3] Correct apache-arrow package building --- js/gulp/arrow-task.js | 8 ++++---- js/gulp/package-task.js | 2 +- js/gulp/typescript-task.js | 6 +----- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/js/gulp/arrow-task.js b/js/gulp/arrow-task.js index 2de20947dc2..ab3639e80a0 100644 --- a/js/gulp/arrow-task.js +++ b/js/gulp/arrow-task.js @@ -30,12 +30,12 @@ import { pipeline } from 'stream/promises'; export const arrowTask = ((cache) => memoizeTask(cache, function copyMain(target) { const out = targetDir(target); - const dtsGlob = `${targetDir(`es2015`, `cjs`)}/**/*.ts`; + const dtsGlob = `${targetDir(`es2015`, `esm`)}/**/*.ts`; const cjsGlob = `${targetDir(`es2015`, `cjs`)}/**/*.js`; const esmGlob = `${targetDir(`es2015`, `esm`)}/**/*.js`; const es2015UmdGlob = `${targetDir(`es2015`, `umd`)}/*.js`; const esnextUmdGlob = `${targetDir(`esnext`, `umd`)}/*.js`; - const cjsSourceMapsGlob = `${targetDir(`es2015`, `cjs`)}/**/*.map`; + const cjsSourceMapsGlob = `${targetDir(`es2015`, `cjs`)}/**/*.js.map`; const esmSourceMapsGlob = `${targetDir(`es2015`, `esm`)}/**/*.map`; const es2015UmdSourceMapsGlob = `${targetDir(`es2015`, `umd`)}/*.map`; const esnextUmdSourceMapsGlob = `${targetDir(`esnext`, `umd`)}/*.map`; @@ -43,10 +43,10 @@ export const arrowTask = ((cache) => memoizeTask(cache, function copyMain(target observableFromStreams(gulp.src(dtsGlob), gulp.dest(out)), // copy d.ts files 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 + observableFromStreams(gulp.src(esmSourceMapsGlob), gulpRename((p) => { p.basename = p.basename.replace('.js', '.mjs'); }), gulpReplace(`.js"`, `.mjs"`), gulp.dest(out)), // copy es2015 esm sourcemaps observableFromStreams(gulp.src(es2015UmdSourceMapsGlob), gulp.dest(out)), // copy es2015 umd sourcemap files, but don't rename observableFromStreams(gulp.src(esnextUmdSourceMapsGlob), gulp.dest(out)), // copy esnext umd sourcemap files, but don't rename - observableFromStreams(gulp.src(esmGlob), gulpRename((p) => { p.extname = '.mjs'; }), gulpReplace(`.js'`, `.mjs'`), gulp.dest(out)), // copy es2015 esm files and rename to `.mjs` + observableFromStreams(gulp.src(esmGlob), gulpRename((p) => { p.extname = '.mjs'; }), gulpReplace(`.js'`, `.mjs'`), gulpReplace(`.js.map`, `.mjs.map`), gulp.dest(out)), // copy es2015 esm files and rename to `.mjs` observableFromStreams(gulp.src(es2015UmdGlob), gulpRename((p) => { p.basename += `.es2015.min`; }), gulp.dest(out)), // copy es2015 umd files and add `.es2015.min` observableFromStreams(gulp.src(esnextUmdGlob), gulpRename((p) => { p.basename += `.esnext.min`; }), gulp.dest(out)), // copy esnext umd files and add `.esnext.min` ]).pipe(share({ connector: () => new ReplaySubject(), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false })); diff --git a/js/gulp/package-task.js b/js/gulp/package-task.js index 99eb705daef..8d061566a36 100644 --- a/js/gulp/package-task.js +++ b/js/gulp/package-task.js @@ -129,7 +129,7 @@ const createScopedPackageJSON = (target, format) => (({ name, ...orig }) => // set "module" if building scoped ESM target module: format === 'esm' ? `${mainExport}.node.js` : undefined, // set "sideEffects" to false as a hint to Webpack that it's safe to tree-shake the ESM target - sideEffects: format === 'esm' ? sideEffects('mjs') : undefined, + sideEffects: format === 'esm' ? sideEffects('js') : undefined, // include "esm" settings for https://www.npmjs.com/package/esm if building scoped ESM target esm: format === `esm` ? { mode: `auto`, sourceMap: true } : undefined, // set "types" (for TypeScript/VSCode) diff --git a/js/gulp/typescript-task.js b/js/gulp/typescript-task.js index 31769e3b1b2..ecc326b0f5a 100644 --- a/js/gulp/typescript-task.js +++ b/js/gulp/typescript-task.js @@ -61,10 +61,9 @@ function compileTypescript(out, tsconfigPath, tsconfigOverrides, writeSourcemaps ); const writeSources = observableFromStreams(tsProject.src(), gulp.dest(path.join(out, 'src'))); const writeDTypes = observableFromStreams(dts, sourcemaps.write('./', { includeContent: false, sourceRoot: './src' }), gulp.dest(out)); - const mapFile = tsProject.options.module === tsc.ModuleKind.ES2015 ? esmMapFile : cjsMapFile; const writeJSArgs = writeSourcemaps ? [ js, - sourcemaps.write('./', { mapFile, includeContent: false, sourceRoot: './src' }), + sourcemaps.write('./', { includeContent: false, sourceRoot: './src' }), gulp.dest(out) ] : [ js, @@ -73,6 +72,3 @@ function compileTypescript(out, tsconfigPath, tsconfigOverrides, writeSourcemaps const writeJS = observableFromStreams(...writeJSArgs); return ObservableForkJoin([writeSources, writeDTypes, writeJS]); } - -const cjsMapFile = (mapFilePath) => mapFilePath; -const esmMapFile = (mapFilePath) => mapFilePath.replace('.js.map', '.mjs.map');