diff --git a/packages/babel-core/src/index.js b/packages/babel-core/src/index.js index 3e03ec046e..164ccc21a9 100644 --- a/packages/babel-core/src/index.js +++ b/packages/babel-core/src/index.js @@ -1,64 +1,29 @@ -import fs from "fs"; - -export { default as File } from "./transformation/file"; -export { default as buildExternalHelpers } from "./tools/build-external-helpers"; -export { default as template } from "babel-template"; -export { default as resolvePlugin } from "./helpers/resolve-plugin"; -export { default as resolvePreset } from "./helpers/resolve-preset"; +export File from "./transformation/file"; +export buildExternalHelpers from "./tools/build-external-helpers"; +export resolvePlugin from "./helpers/resolve-plugin"; +export resolvePreset from "./helpers/resolve-preset"; export { version } from "../package"; export { getEnv } from "./helpers/environment"; -import * as util from "./util"; -export { util }; +export * as util from "./util"; -import * as messages from "babel-messages"; -export { messages }; +export * as messages from "babel-messages"; +export * as types from "babel-types"; +export traverse from "babel-traverse"; +export template from "babel-template"; -import * as t from "babel-types"; -export { t as types }; - -import traverse from "babel-traverse"; -export { traverse }; - -import OptionManager from "./transformation/file/options/option-manager"; -export { OptionManager }; +export OptionManager from "./transformation/file/options/option-manager"; export function Plugin(alias) { throw new Error(`The (${alias}) Babel 5 plugin is being run with Babel 6.`); } -import { transform, analyse, transformFromAst } from "./transformation/pipeline"; -export { transform, analyse, transformFromAst }; +export { + transform, + analyse, + transformFromAst, + transformFile, + transformFileSync, +} from "./transformation/pipeline"; -export function transformFile(filename: string, opts?: Object, callback: Function) { - if (typeof opts === "function") { - callback = opts; - opts = {}; - } - - opts.filename = filename; - - fs.readFile(filename, function (err, code) { - let result; - - if (!err) { - try { - result = transform(code, opts); - } catch (_err) { - err = _err; - } - } - - if (err) { - callback(err); - } else { - callback(null, result); - } - }); -} - -export function transformFileSync(filename: string, opts?: Object = {}): string { - opts.filename = filename; - return transform(fs.readFileSync(filename, "utf8"), opts); -} diff --git a/packages/babel-core/src/transformation/pipeline.js b/packages/babel-core/src/transformation/pipeline.js index c38edd7312..c50ac6fc99 100644 --- a/packages/babel-core/src/transformation/pipeline.js +++ b/packages/babel-core/src/transformation/pipeline.js @@ -1,4 +1,6 @@ /* global BabelFileResult, BabelFileMetadata */ +import fs from "fs"; + import normalizeAst from "../helpers/normalize-ast"; import Plugin from "./plugin"; import File from "./file"; @@ -31,3 +33,48 @@ export function transformFromAst(ast: Object, code: string, opts: Object): Babel return file.transform(); }); } + +export function transformFile(filename: string, opts?: Object, callback: Function) { + if (typeof opts === "function") { + callback = opts; + opts = {}; + } + + opts.filename = filename; + + fs.readFile(filename, function (err, code) { + let result; + + if (!err) { + try { + const file = new File(opts); + result = file.wrap(code, function () { + file.addCode(code); + file.parseCode(code); + return file.transform(); + }); + } catch (_err) { + err = _err; + } + } + + if (err) { + callback(err); + } else { + callback(null, result); + } + }); +} + +export function transformFileSync(filename: string, opts?: Object = {}): string { + opts.filename = filename; + + const code = fs.readFileSync(filename, "utf8"); + const file = new File(opts); + + return file.wrap(code, function () { + file.addCode(code); + file.parseCode(code); + return file.transform(); + }); +}