From 654c78f656aaf4e56200f21812b5497c546bc08f Mon Sep 17 00:00:00 2001 From: Daniel Tschinder Date: Thu, 8 Nov 2018 20:15:17 -0800 Subject: [PATCH] Fix browser files to have the same API as the nodejs ones --- .../babel-core/src/transform-file-browser.js | 25 +++++++++++++++---- .../src/transform-file-sync-browser.js | 5 ---- packages/babel-core/src/transform-file.js | 8 ++++++ 3 files changed, 28 insertions(+), 10 deletions(-) delete mode 100644 packages/babel-core/src/transform-file-sync-browser.js diff --git a/packages/babel-core/src/transform-file-browser.js b/packages/babel-core/src/transform-file-browser.js index ed74df780202..fc1b12af0e50 100644 --- a/packages/babel-core/src/transform-file-browser.js +++ b/packages/babel-core/src/transform-file-browser.js @@ -1,14 +1,29 @@ // @flow -import type { FileResult } from "./transformation"; -export default function transformFile( - filename: string, - opts?: Object = {}, - callback: (?Error, FileResult | null) => void, +// duplicated from transform-file so we do not have to import anything here +type TransformFile = { + (filename: string, callback: Function): void, + (filename: string, opts: ?Object, callback: Function): void, +}; + +export const transformFile: TransformFile = (function transformFile( + filename, + opts, + callback, ) { if (typeof opts === "function") { callback = opts; } callback(new Error("Transforming files is not supported in browsers"), null); +}: Function); + +export function transformFileSync() { + throw new Error("Transforming files is not supported in browsers"); +} + +export function transformFileAsync() { + return Promise.reject( + new Error("Transforming files is not supported in browsers"), + ); } diff --git a/packages/babel-core/src/transform-file-sync-browser.js b/packages/babel-core/src/transform-file-sync-browser.js deleted file mode 100644 index 144242f3e383..000000000000 --- a/packages/babel-core/src/transform-file-sync-browser.js +++ /dev/null @@ -1,5 +0,0 @@ -// @flow - -export default function transformFileSync() { - throw new Error("Transforming files is not supported in browsers"); -} diff --git a/packages/babel-core/src/transform-file.js b/packages/babel-core/src/transform-file.js index 1011bd8a4d89..d3c9ab640fc3 100644 --- a/packages/babel-core/src/transform-file.js +++ b/packages/babel-core/src/transform-file.js @@ -9,6 +9,14 @@ import { type FileResultCallback, } from "./transformation"; +import typeof * as transformFileBrowserType from "./transform-file-browser"; +import typeof * as transformFileType from "./transform-file"; + +// Kind of gross, but essentially asserting that the exports of this module are the same as the +// exports of transform-file-browser, since this file may be replaced at bundle time with +// transform-file-browser. +((({}: any): $Exact): $Exact); + type TransformFile = { (filename: string, callback: FileResultCallback): void, (filename: string, opts: ?InputOptions, callback: FileResultCallback): void,