mirror of
https://github.com/hanzoai/babel.git
synced 2026-09-24 16:56:45 +00:00
* enable noImplicitAny * codemod (#14602) * Improve preset/plugin-typescript typings (#14603) * preset-typescript * transform-typescript * Update packages/babel-plugin-transform-typescript/src/enum.ts Co-authored-by: Nicolò Ribaudo <[email protected]> * prettier Co-authored-by: Nicolò Ribaudo <[email protected]> * Improve transform-runtime typings (#14605) * enable noImplicitAny * codemod (#14602) * Improve preset/plugin-typescript typings (#14603) * preset-typescript * transform-typescript * Update packages/babel-plugin-transform-typescript/src/enum.ts Co-authored-by: Nicolò Ribaudo <[email protected]> * prettier Co-authored-by: Nicolò Ribaudo <[email protected]> * improve transform-runtime typings Co-authored-by: Nicolò Ribaudo <[email protected]> * jsx (#14607) * Improve module transform packages typings (#14608) * improve babel-template typings (#14621) * Improve @babel/helper-* typings (#14620) * improve helper-function-name typings * helper hoist variables * helper-member-expression-to-functions * helper-simple-access * remap-async-to-generator * helper-annotate-as-pure * helper-builder-binary-assignment-operator-visitor * helper-check-duplicate-nodes * early return when export declaration is export all * split-export-declaration * helper-define-map * define-map * Update packages/babel-helper-builder-binary-assignment-operator-visitor/src/index.ts Co-authored-by: Nicolò Ribaudo <[email protected]> * review comments Co-authored-by: Nicolò Ribaudo <[email protected]> * improve helper-module-imports typings (#14623) * refactor: simplify ImportInjector._applyDefaults * helper-module-imports * map globals to the one used in Babel 8 * Improve fixture-test-runner typings (#14625) * plugin-test-runner * fixture-test-runner * Update packages/babel-helper-fixtures/src/index.ts Co-authored-by: Nicolò Ribaudo <[email protected]> Co-authored-by: Nicolò Ribaudo <[email protected]> * Improve preset-env typings (#14606) * refactor: move shipped-proposals to ts * preset-env * address review comments * Improve pipeline-operator typings (#14629) * refactor: simplify buildOptimizedSequenceExpression * proposal-pipeline-operator * address review comments * improve standalone typings (#14630) * babel-standalone * address review comment * Improve plugins typings (Part 1) (#14633) * change AssumptionFunction return type * helper-create-regexp-features-plugin * create-class-features-plugin * transform-for-of * improve unicode-escapes typings * transform-object-super * transform-react-constant-elements * proto-to-assign * function-name * flow-comments TS cannot infer Flow visitor type because we have both Flow type and Flow virtual type. * Improve code-frame/hightlight typings (#14643) * code-frame * map js-tokens to Babel 8 * highlight * Improve `@babel/types` typings (#14645) * bump to-fast-properties to v4 * types * mark node comments as mutable * Improve babel-core typings (#14622) Co-authored-by: Nicolò Ribaudo <[email protected]> * improve transform-classes typings (#14624) * Improve `@babel/generator` typings (#14644) * generator * refactor: merge {start,end}Terminatorless to printTerminatorless * inline buildYieldAwait * inline ExportDeclaration * also export Pos * let getPossibleRaw return string | void * Apply suggestions from code review Co-authored-by: Nicolò Ribaudo <[email protected]> Co-authored-by: liuxingbaoyu <[email protected]> * address review comments * do not export internal printer method * simplify needsWhitespace Co-authored-by: Nicolò Ribaudo <[email protected]> Co-authored-by: liuxingbaoyu <[email protected]> * Improve plugins typings (Part 2) (#14639) * exponentiation-operator * duplicate-keys * computed-properties * replace-supers * block-scoping * block-scoped-functions * syntax-typescript * record-and-tuple * private-property-in-object * partial-application * json-strings * function-sent * function-bind * class-static-block * async-generator-functions * Update packages/babel-plugin-transform-block-scoping/src/index.ts * address review comments * helper-replace-supers * Improve plugins typings (Part 3) (#14642) * external-helpers * bugfix * transform-parameters * object-rest-spread * destructuring-private * transform-destructuring * proposal-decorators * optional-chaining * helper-wrap-function * explode-assignable-expression * helper-compilation-targets * helper-plugin-utils * helpers * helper-validator-option * fix: allow "+" and "-" in MappedType .readonly/.optional * fixture-test-runner * remove charcodes from dependencies the charcodes transform will inline charCodes.* so we can remove it from dependencies * Improve traverse typings (#14648) * export removeProperties options * traverse * fix other packages typings * fix gatherNodeParts * downgrade to-fast-properties to v3 * fix typo * babel-core/normalize-file * add ignore comment property used by flow plugin * refine getLastStatement typings * fix babel-standalone rebase typing error * fix assert.rejects polyfill * simplify _param typings * supress Babel 7 AST errors * loosen defineType typings The AST typings are generated from defineType calls, so defineType should accept a string as type. * restore legacy code * Suppress data/core-js-compat importing errors Co-authored-by: Nicolò Ribaudo <[email protected]> Co-authored-by: liuxingbaoyu <[email protected]>
65 lines
1.8 KiB
JavaScript
65 lines
1.8 KiB
JavaScript
import fs from "fs";
|
|
import { join } from "path";
|
|
import { URL, fileURLToPath } from "url";
|
|
import { minify } from "terser"; // eslint-disable-line import/no-extraneous-dependencies
|
|
|
|
const HELPERS_FOLDER = new URL("../src/helpers", import.meta.url);
|
|
const IGNORED_FILES = new Set(["package.json"]);
|
|
|
|
export default async function generateHelpers() {
|
|
let output = `/*
|
|
* This file is auto-generated! Do not modify it directly.
|
|
* To re-generate run 'yarn gulp generate-runtime-helpers'
|
|
*/
|
|
|
|
import template from "@babel/template";
|
|
|
|
function helper(minVersion: string, source: string) {
|
|
return Object.freeze({
|
|
minVersion,
|
|
ast: () => template.program.ast(source, { preserveComments: true }),
|
|
})
|
|
}
|
|
|
|
export default Object.freeze({
|
|
`;
|
|
|
|
for (const file of (await fs.promises.readdir(HELPERS_FOLDER)).sort()) {
|
|
if (IGNORED_FILES.has(file)) continue;
|
|
if (file.startsWith(".")) continue; // ignore e.g. vim swap files
|
|
|
|
const [helperName] = file.split(".");
|
|
|
|
const filePath = join(fileURLToPath(HELPERS_FOLDER), file);
|
|
if (!file.endsWith(".js")) {
|
|
console.error("ignoring", filePath);
|
|
continue;
|
|
}
|
|
|
|
const fileContents = await fs.promises.readFile(filePath, "utf8");
|
|
const minVersionMatch = fileContents.match(
|
|
/^\s*\/\*\s*@minVersion\s+(?<minVersion>\S+)\s*\*\/\s*$/m
|
|
);
|
|
if (!minVersionMatch) {
|
|
throw new Error(`@minVersion number missing in ${filePath}`);
|
|
}
|
|
const { minVersion } = minVersionMatch.groups;
|
|
|
|
const source = await minify(fileContents, {
|
|
mangle: false,
|
|
// The _typeof helper has a custom directive that we must keep
|
|
compress: { directives: false },
|
|
});
|
|
|
|
output += `\
|
|
${JSON.stringify(helperName)}: helper(
|
|
${JSON.stringify(minVersion)},
|
|
${JSON.stringify(source.code)},
|
|
),
|
|
`;
|
|
}
|
|
|
|
output += "});";
|
|
return output;
|
|
}
|