From 258e82ca13a627a7392f46b7b4714b48c67b5398 Mon Sep 17 00:00:00 2001 From: Logan Smyth Date: Mon, 3 Apr 2017 14:51:52 -0700 Subject: [PATCH] Expose a function rather than a class from option-manager. --- packages/babel-core/src/config/index.js | 4 ++-- .../babel-core/src/config/option-manager.js | 6 +++++- packages/babel-core/test/option-manager.js | 20 +++++++------------ 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/packages/babel-core/src/config/index.js b/packages/babel-core/src/config/index.js index 3c8f49a157..238bc81cdf 100644 --- a/packages/babel-core/src/config/index.js +++ b/packages/babel-core/src/config/index.js @@ -1,5 +1,5 @@ import type Plugin from "./plugin"; -import OptionManager from "./option-manager"; +import manageOptions from "./option-manager"; export type ResolvedConfig = { options: Object, @@ -10,7 +10,7 @@ export type ResolvedConfig = { * Standard API for loading Babel configuration data. Not for public consumption. */ export default function loadConfig(opts: Object): ResolvedConfig|null { - const mergedOpts = new OptionManager().init(opts); + const mergedOpts = manageOptions(opts); if (!mergedOpts) return null; let passes = []; diff --git a/packages/babel-core/src/config/option-manager.js b/packages/babel-core/src/config/option-manager.js index a004a1a308..67c68fdb75 100644 --- a/packages/babel-core/src/config/option-manager.js +++ b/packages/babel-core/src/config/option-manager.js @@ -85,7 +85,11 @@ const ALLOWED_PLUGIN_KEYS = new Set([ "inherits", ]); -export default class OptionManager { +export default function manageOptions(opts?: Object) { + return new OptionManager().init(opts); +} + +class OptionManager { constructor() { this.options = OptionManager.createBareOptions(); } diff --git a/packages/babel-core/test/option-manager.js b/packages/babel-core/test/option-manager.js index fac8342c90..b0bbd18fea 100644 --- a/packages/babel-core/test/option-manager.js +++ b/packages/babel-core/test/option-manager.js @@ -1,12 +1,11 @@ import assert from "assert"; -import OptionManager from "../lib/config/option-manager"; +import manageOptions from "../lib/config/option-manager"; import path from "path"; describe("option-manager", () => { it("throws for babel 5 plugin", () => { return assert.throws(() => { - const opt = new OptionManager(); - opt.init({ + manageOptions({ plugins: [ ({ Plugin }) => new Plugin("object-assign", {}), ], @@ -18,8 +17,7 @@ describe("option-manager", () => { it("throws for removed babel 5 options", () => { return assert.throws( () => { - const opt = new OptionManager(); - opt.init({ + manageOptions({ "randomOption": true, }); }, @@ -30,8 +28,7 @@ describe("option-manager", () => { it("throws for removed babel 5 options", () => { return assert.throws( () => { - const opt = new OptionManager(); - opt.init({ + manageOptions({ "auxiliaryComment": true, "blacklist": true, }); @@ -44,8 +41,7 @@ describe("option-manager", () => { it("throws for resolved but erroring preset", () => { return assert.throws( () => { - const opt = new OptionManager(); - opt.init({ + manageOptions({ "presets": [path.join(__dirname, "fixtures/option-manager/not-a-preset")], }); }, @@ -57,8 +53,7 @@ describe("option-manager", () => { describe("presets", function () { function presetTest(name) { it(name, function () { - const opt = new OptionManager(); - const options = opt.init({ + const options = manageOptions({ "presets": [path.join(__dirname, "fixtures/option-manager/presets", name)], }); @@ -69,8 +64,7 @@ describe("option-manager", () => { function presetThrowsTest(name, msg) { it(name, function () { - const opt = new OptionManager(); - assert.throws(() => opt.init({ + assert.throws(() => manageOptions({ "presets": [path.join(__dirname, "fixtures/option-manager/presets", name)], }), msg); });