From 625a274814175cd32828aca8d162268ed706844b Mon Sep 17 00:00:00 2001 From: devchenyan Date: Wed, 29 May 2024 21:52:00 +0800 Subject: [PATCH] fix: comments --- ...{json-to-hump.ts => deep-camelize-keys.ts} | 34 ++++++++++--------- packages/neuron-wallet/src/utils/multisig.ts | 5 +-- .../fixtures.json | 0 .../index.test.ts | 4 +-- 4 files changed, 23 insertions(+), 20 deletions(-) rename packages/neuron-wallet/src/utils/{json-to-hump.ts => deep-camelize-keys.ts} (50%) rename packages/neuron-wallet/tests/utils/{json-to-hump => deep-camelize-keys}/fixtures.json (100%) rename packages/neuron-wallet/tests/utils/{json-to-hump => deep-camelize-keys}/index.test.ts (56%) diff --git a/packages/neuron-wallet/src/utils/json-to-hump.ts b/packages/neuron-wallet/src/utils/deep-camelize-keys.ts similarity index 50% rename from packages/neuron-wallet/src/utils/json-to-hump.ts rename to packages/neuron-wallet/src/utils/deep-camelize-keys.ts index cc1dc6da93..9e0f5e21bd 100644 --- a/packages/neuron-wallet/src/utils/json-to-hump.ts +++ b/packages/neuron-wallet/src/utils/deep-camelize-keys.ts @@ -1,18 +1,4 @@ -export function jsonToHump(param: any) { - Object.keys(param).map(key => { - let item = param[key] - if (item instanceof Object || item instanceof Array) { - jsonToHump(item) - } - if (stringToHump(key) !== key) { - param[stringToHump(key)] = param[key] - delete param[key] - } - }) - return param -} - -export function stringToHump(key: string) { +function snakeToCamel(key: string) { let keyArr = key.split('_') for (let i = 0; i < keyArr.length; i++) { if (i !== 0) { @@ -22,4 +8,20 @@ export function stringToHump(key: string) { return keyArr.join('') } -export default { jsonToHump, stringToHump } +type Json = Record + +export function deepCamelizeKeys(param: Json): Json { + Object.keys(param).map(key => { + let item = param[key] + if (item instanceof Object) { + deepCamelizeKeys(item as Json) + } + if (snakeToCamel(key) !== key) { + param[snakeToCamel(key)] = param[key] + delete param[key] + } + }) + return param +} + +export default { deepCamelizeKeys } diff --git a/packages/neuron-wallet/src/utils/multisig.ts b/packages/neuron-wallet/src/utils/multisig.ts index 8eb11ebb70..39042f9a8e 100644 --- a/packages/neuron-wallet/src/utils/multisig.ts +++ b/packages/neuron-wallet/src/utils/multisig.ts @@ -6,7 +6,7 @@ import { OfflineSignJSON } from 'src/models/offline-sign' import Transaction from '../models/chain/transaction' import SystemScriptInfo from '../models/system-script-info' import Input from '../models/chain/input' -import { jsonToHump } from './json-to-hump' +import { deepCamelizeKeys } from './deep-camelize-keys' export const getMultisigStatus = (multisigConfig: MultisigConfigModel, signatures: Signatures) => { const multisigLockHash = scriptToHash( @@ -34,7 +34,8 @@ export const getMultisigStatus = (multisigConfig: MultisigConfigModel, signature export const parseMultisigTxJsonFromCkbCli = (tx: OfflineSignJSON): Transaction => { const { multisig_configs, transaction } = tx - const txObj = Transaction.fromObject(jsonToHump(transaction)) + // @ts-expect-error + const txObj = Transaction.fromObject(deepCamelizeKeys(transaction)) if (multisig_configs && Object.keys(multisig_configs).length) { const args = Object.keys(multisig_configs)[0] const lock = SystemScriptInfo.generateMultiSignScript(args) diff --git a/packages/neuron-wallet/tests/utils/json-to-hump/fixtures.json b/packages/neuron-wallet/tests/utils/deep-camelize-keys/fixtures.json similarity index 100% rename from packages/neuron-wallet/tests/utils/json-to-hump/fixtures.json rename to packages/neuron-wallet/tests/utils/deep-camelize-keys/fixtures.json diff --git a/packages/neuron-wallet/tests/utils/json-to-hump/index.test.ts b/packages/neuron-wallet/tests/utils/deep-camelize-keys/index.test.ts similarity index 56% rename from packages/neuron-wallet/tests/utils/json-to-hump/index.test.ts rename to packages/neuron-wallet/tests/utils/deep-camelize-keys/index.test.ts index 5e1c6956df..2545c058e7 100644 --- a/packages/neuron-wallet/tests/utils/json-to-hump/index.test.ts +++ b/packages/neuron-wallet/tests/utils/deep-camelize-keys/index.test.ts @@ -1,9 +1,9 @@ -import { jsonToHump } from '../../../src/utils/json-to-hump' +import { deepCamelizeKeys } from '../../../src/utils/deep-camelize-keys' import fixtures from './fixtures.json' describe('test json to hump', () => { it('json to hump', () => { - const result = jsonToHump(fixtures.value) + const result = deepCamelizeKeys(fixtures.value) expect(fixtures.expected).toEqual(result) }) })