diff --git a/packages/babel-types/src/builders/builder.ts b/packages/babel-types/src/builders/builder.ts index 899d2d45e55a..ae28dfc54b59 100644 --- a/packages/babel-types/src/builders/builder.ts +++ b/packages/babel-types/src/builders/builder.ts @@ -1,4 +1,3 @@ -import loClone from "lodash/clone"; import { NODE_FIELDS, BUILDER_KEYS } from "../definitions"; import validate from "../validators/validate"; import type * as t from ".."; @@ -23,7 +22,9 @@ export default function builder( let arg; if (i < countArgs) arg = args[i]; - if (arg === undefined) arg = loClone(field.default); + if (arg === undefined) { + arg = Array.isArray(field.default) ? [] : field.default; + } node[key] = arg; i++; diff --git a/packages/babel-types/src/definitions/utils.ts b/packages/babel-types/src/definitions/utils.ts index 92ba7b32c3cd..e59932c16d38 100644 --- a/packages/babel-types/src/definitions/utils.ts +++ b/packages/babel-types/src/definitions/utils.ts @@ -280,7 +280,7 @@ export default function defineType( for (const key of keys) { const field = inherits.fields[key]; fields[key] = { - default: field.default, + default: Array.isArray(field.default) ? [] : field.default, optional: field.optional, validate: field.validate, };