All files / src/utils conversion.ts

100% Statements 25/25
100% Branches 20/20
100% Functions 5/5
100% Lines 25/25

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 461x           1x 3x           1x 21x             1x 9x     1x 1x 1x 4x 4x 2x 2x 4x 1x 1x     1x 1x 1x 2x 2x 2x 1x 1x  
import {toCamel, toSnake} from "./string";
 
/**
 * 文字列や null/undefined を undefined に寄せる。
 * API送信時に「値なしを消したい」ケース向け。
 */
export const emptyToUndef = (v: unknown): any =>
  v === null || v === undefined || v === '' ? undefined : v
 
/**
 * 文字列や undefined を null に寄せる。
 * フォーム入力(未選択や空入力)で null に統一したいケース向け。
 */
export const emptyToNull = (v: unknown): any =>
  v === null || v === undefined || v === '' ? null : v
 
/**
 * nullやundefinedを空文字に寄せる
 * 必須入力だが初期値がnullになり得るフォーム項目の前処理
 * @param v
 */
export const nullToEmpty = (v: unknown): any =>
  v === null || v === undefined ? '' : v
 
// オブジェクトのキーを camel → snake に変換
export const toSnakeKeys = (obj: Record<string, any>) => {
  const result: Record<string, any> = {}
  for (const key of Object.keys(obj)) {
    const value = obj[key]
    if (value !== undefined && value !== null) {
      result[toSnake(key)] = value
    }
  }
  return result
}
 
// オブジェクトのキーを snake → camel に変換
export const toCamelKeys = (obj: Record<string, any>) => {
  const result: Record<string, any> = {}
  for (const key of Object.keys(obj)) {
    const value = obj[key]
    result[toCamel(key)] = value
  }
  return result
}