From 6425c475374972d3f11b9340a08a37d171714b25 Mon Sep 17 00:00:00 2001 From: Henry Zhu Date: Wed, 17 Feb 2016 19:41:51 -0500 Subject: [PATCH] Show a better error when trying to use a babel 5 plugin --- packages/babel-core/src/api/node.js | 4 ++++ packages/babel-core/test/option-manager.js | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 packages/babel-core/test/option-manager.js diff --git a/packages/babel-core/src/api/node.js b/packages/babel-core/src/api/node.js index c22062222f..4cd086ea0b 100644 --- a/packages/babel-core/src/api/node.js +++ b/packages/babel-core/src/api/node.js @@ -26,6 +26,10 @@ export { traverse }; import OptionManager from "../transformation/file/options/option-manager"; export { OptionManager }; +export function Plugin(alias) { + throw new Error(`The (${alias}) Babel 5 plugin is being run with Babel 6.`); +} + // import Pipeline from "../transformation/pipeline"; diff --git a/packages/babel-core/test/option-manager.js b/packages/babel-core/test/option-manager.js new file mode 100644 index 0000000000..6c5c37118e --- /dev/null +++ b/packages/babel-core/test/option-manager.js @@ -0,0 +1,20 @@ +var assert = require("assert"); +var OptionManager = require("../lib/transformation/file/options/option-manager"); + +suite("option-manager", function () { + suite("memoisePluginContainer", function () { + test("throws for babel 5 plugin", function() { + return assert.throws( + function () { + OptionManager.memoisePluginContainer( + function (ref) { + var Plugin = ref.Plugin; + return new Plugin("object-assign", {}); + } + ); + }, + /Babel 5 plugin is being run with Babel 6/ + ); + }) + }); +});