Skip to content

Commit

Permalink
fix: comments
Browse files Browse the repository at this point in the history
  • Loading branch information
devchenyan committed May 29, 2024
1 parent 5bfb707 commit 625a274
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 20 deletions.
Original file line number Diff line number Diff line change
@@ -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) {
Expand All @@ -22,4 +8,20 @@ export function stringToHump(key: string) {
return keyArr.join('')
}

export default { jsonToHump, stringToHump }
type Json = Record<string, unknown>

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 }
5 changes: 3 additions & 2 deletions packages/neuron-wallet/src/utils/multisig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
@@ -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)
})
})

1 comment on commit 625a274

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Packaging for test is done in 9287389102

Please sign in to comment.