name-case-transform

name case transform tool

Usage no npm install needed!

<script type="module">
  import nameCaseTransform from 'https://cdn.skypack.dev/name-case-transform';
</script>

README

风格转换工具

name case transform tool

文档:中文 | English

  • 支持 Pascal、小驼峰、连字符、下划线命名风格互转。

  • 支持字符串和 JSON(key)。

API

caseTransform((dataSource: [String | Object]), (targetCase: String), [(sourceCase: String)]);
  • dataSource: 想要转换的数据。

  • targetCase: 目标命名风格。

    • -: 连字符命名风格,比如:my-name.
    • _: 下划线命名风格, 比如: my_name.
    • A: Pascal 命名风格, eg: MyName.
    • a: 小驼峰命名风格, eg: myName.
  • 数据源命名风格: 非必须。(程序会自动推断源数据风格,但是判断可能不及预期(多种风格混合)。这个时候,可以指定数据源命名风格。)

    • -: 连字符命名风格,比如:my-name.
    • _: 下划线命名风格, 比如: my_name.
    • A: Pascal 命名风格, eg: MyName.
    • a: 小驼峰命名风格, eg: myName.

用法

引入

import caseTransform from "name-case-transform";

转换

字符串:

let res = caseTransform("my_name", "A"); // MyName;

// 指定源数据命名风格
let res = caseTransform("my_name", "A", "_"); // MyName;

JSON:

let data = {
  res_code: 4000,
  res_list: [
    {
      my_name: "admin1",
      password: "12323",
    },
    {
      my_name: "admin2",
      password: "123123",
    },
  ],
};

let res = caseTransform(data, "a");

// 指定源数据命名风格
let res = caseTransform(data, "a", "_");

结果:

{
  resCode:4000,
  resList:[
    {
      myName:"admin1",
      password:"12323"
    },
    {
      myName:"admin2",
      password:"123123"
    }
  ]
}

Q-A

  1. 如果几种风格混合在一起,如何自动推断类型?(按照下面先后顺序采用)
  • 字符串或者 JSON(key)值,包含_, 推断为下划线风格("_")。
  • 字符串或者 JSON(key)值,包含-, 推断为连字符风格("-")。
  • 字符串或者 JSON(key)值,第一个字母为大写,推断为 Pascal 风格。
  • 其他情况,推断为小驼峰风格。

其他

兼容性问题

因为程序中多是使用正则,所以在不支持正则的环境将会报错!!!