diff --git a/lib/third-party-libs.js.flow b/lib/third-party-libs.js.flow index 7e6fd06d5d..1aefc40618 100644 --- a/lib/third-party-libs.js.flow +++ b/lib/third-party-libs.js.flow @@ -7,3 +7,27 @@ declare module "micromatch" { nocase: boolean, }): Array; } + +declare module "resolve" { + declare export default { + sync: (string, {| basedir: string |}) => string; + }; +} + +declare module "json5" { + declare export default { + parse: (string) => mixed, + }; +} + +declare module "lodash/defaults" { + declare export default (T, Object) => T; +} + +declare module "lodash/clone" { + declare export default (obj: T) => T; + } + +declare module "lodash/merge" { + declare export default (T, Object) => T; +} diff --git a/packages/babel-core/src/config/helpers/merge.js b/packages/babel-core/src/config/helpers/merge.js deleted file mode 100644 index 344f3e181c..0000000000 --- a/packages/babel-core/src/config/helpers/merge.js +++ /dev/null @@ -1,21 +0,0 @@ -// @flow - -import mergeWith from "lodash/mergeWith"; - -export default function(dest?: T, src?: T) { - if (!dest || !src) return; - - mergeWith(dest, src, function (a, b) { - if (b && Array.isArray(a)) { - const newArray = b.slice(0); - - for (const item of a) { - if (newArray.indexOf(item) < 0) { - newArray.push(item); - } - } - - return newArray; - } - }); -} diff --git a/packages/babel-core/src/config/option-manager.js b/packages/babel-core/src/config/option-manager.js index 456cdc43c1..a5cfc63bbd 100644 --- a/packages/babel-core/src/config/option-manager.js +++ b/packages/babel-core/src/config/option-manager.js @@ -4,7 +4,7 @@ import * as context from "../index"; import Plugin from "./plugin"; import * as messages from "babel-messages"; import defaults from "lodash/defaults"; -import merge from "./helpers/merge"; +import merge from "lodash/merge"; import removed from "./removed"; import buildConfigChain from "./build-config-chain"; import path from "path";