Skip to content

Commit

Permalink
rename GulpFile, add workaround for __dirname usage in esm
Browse files Browse the repository at this point in the history
resolves: #12137
  • Loading branch information
karansapolia committed Dec 3, 2020
1 parent 4c3aa9b commit bc950bd
Show file tree
Hide file tree
Showing 10 changed files with 49 additions and 43 deletions.
57 changes: 31 additions & 26 deletions Gulpfile.js → Gulpfile.mjs
Original file line number Diff line number Diff line change
@@ -1,25 +1,26 @@
"use strict";

const plumber = require("gulp-plumber");
const through = require("through2");
const chalk = require("chalk");
const newer = require("gulp-newer");
const babel = require("gulp-babel");
const fancyLog = require("fancy-log");
const filter = require("gulp-filter");
const gulp = require("gulp");
const path = require("path");
const fs = require("fs");
const rollup = require("rollup");
const rollupBabel = require("@rollup/plugin-babel").default;
const rollupBabelSource = require("./scripts/rollup-plugin-babel-source");
const rollupCommonJs = require("@rollup/plugin-commonjs");
const rollupJson = require("@rollup/plugin-json");
const rollupNodePolyfills = require("rollup-plugin-node-polyfills");
const rollupNodeResolve = require("@rollup/plugin-node-resolve").default;
const rollupReplace = require("@rollup/plugin-replace");
const { terser: rollupTerser } = require("rollup-plugin-terser");
import plumber from "gulp-plumber";
import through from "through2";
import chalk from "chalk";
import newer from "gulp-newer";
import babel from "gulp-babel";
import fancyLog from "fancy-log";
import filter from "gulp-filter";
import gulp from "gulp";
import path from "path";
import { rollup } from "rollup";
import { fileURLToPath } from "url";
import pluginBabel from "@rollup/plugin-babel";
import rollupBabelSource from "./scripts/rollup-plugin-babel-source.js";
import rollupCommonJs from "@rollup/plugin-commonjs";
import rollupJson from "@rollup/plugin-json";
import rollupNodePolyfills from "rollup-plugin-node-polyfills";
import { default as rollupNodeResolve } from "@rollup/plugin-node-resolve";
import rollupReplace from "@rollup/plugin-replace";
import { terser as rollupTerser } from "rollup-plugin-terser";

const rollupBabel = pluginBabel.default;
const defaultSourcesGlob = "./@(codemods|packages|eslint)/*/src/**/*.{js,ts}";

/**
Expand Down Expand Up @@ -71,9 +72,9 @@ function rename(fn) {
}

function buildBabel(exclude, sourcesGlob = defaultSourcesGlob) {
const base = __dirname;
const base = path.dirname(fileURLToPath(import.meta.url));

let stream = gulp.src(sourcesGlob, { base: __dirname });
let stream = gulp.src(sourcesGlob, { base });

if (exclude) {
const filters = exclude.map(p => `!**/${p.src}/**`);
Expand Down Expand Up @@ -108,13 +109,14 @@ if (process.env.CIRCLE_PR_NUMBER) {
versionSuffix = "+pr." + process.env.CIRCLE_PR_NUMBER;
}

const babelVersion =
require("./packages/babel-core/package.json").version + versionSuffix;
function buildRollup(packages) {
const babelVersionNumber = await import("./packages/babel-core/package.json")
.version;
const babelVersion = babelVersionNumber + versionSuffix;
async function buildRollup(packages) {
const sourcemap = process.env.NODE_ENV === "production";
return Promise.all(
packages.map(async ({ src, format, dest, name, filename }) => {
const pkgJSON = require("./" + src + "/package.json");
const pkgJSON = await import("./" + src + "/package.json");
const version = pkgJSON.version + versionSuffix;
const { dependencies = {}, peerDependencies = {} } = pkgJSON;
const external = Object.keys(dependencies).concat(
Expand All @@ -130,7 +132,7 @@ function buildRollup(packages) {
}
const input = getIndexFromPackage(src);
fancyLog(`Compiling '${chalk.cyan(input)}' with rollup ...`);
const bundle = await rollup.rollup({
const bundle = await rollup({
input,
external,
plugins: [
Expand Down Expand Up @@ -213,6 +215,9 @@ function buildRollup(packages) {
);
}

const babelParserVersionNumber = await import(
"./packages/babel-parser/package.json"
).version;
const libBundles = [
"packages/babel-parser",
"packages/babel-plugin-proposal-optional-chaining",
Expand Down
File renamed without changes.
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
"version": "7.12.9",
"private": true,
"license": "MIT",
"type": "module",
"scripts": {
"bootstrap": "make bootstrap",
"codesandbox:build": "make build-no-bundle",
Expand Down Expand Up @@ -102,4 +103,4 @@
"built": false
}
}
}
}
13 changes: 6 additions & 7 deletions packages/babel-types/scripts/generateTypeHelpers.mjs
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
"use strict";
import path from "path";
import chalk from "chalk";
import generateBuilders from "./generators/generateBuilders";
import generateValidators from "./generators/generateValidators";
import generateAsserts from "./generators/generateAsserts";
import generateConstants from "./generators/generateConstants";
import format from "../../../scripts/utils/formatCode";
import writeFile from "../../../scripts/utils/writeFileAndMkDir";
import generateBuilders from "./generators/generateBuilders.mjs";
import generateValidators from "./generators/generateValidators.mjs";
import generateAsserts from "./generators/generateAsserts.mjs";
import generateConstants from "./generators/generateConstants.mjs";
import format from "../../../scripts/utils/formatCode.js";
import writeFile from "../../../scripts/utils/writeFileAndMkDir.js";

const baseDir = path.join(__dirname, "../src");

Expand Down
2 changes: 1 addition & 1 deletion scripts/generators/readmes.js
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ packages
.filter(x => x !== "README.md") // ignore root readme
.filter(x => x.indexOf("babel-preset-stage-") === -1) // ignore stages
.forEach(id => {
const { name, description } = getPackageJson(id);
const { name, description } = await getPackageJson(id);
const readmePath = join(packageDir, id, "README.md");

// generate
Expand Down
2 changes: 1 addition & 1 deletion scripts/parser-tests/flow/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { promises as fs } from "fs";
import fs from "fs/promises";
import path from "path";
import merge from "mergeiterator";
import TestRunner from "../utils/parser-test-runner";
Expand Down
2 changes: 1 addition & 1 deletion scripts/parser-tests/typescript/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import path from "path";
import { promises as fs } from "fs";
import fs from "fs/promises";
import ts from "../../../build/typescript";
import TestRunner from "../utils/parser-test-runner";
import parsingErrorCodes from "./error-codes";
Expand Down
4 changes: 2 additions & 2 deletions scripts/parser-tests/utils/parser-test-runner.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
"use strict";

import { promises as fs } from "fs";
import fs from "fs/promises";
import chalk from "chalk";
const { parse: parser } = import("../../../packages/babel-parser");
import { parse as parser } from "../../../packages/babel-parser";

const dot = chalk.gray(".");

Expand Down
5 changes: 4 additions & 1 deletion scripts/rollup-plugin-babel-source.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
import path from "path";
import fs from "fs";
import { fileURLToPath } from "url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const dirname = path.join(__dirname, "..");

const BABEL_SRC_REGEXP =
Expand All @@ -15,7 +18,7 @@ export default function () {
if (matches) {
// check if browser field exists for this file and replace
const packageFolder = path.join(dirname, "packages", matches[1]);
const packageJson = import(path.join(packageFolder, "package.json"));
const packageJson = require(path.join(packageFolder, "package.json"));

if (
packageJson["browser"] &&
Expand Down
4 changes: 1 addition & 3 deletions scripts/utils/formatCode.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"use strict";

import prettier from "prettier";
// TODO: Remove this `if` in Babel 8
// Prettier only supports Node.js 10+, so we can fallback to not formatting
// o CI on older Node.js versions
Expand All @@ -10,8 +10,6 @@ if (process.env.CI && parseInt(process.versions.node, 10) < 10) {
return code;
};
} else {
const prettier = require("prettier");

returnValue = function formatCode(code, filename) {
filename = filename || __filename;
const prettierConfig = prettier.resolveConfig.sync(filename);
Expand Down

0 comments on commit bc950bd

Please sign in to comment.