Skip to content

Commit

Permalink
feat
Browse files Browse the repository at this point in the history
  • Loading branch information
liuxingbaoyu committed Dec 23, 2023
1 parent 3dd529d commit e2eeddd
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 5 deletions.
2 changes: 1 addition & 1 deletion babel-worker.cjs
Expand Up @@ -31,7 +31,7 @@ exports.transform = async function transform(src, dest, opts = {}) {
return;
}
log(`Compiling '${chalk.cyan(src)}'...`);
const content = readFileSync(src, { encoding: "utf8" });
const content = readFileSync(src, "utf8");
const { code, map } = await transformAsync(content, {
filename: src,
sourceFileName: path.relative(path.dirname(dest), src),
Expand Down
2 changes: 2 additions & 0 deletions packages/babel-core/src/index.ts
Expand Up @@ -16,10 +16,12 @@ export { getEnv } from "./config/helpers/environment.ts";
// NOTE: Lazy re-exports aren't detected by the Node.js CJS-ESM interop.
// These are handled by pluginInjectNodeReexportsHints in our babel.config.js
// so that they can work well.
export * as parser from "@babel/parser";
export * as types from "@babel/types";
export { tokTypes } from "@babel/parser";
export { default as traverse } from "@babel/traverse";
export { default as template } from "@babel/template";
export { default as generate } from "@babel/generator";

export {
createConfigItem,
Expand Down
16 changes: 16 additions & 0 deletions packages/babel-core/test/api.js
Expand Up @@ -170,6 +170,22 @@ describe("api", function () {
expect(babel.types).toBeDefined();
});

it("exposes parser", function () {
expect(Object.keys(babel.parser)).toMatchInlineSnapshot(`
Array [
"parse",
"parseExpression",
"tokTypes",
]
`);
});

it("exposes generate", function () {
expect(babel.generate(parseSync("foo")).code).toMatchInlineSnapshot(
`"foo;"`,
);
});

it("exposes the parser's token types", function () {
expect(babel.tokTypes).toBeDefined();
});
Expand Down
2 changes: 2 additions & 0 deletions packages/babel-standalone/src/index.ts
Expand Up @@ -30,6 +30,8 @@ import type { InputOptions } from "@babel/core";

import { runScripts } from "./transformScriptTags.ts";

export { parser, traverse, template, generate, types } from "@babel/core";

// We import this file from another package using a relative path because it's
// meant to just be build-time script; it's ok because @babel/standalone is
// bundled anyway.
Expand Down
9 changes: 6 additions & 3 deletions packages/babel-standalone/test/babel.js
Expand Up @@ -3,9 +3,12 @@ const require = createRequire(import.meta.url);

// Basic smoke tests for @babel/standalone
describe("@babel/standalone", () => {
let Babel;
beforeAll(() => {
Babel = require("../babel.js");
const Babel = require("../babel.js");

it("export generate and parser", () => {
expect(
Babel.generate(Babel.parser.parse("foo")).code,
).toMatchInlineSnapshot(`"foo;"`);
});

it("handles the es2015-no-commonjs preset", () => {
Expand Down
2 changes: 1 addition & 1 deletion packages/babel-standalone/test/built-into-es5.js
Expand Up @@ -7,7 +7,7 @@ describe("@babel/standalone", () => {
it("should be built into ES5", () => {
const babelStandaloneSource = fs.readFileSync(
require.resolve("../babel.js"),
{ encoding: "utf8" },
"utf8",
);

expect(() => {
Expand Down

0 comments on commit e2eeddd

Please sign in to comment.