adonis-forge
Version:
Bundle utils for AdonisJS
8 lines (7 loc) • 501 B
TypeScript
import { LucidRow, ModelAttributes } from '@adonisjs/lucid/types/model';
export type ForgeConfig = {};
export type CamelToSnakeCase<S extends string> = S extends `${infer T}${infer U}` ? U extends Uncapitalize<U> ? `${Lowercase<T>}${CamelToSnakeCase<U>}` : `${Lowercase<T>}_${CamelToSnakeCase<Uncapitalize<U>>}` : S;
export type ConvertToSnakeCase<T> = {
[K in keyof T as CamelToSnakeCase<string & K>]: T[K];
};
export type ModelProps<T extends LucidRow> = ConvertToSnakeCase<ModelAttributes<T>>;