UNPKG

adonis-forge

Version:

Bundle utils for AdonisJS

8 lines (7 loc) 501 B
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>>;