Convert @babel/traverse to TypeScript (#12488)

Co-authored-by: Nicolò Ribaudo <nicolo.ribaudo@gmail.com>
This commit is contained in:
Bogdan Savluk
2021-01-24 01:33:09 +01:00
committed by GitHub
parent cd090e9842
commit d98418efbe
37 changed files with 2023 additions and 368 deletions

View File

@@ -86,13 +86,12 @@ function rename(fn) {
}
/**
*
* @typedef {("asserts" | "builders" | "constants" | "validators")} HelperKind
* @param {HelperKind} helperKind
* @param {string} generator
* @param {string} pkg
* @param {string} filename
* @param {string} message
*/
function generateTypeHelpers(helperKind, filename = "index.ts") {
const dest = `./packages/babel-types/src/${helperKind}/generated/`;
function generateHelpers(generator, dest, filename, message) {
const formatCode = require("./scripts/utils/formatCode");
const stream = gulp
.src(".", { base: __dirname })
@@ -101,14 +100,9 @@ function generateTypeHelpers(helperKind, filename = "index.ts") {
through.obj(function (file, enc, callback) {
file.path = filename;
file.contents = Buffer.from(
formatCode(
require(`./packages/babel-types/scripts/generators/${helperKind}`)(
filename
),
dest + file.path
)
formatCode(require(generator)(filename), dest + file.path)
);
fancyLog(`${chalk.green("✔")} Generated ${helperKind}`);
fancyLog(`${chalk.green("✔")} Generated ${message}`);
callback(null, file);
})
)
@@ -117,6 +111,35 @@ function generateTypeHelpers(helperKind, filename = "index.ts") {
return finish(stream);
}
/**
*
* @typedef {("asserts" | "builders" | "constants" | "validators")} TypesHelperKind
* @param {TypesHelperKind} helperKind
* @param {string} filename
*/
async function generateTypeHelpers(helperKind, filename = "index.ts") {
return generateHelpers(
`./packages/babel-types/scripts/generators/${helperKind}`,
`./packages/babel-types/src/${helperKind}/generated/`,
filename,
`@babel/types -> ${helperKind}`
);
}
/**
*
* @typedef {("asserts" | "validators" | "virtual-types")} TraverseHelperKind
* @param {TraverseHelperKind} helperKind
*/
async function generateTraverseHelpers(helperKind) {
return generateHelpers(
`./packages/babel-traverse/scripts/generators/${helperKind}`,
`./packages/babel-traverse/src/path/generated/`,
`${helperKind}.ts`,
`@babel/traverse -> ${helperKind}`
);
}
function generateStandalone() {
const dest = "./packages/babel-standalone/src/generated/";
const formatCode = require("./scripts/utils/formatCode");
@@ -383,7 +406,7 @@ const standaloneBundle = [
];
gulp.task("generate-type-helpers", () => {
fancyLog("Generating @babel/types dynamic functions");
fancyLog("Generating @babel/types and @babel/traverse dynamic functions");
return Promise.all([
generateTypeHelpers("asserts"),
@@ -392,6 +415,9 @@ gulp.task("generate-type-helpers", () => {
generateTypeHelpers("constants"),
generateTypeHelpers("validators"),
generateTypeHelpers("ast-types"),
generateTraverseHelpers("asserts"),
generateTraverseHelpers("validators"),
generateTraverseHelpers("virtual-types"),
]);
});