Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions js/gulp/arrow-task.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,24 +29,24 @@ const pipeline = require('util').promisify(require('stream').pipeline);

const arrowTask = ((cache) => memoizeTask(cache, function copyMain(target) {
const out = targetDir(target);
const dtsGlob = `${targetDir(`esnext`, `cjs`)}/**/*.ts`;
const cjsGlob = `${targetDir(`esnext`, `cjs`)}/**/*.js`;
const esmGlob = `${targetDir(`esnext`, `esm`)}/**/*.js`;
const dtsGlob = `${targetDir(`es2015`, `cjs`)}/**/*.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(`esnext`, `cjs`)}/**/*.map`;
const esmSourceMapsGlob = `${targetDir(`esnext`, `esm`)}/**/*.map`;
const cjsSourceMapsGlob = `${targetDir(`es2015`, `cjs`)}/**/*.map`;
const esmSourceMapsGlob = `${targetDir(`es2015`, `esm`)}/**/*.map`;
const es2015UmdSourceMapsGlob = `${targetDir(`es2015`, `umd`)}/*.map`;
const esnextUmdSourceMapsGlob = `${targetDir(`esnext`, `umd`)}/*.map`;
return Observable.forkJoin(
observableFromStreams(gulp.src(dtsGlob), gulp.dest(out)), // copy d.ts files
observableFromStreams(gulp.src(cjsGlob), gulp.dest(out)), // copy esnext cjs files
observableFromStreams(gulp.src(cjsSourceMapsGlob), gulp.dest(out)), // copy esnext cjs sourcemaps
observableFromStreams(gulp.src(esmSourceMapsGlob), gulp.dest(out)), // copy esnext esm sourcemaps
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(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'; }), gulp.dest(out)), // copy esnext 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 `.min`
observableFromStreams(gulp.src(esmGlob), gulpRename((p) => { p.extname = '.mjs'; }), 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`
).publish(new ReplaySubject()).refCount();
}))({});
Expand Down
27 changes: 19 additions & 8 deletions js/gulp/package-task.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,23 +46,34 @@ const createMainPackageJson = (target, format) => (orig) => ({
...createTypeScriptPackageJson(target, format)(orig),
bin: orig.bin,
name: npmPkgName,
main: `${mainExport}.node`,
browser: `${mainExport}.dom`,
module: `${mainExport}.dom.mjs`,
type: 'commonjs',
main: `${mainExport}.node.js`,
module: `${mainExport}.node.mjs`,
browser: {
[`${mainExport}.node.js`]: `${mainExport}.dom.js`,
[`${mainExport}.node.mjs`]: `${mainExport}.dom.mjs`
},
exports: {
import: `./${mainExport}.node.mjs`,
require: `./${mainExport}.node.js`,
},
types: `${mainExport}.node.d.ts`,
unpkg: `${mainExport}.es2015.min.js`,
jsdelivr: `${mainExport}.es2015.min.js`,
sideEffects: false,
esm: { mode: `all`, sourceMap: true },
esm: { mode: `all`, sourceMap: true }
});

const createTypeScriptPackageJson = (target, format) => (orig) => ({
...createScopedPackageJSON(target, format)(orig),
bin: undefined,
module: undefined,
main: `${mainExport}.node.ts`,
module: `${mainExport}.node.ts`,
types: `${mainExport}.node.ts`,
browser: `${mainExport}.dom.ts`,
type: "module",
sideEffects: false,
esm: { mode: `auto`, sourceMap: true },
dependencies: {
'@types/flatbuffers': '*',
'@types/node': '*',
Expand All @@ -84,11 +95,11 @@ const createScopedPackageJSON = (target, format) => (({ name, ...orig }) =>
// set "browser" if building scoped UMD target, otherwise "Arrow.dom"
browser: format === 'umd' ? `${mainExport}.js` : `${mainExport}.dom.js`,
// set "main" to "Arrow" if building scoped UMD target, otherwise "Arrow.node"
main: format === 'umd' ? `${mainExport}.js` : `${mainExport}.node`,
main: format === 'umd' ? `${mainExport}.js` : `${mainExport}.node.js`,
// set "type" to `module` or `commonjs` (https://nodejs.org/api/packages.html#packages_type)
type: format === 'esm' ? `module` : `commonjs`,
// set "module" (for https://www.npmjs.com/package/@pika/pack) if building scoped ESM target
module: format === 'esm' ? `${mainExport}.dom.js` : undefined,
// 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,
// include "esm" settings for https://www.npmjs.com/package/esm if building scoped ESM target
Expand Down
4 changes: 2 additions & 2 deletions js/gulp/test-task.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ const readFile = promisify(require('fs').readFile);
const asyncDone = promisify(require('async-done'));
const exec = promisify(require('child_process').exec);
const parseXML = promisify(require('xml2js').parseString);
const { targetAndModuleCombinations } = require('./util');
const { targetAndModuleCombinations, npmPkgName } = require('./util');

const jestArgv = [`--reporters=jest-silent-reporter`];

Expand All @@ -53,7 +53,7 @@ const testOptions = {
const testTask = ((cache, execArgv, testOptions) => memoizeTask(cache, function test(target, format) {
const opts = { ...testOptions };
const args = [...execArgv];
if (format === 'esm' || target === 'ts' || target === 'src') {
if (format === 'esm' || target === 'ts' || target === 'src' || target === npmPkgName) {
args.unshift(`--experimental-vm-modules`);
}
if (argv.coverage) {
Expand Down
8 changes: 4 additions & 4 deletions js/gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,15 +56,15 @@ knownTargets.forEach((target) => {
));
});

// The main "apache-arrow" module builds the es2015/umd, esnext/cjs,
// esnext/esm, and esnext/umd targets, then copies and renames the
// The main "apache-arrow" module builds the es2015/umd, es2015/cjs,
// es2015/esm, and esnext/umd targets, then copies and renames the
// compiled output into the apache-arrow folder
gulp.task(`build:${npmPkgName}`,
gulp.series(
gulp.parallel(
`build:${taskName(`es2015`, `umd`)}`,
`build:${taskName(`esnext`, `cjs`)}`,
`build:${taskName(`esnext`, `esm`)}`,
`build:${taskName(`es2015`, `cjs`)}`,
`build:${taskName(`es2015`, `esm`)}`,
`build:${taskName(`esnext`, `umd`)}`
),
`clean:${npmPkgName}`,
Expand Down
2 changes: 1 addition & 1 deletion js/jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ module.exports = {
rootDir: ".",
roots: ["<rootDir>/test/"],
preset: "ts-jest/presets/default-esm",
moduleFileExtensions: ["js", "ts"],
moduleFileExtensions: ["mjs", "js", "ts"],
coverageReporters: ["lcov", "json"],
coveragePathIgnorePatterns: [
"fb\\/(File|Message|Schema|Tensor)\\.(js|ts)$",
Expand Down
1 change: 1 addition & 0 deletions js/jestconfigs/jest.apache-arrow.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ module.exports = {
...require("../jest.config"),
rootDir: "../",
preset: "ts-jest",
moduleFileExtensions: ["js", "ts"],
globals: {
"ts-jest": {
diagnostics: false,
Expand Down
1 change: 1 addition & 0 deletions js/jestconfigs/jest.es2015.cjs.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ module.exports = {
...require("../jest.config"),
rootDir: "../",
preset: "ts-jest",
moduleFileExtensions: ["js", "ts"],
globals: {
"ts-jest": {
diagnostics: false,
Expand Down
3 changes: 1 addition & 2 deletions js/jestconfigs/jest.es2015.esm.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ module.exports = {
},
moduleNameMapper: {
"^apache-arrow(.*)": "<rootDir>/targets/es2015/esm$1",
tslib: "tslib/tslib.es6.js",
flatbuffers: "flatbuffers/js/flatbuffers.mjs",
tslib: "tslib/tslib.es6.js"
},
};
1 change: 1 addition & 0 deletions js/jestconfigs/jest.es2015.umd.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ module.exports = {
...require("../jest.config"),
rootDir: "../",
preset: "ts-jest",
moduleFileExtensions: ["js", "ts"],
globals: {
"ts-jest": {
diagnostics: false,
Expand Down
1 change: 1 addition & 0 deletions js/jestconfigs/jest.es5.cjs.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ module.exports = {
...require("../jest.config"),
rootDir: "../",
preset: "ts-jest",
moduleFileExtensions: ["js", "ts"],
globals: {
"ts-jest": {
diagnostics: false,
Expand Down
3 changes: 1 addition & 2 deletions js/jestconfigs/jest.es5.esm.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ module.exports = {
},
moduleNameMapper: {
"^apache-arrow(.*)": "<rootDir>/targets/es5/esm$1",
tslib: "tslib/tslib.es6.js",
flatbuffers: "flatbuffers/js/flatbuffers.mjs",
tslib: "tslib/tslib.es6.js"
},
};
1 change: 1 addition & 0 deletions js/jestconfigs/jest.es5.umd.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ module.exports = {
...require("../jest.config"),
rootDir: "../",
preset: "ts-jest",
moduleFileExtensions: ["js", "ts"],
globals: {
"ts-jest": {
diagnostics: false,
Expand Down
1 change: 1 addition & 0 deletions js/jestconfigs/jest.esnext.cjs.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ module.exports = {
...require("../jest.config"),
rootDir: "../",
preset: "ts-jest",
moduleFileExtensions: ["js", "ts"],
globals: {
"ts-jest": {
diagnostics: false,
Expand Down
3 changes: 1 addition & 2 deletions js/jestconfigs/jest.esnext.esm.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ module.exports = {
},
moduleNameMapper: {
"^apache-arrow(.*)": "<rootDir>/targets/esnext/esm$1",
tslib: "tslib/tslib.es6.js",
flatbuffers: "flatbuffers/js/flatbuffers.mjs",
tslib: "tslib/tslib.es6.js"
},
};
1 change: 1 addition & 0 deletions js/jestconfigs/jest.esnext.umd.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ module.exports = {
...require("../jest.config"),
rootDir: "../",
preset: "ts-jest",
moduleFileExtensions: ["js", "ts"],
globals: {
"ts-jest": {
diagnostics: false,
Expand Down
3 changes: 1 addition & 2 deletions js/jestconfigs/jest.ts.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ module.exports = {
},
},
moduleNameMapper: {
"^apache-arrow(.*)": "<rootDir>/targets/ts$1",
flatbuffers: "flatbuffers/js/flatbuffers.mjs",
"^apache-arrow(.*)": "<rootDir>/targets/ts$1"
},
};
1 change: 0 additions & 1 deletion js/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
{
"name": "apache-arrow",
"description": "Apache Arrow columnar in-memory format",
"main": "./index",
"bin": {
"arrow2csv": "bin/arrow2csv.js"
},
Expand Down
2 changes: 1 addition & 1 deletion js/tsconfig/tsconfig.docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
"extends": "./tsconfig.base.json",
"include": ["../src/**/*.ts"],
"compilerOptions": {
"target": "ESNEXT"
"target": "esnext"
}
}
2 changes: 1 addition & 1 deletion js/tsconfig/tsconfig.es2015.cjs.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
{
"extends": "./tsconfig.base.json",
"compilerOptions": {
"target": "ES2015",
"target": "es2015",
"module": "commonjs"
}
}
2 changes: 1 addition & 1 deletion js/tsconfig/tsconfig.es2015.esm.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
{
"extends": "./tsconfig.base.json",
"compilerOptions": {
"target": "ES2015",
"target": "es2015",
"module": "es2015"
}
}
2 changes: 1 addition & 1 deletion js/tsconfig/tsconfig.es5.cjs.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
{
"extends": "./tsconfig.base.json",
"compilerOptions": {
"target": "ES5",
"target": "es5",
"module": "commonjs"
}
}
2 changes: 1 addition & 1 deletion js/tsconfig/tsconfig.es5.esm.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
{
"extends": "./tsconfig.base.json",
"compilerOptions": {
"target": "ES5",
"target": "es5",
"module": "es2015"
}
}
2 changes: 1 addition & 1 deletion js/tsconfig/tsconfig.esnext.cjs.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
{
"extends": "./tsconfig.base.json",
"compilerOptions": {
"target": "ESNEXT",
"target": "esnext",
"module": "commonjs"
}
}
2 changes: 1 addition & 1 deletion js/tsconfig/tsconfig.esnext.esm.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
{
"extends": "./tsconfig.base.json",
"compilerOptions": {
"target": "ESNEXT",
"target": "esnext",
"module": "es2015"
}
}