/** biome-ignore-all lint/suspicious/noExplicitAny: <> */ import * as dntShim from "../../_dnt.shims.js"; type SnakeCase = S extends Uppercase ? Lowercase : S extends `${infer P1}${infer P2}` ? P2 extends Uncapitalize ? `${Lowercase}${SnakeCase}` : `${Lowercase}_${SnakeCase>}` : Lowercase; type NonPlainObject = Date | RegExp | Map | Set | WeakMap | WeakSet | Promise | Error | ArrayBuffer | DataView | Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array | ((...args: any[]) => any) | typeof dntShim.dntGlobalThis; export type ToSnakeCaseKeys = T extends NonPlainObject ? T : T extends any[] ? Array> : T extends Record ? { [K in keyof T as SnakeCase]: ToSnakeCaseKeys; } : T; /** ## `keyname_to_snakecase` : 将数据`keyname`转化成[snake_case](https://developer.mozilla.org/zh-CN/docs/Glossary/Snake_case) @example ```ts const obj1 = { name: 'jiojio', addressInfo: 'zoo', list: [{ appInfo: { level: 10 } }] } const result = keyname_to_snakecase(obj1) assert .type<{ name: string; address_info: string; list: { app_info: { level: number } }[] }>() .equal() assert.equal(result, { name: 'jiojio', address_info: 'zoo', list: [{ app_info: { level: 10 } }] }) ``` @example ```ts const obj2 = { MATE_INFO: 'uus' } const result2 = keyname_to_snakecase(obj2) assert.equal(result2, { mate_info: 'uus' }) ``` @category Collect */ export declare function keyname_to_snakecase(obj: T): ToSnakeCaseKeys; export {}; //# sourceMappingURL=keynameToSnakecase.d.ts.map