Skip to content

Commit

Permalink
Replace clone dependency with cloneDeep from lodash (MetaMask#7926)
Browse files Browse the repository at this point in the history
This was done to reduce the number of direct dependencies we have. It
should be functionally equivalent. The bundle size should not change,
as we use `clone` as a transitive dependency in a number of places.
  • Loading branch information
Gudahtt authored and yqrashawn committed Feb 10, 2020
1 parent 78ff844 commit bee4d05
Show file tree
Hide file tree
Showing 51 changed files with 107 additions and 114 deletions.
4 changes: 2 additions & 2 deletions app/scripts/controllers/permissions/permissionsLog.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

import clone from 'clone'
import { cloneDeep } from 'lodash'
import { isValidAddress } from 'ethereumjs-util'
import {
CAVEAT_NAMES,
Expand Down Expand Up @@ -374,7 +374,7 @@ function cloneObj (obj) {

for (let i = 3; i > 1; i--) {
try {
return clone(obj, false, i)
return cloneDeep(obj, false, i)
} catch (_) {}
}
return { ...obj }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import jsonDiffer from 'fast-json-patch'
import clone from 'clone'
import { cloneDeep } from 'lodash'

/** @module*/
export default {
Expand Down Expand Up @@ -57,10 +57,8 @@ function generateHistoryEntry (previousState, newState, note) {
@returns {Object}
*/
function replayHistory (_shortHistory) {
const shortHistory = clone(_shortHistory)
return shortHistory.reduce(
(val, entry) => jsonDiffer.applyPatch(val, entry).newDocument
)
const shortHistory = cloneDeep(_shortHistory)
return shortHistory.reduce((val, entry) => jsonDiffer.applyPatch(val, entry).newDocument)
}

/**
Expand All @@ -69,7 +67,7 @@ function replayHistory (_shortHistory) {
*/
function snapshotFromTxMeta (txMeta) {
// create txMeta snapshot for history
const snapshot = clone(txMeta)
const snapshot = cloneDeep(txMeta)
// dont include previous history in this snapshot
delete snapshot.history
return snapshot
Expand Down
6 changes: 3 additions & 3 deletions app/scripts/lib/getObjStructure.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import clone from 'clone'
import { cloneDeep } from 'lodash'

export default getObjStructure

Expand All @@ -24,8 +24,8 @@ export default getObjStructure
*
*/
function getObjStructure (obj) {
const structure = clone(obj)
return deepMap(structure, value => {
const structure = cloneDeep(obj)
return deepMap(structure, (value) => {
return value === null ? 'null' : typeof value
})
}
Expand Down
4 changes: 2 additions & 2 deletions app/scripts/migrations/002.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
const version = 2

import clone from 'clone'
import { cloneDeep } from 'lodash'

export default {
version,

migrate: function (originalVersionedData) {
const versionedData = clone(originalVersionedData)
const versionedData = cloneDeep(originalVersionedData)
versionedData.meta.version = version
try {
if (versionedData.data.config.provider.type === 'etherscan') {
Expand Down
4 changes: 2 additions & 2 deletions app/scripts/migrations/003.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ const version = 3
const oldTestRpc = 'https://rawtestrpc.metamask.io/'
const newTestRpc = 'https://testrpc.metamask.io/'

import clone from 'clone'
import { cloneDeep } from 'lodash'

export default {
version,

migrate: function (originalVersionedData) {
const versionedData = clone(originalVersionedData)
const versionedData = cloneDeep(originalVersionedData)
versionedData.meta.version = version
try {
if (versionedData.data.config.provider.rpcTarget === oldTestRpc) {
Expand Down
4 changes: 2 additions & 2 deletions app/scripts/migrations/004.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
const version = 4

import clone from 'clone'
import { cloneDeep } from 'lodash'

export default {
version,

migrate: function (versionedData) {
const safeVersionedData = clone(versionedData)
const safeVersionedData = cloneDeep(versionedData)
safeVersionedData.meta.version = version
try {
if (safeVersionedData.data.config.provider.type !== 'rpc') {
Expand Down
4 changes: 2 additions & 2 deletions app/scripts/migrations/005.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ This migration moves state from the flat state trie into KeyringController subst
*/

import clone from 'clone'
import { cloneDeep } from 'lodash'

export default {
version,

migrate: function (originalVersionedData) {
const versionedData = clone(originalVersionedData)
const versionedData = cloneDeep(originalVersionedData)
versionedData.meta.version = version
try {
const state = versionedData.data
Expand Down
4 changes: 2 additions & 2 deletions app/scripts/migrations/006.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ This migration moves KeyringController.selectedAddress to PreferencesController.
*/

import clone from 'clone'
import { cloneDeep } from 'lodash'

export default {
version,

migrate: function (originalVersionedData) {
const versionedData = clone(originalVersionedData)
const versionedData = cloneDeep(originalVersionedData)
versionedData.meta.version = version
try {
const state = versionedData.data
Expand Down
4 changes: 2 additions & 2 deletions app/scripts/migrations/007.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ This migration breaks out the TransactionManager substate
*/

import clone from 'clone'
import { cloneDeep } from 'lodash'

export default {
version,

migrate: function (originalVersionedData) {
const versionedData = clone(originalVersionedData)
const versionedData = cloneDeep(originalVersionedData)
versionedData.meta.version = version
try {
const state = versionedData.data
Expand Down
4 changes: 2 additions & 2 deletions app/scripts/migrations/008.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ This migration breaks out the NoticeController substate
*/

import clone from 'clone'
import { cloneDeep } from 'lodash'

export default {
version,

migrate: function (originalVersionedData) {
const versionedData = clone(originalVersionedData)
const versionedData = cloneDeep(originalVersionedData)
versionedData.meta.version = version
try {
const state = versionedData.data
Expand Down
6 changes: 2 additions & 4 deletions app/scripts/migrations/009.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,13 @@ This migration breaks out the CurrencyController substate
*/

import { merge } from 'lodash'

import clone from 'clone'
import { cloneDeep, merge } from 'lodash'

export default {
version,

migrate: function (originalVersionedData) {
const versionedData = clone(originalVersionedData)
const versionedData = cloneDeep(originalVersionedData)
versionedData.meta.version = version
try {
const state = versionedData.data
Expand Down
6 changes: 2 additions & 4 deletions app/scripts/migrations/010.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,13 @@ This migration breaks out the ShapeShiftController substate
*/

import { merge } from 'lodash'

import clone from 'clone'
import { cloneDeep, merge } from 'lodash'

export default {
version,

migrate: function (originalVersionedData) {
const versionedData = clone(originalVersionedData)
const versionedData = cloneDeep(originalVersionedData)
versionedData.meta.version = version
try {
const state = versionedData.data
Expand Down
4 changes: 2 additions & 2 deletions app/scripts/migrations/011.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ This migration removes the discaimer state from our app, which was integrated in
*/

import clone from 'clone'
import { cloneDeep } from 'lodash'

export default {
version,

migrate: function (originalVersionedData) {
const versionedData = clone(originalVersionedData)
const versionedData = cloneDeep(originalVersionedData)
versionedData.meta.version = version
try {
const state = versionedData.data
Expand Down
4 changes: 2 additions & 2 deletions app/scripts/migrations/012.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ This migration modifies our notices to delete their body after being read.
*/

import clone from 'clone'
import { cloneDeep } from 'lodash'

export default {
version,

migrate: function (originalVersionedData) {
const versionedData = clone(originalVersionedData)
const versionedData = cloneDeep(originalVersionedData)
versionedData.meta.version = version
try {
const state = versionedData.data
Expand Down
4 changes: 2 additions & 2 deletions app/scripts/migrations/013.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ This migration modifies the network config from ambiguous 'testnet' to explicit
*/

import clone from 'clone'
import { cloneDeep } from 'lodash'

export default {
version,

migrate: function (originalVersionedData) {
const versionedData = clone(originalVersionedData)
const versionedData = cloneDeep(originalVersionedData)
versionedData.meta.version = version
try {
const state = versionedData.data
Expand Down
4 changes: 2 additions & 2 deletions app/scripts/migrations/014.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ This migration removes provider from config and moves it too NetworkController.
*/

import clone from 'clone'
import { cloneDeep } from 'lodash'

export default {
version,

migrate: function (originalVersionedData) {
const versionedData = clone(originalVersionedData)
const versionedData = cloneDeep(originalVersionedData)
versionedData.meta.version = version
try {
const state = versionedData.data
Expand Down
4 changes: 2 additions & 2 deletions app/scripts/migrations/015.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ to a 'failed' stated
*/

import clone from 'clone'
import { cloneDeep } from 'lodash'

export default {
version,

migrate: function (originalVersionedData) {
const versionedData = clone(originalVersionedData)
const versionedData = cloneDeep(originalVersionedData)
versionedData.meta.version = version
try {
const state = versionedData.data
Expand Down
4 changes: 2 additions & 2 deletions app/scripts/migrations/016.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ to a 'failed' stated
*/

import clone from 'clone'
import { cloneDeep } from 'lodash'

export default {
version,

migrate: function (originalVersionedData) {
const versionedData = clone(originalVersionedData)
const versionedData = cloneDeep(originalVersionedData)
versionedData.meta.version = version
try {
const state = versionedData.data
Expand Down
4 changes: 2 additions & 2 deletions app/scripts/migrations/017.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ This migration sets transactions who were retried and marked as failed to submit
*/

import clone from 'clone'
import { cloneDeep } from 'lodash'

export default {
version,

migrate: function (originalVersionedData) {
const versionedData = clone(originalVersionedData)
const versionedData = cloneDeep(originalVersionedData)
versionedData.meta.version = version
try {
const state = versionedData.data
Expand Down
4 changes: 2 additions & 2 deletions app/scripts/migrations/018.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ This migration updates "transaction state history" to diffs style
*/

import clone from 'clone'
import { cloneDeep } from 'lodash'

import txStateHistoryHelper from '../controllers/transactions/lib/tx-state-history-helper'

export default {
version,

migrate: function (originalVersionedData) {
const versionedData = clone(originalVersionedData)
const versionedData = cloneDeep(originalVersionedData)
versionedData.meta.version = version
try {
const state = versionedData.data
Expand Down
4 changes: 2 additions & 2 deletions app/scripts/migrations/019.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ whos nonce is too high
*/

import clone from 'clone'
import { cloneDeep } from 'lodash'

export default {
version,

migrate: function (originalVersionedData) {
const versionedData = clone(originalVersionedData)
const versionedData = cloneDeep(originalVersionedData)
versionedData.meta.version = version
try {
const state = versionedData.data
Expand Down
4 changes: 2 additions & 2 deletions app/scripts/migrations/020.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ so that we can version notices in the future.
*/

import clone from 'clone'
import { cloneDeep } from 'lodash'

export default {
version,

migrate: function (originalVersionedData) {
const versionedData = clone(originalVersionedData)
const versionedData = cloneDeep(originalVersionedData)
versionedData.meta.version = version
try {
const state = versionedData.data
Expand Down
4 changes: 2 additions & 2 deletions app/scripts/migrations/021.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ This migration removes the BlackListController from disk state
*/

import clone from 'clone'
import { cloneDeep } from 'lodash'

export default {
version,

migrate: function (originalVersionedData) {
const versionedData = clone(originalVersionedData)
const versionedData = cloneDeep(originalVersionedData)
versionedData.meta.version = version
try {
const state = versionedData.data
Expand Down
Loading

0 comments on commit bee4d05

Please sign in to comment.