supabase-cache-helpers
supabase-cache-helpers copied to clipboard
Feat: Add transformer option to use-query
Issue
https://github.com/psteinroe/supabase-cache-helpers/issues/245
Overview
I've added a transformer option to use-query. This allows you to transform data, such as converting from snake_case to camelCase.
Capture
Without Transformer | With Transformer | Transformer Arguments |
---|---|---|
CODE: snakeToCamel function
import camelcaseKeys from "camelcase-keys";
export type SnakeToCamelCase<S extends string> =
S extends `${infer T}_${infer U}`
? `${Lowercase<T>}${Capitalize<SnakeToCamelCase<U>>}`
: S;
export type SnakeToCamelCaseNested<T> = T extends (infer U)[]
? SnakeToCamelCaseNested<U>[]
: T extends object
? {
[K in keyof T as SnakeToCamelCase<K & string>]: SnakeToCamelCaseNested<
T[K]
>;
}
: T;
export const snakeToCamel = <
T extends Record<string, unknown> | readonly Record<string, unknown>[],
>(
request: T
) => camelcaseKeys(request) as unknown as SnakeToCamelCaseNested<T>;
Without Transformer | With Transformer |
---|---|
Additional Notes
I'm a junior engineer. This is my first contribution to an open-source project. I'm eager to receive feedback on my work. I'm very interested in Supabase and would love to work on other issues if there are any.