/opt/canhelp/node_modules/better-auth/dist/db
Edit: /opt/canhelp/node_modules/better-auth/dist/db/field.d.mts (3703B)
import { DBFieldAttribute, InferDBValueType } from "@better-auth/core/db";
//#region src/db/field.d.ts
type InferFieldsOutput
> = Fields extends Record ? { [key in Key as Fields[key]["returned"] extends false ? never : Fields[key]["required"] extends false ? Fields[key]["defaultValue"] extends boolean | string | number | Date ? key : never : key]: InferFieldOutput } & { [key in Key as Fields[key]["returned"] extends false ? never : Fields[key]["required"] extends false ? Fields[key]["defaultValue"] extends boolean | string | number | Date ? never : key : never]?: InferFieldOutput | null } : never;
/**
* For client will add "?" on optional fields
*/
type InferFieldsInputClient> = Fields extends Record ? { [key in Key as Fields[key]["required"] extends false ? never : Fields[key]["defaultValue"] extends string | number | boolean | Date ? never : Fields[key]["input"] extends false ? never : key]: InferFieldInput } & { [key in Key as Fields[key]["input"] extends false ? never : Fields[key]["required"] extends false ? key : Fields[key]["defaultValue"] extends string | number | boolean | Date ? key : never]?: InferFieldInput | undefined | null } : never;
type InferFieldOutput = T["returned"] extends false ? never : T["required"] extends false ? InferDBValueType | undefined | null : InferDBValueType;
/**
* Converts a Record to an object type
* with keys and value types inferred from DBFieldAttribute["type"].
*/
type FieldAttributeToObject> = AddOptionalFields<{ [K in keyof Fields]: InferDBValueType }, Fields>;
type AddOptionalFields, Fields extends Record> = { [K in keyof T as Fields[K] extends {
required: false;
} ? never : K]: T[K] } & { [K in keyof T as Fields[K] extends {
required: false;
} ? K : never]?: T[K] };
/**
* Infer the additional fields from the plugin options.
* For example, you can infer the additional fields of the org plugin's organization schema like this:
* ```ts
* type AdditionalFields = InferAdditionalFieldsFromPluginOptions<"organization", OrganizationOptions>
* ```
*
* @param isClientSide - When `true` (default), filters out `input: false` fields (clients can't send these).
* When `false`, includes all fields (for internal/server-side use).
*/
type InferAdditionalFieldsFromPluginOptions;
} } | undefined;
}, isClientSide extends boolean = true> = Options["schema"] extends { [key in SchemaName]?: {
additionalFields: infer Field extends Record;
} } ? isClientSide extends true ? FieldAttributeToObject> : FieldAttributeToObject : {};
type RemoveFieldsWithInputFalse> = { [K in keyof T as T[K]["input"] extends false ? never : K]: T[K] };
type RemoveFieldsWithReturnedFalse> = { [K in keyof T as T[K]["returned"] extends false ? never : K]: T[K] };
type InferFieldInput = InferDBValueType;
//#endregion
export { FieldAttributeToObject, InferAdditionalFieldsFromPluginOptions, InferFieldsInputClient, InferFieldsOutput, RemoveFieldsWithReturnedFalse };
//# sourceMappingURL=field.d.mts.map