UNPKG

better-auth

Version:

The most comprehensive authentication framework for TypeScript.

1 lines 2.24 kB
{"version":3,"file":"client.mjs","names":[],"sources":["../../../src/plugins/additional-fields/client.ts"],"sourcesContent":["import type {\n\tBetterAuthClientPlugin,\n\tBetterAuthOptions,\n\tBetterAuthPlugin,\n} from \"@better-auth/core\";\nimport type { DBFieldAttribute } from \"@better-auth/core/db\";\n\nexport const inferAdditionalFields = <\n\tT,\n\tS extends {\n\t\tuser?:\n\t\t\t| {\n\t\t\t\t\t[key: string]: DBFieldAttribute;\n\t\t\t }\n\t\t\t| undefined;\n\t\tsession?:\n\t\t\t| {\n\t\t\t\t\t[key: string]: DBFieldAttribute;\n\t\t\t }\n\t\t\t| undefined;\n\t} = {},\n>(\n\tschema?: S | undefined,\n) => {\n\ttype Opts = T extends BetterAuthOptions\n\t\t? T\n\t\t: T extends {\n\t\t\t\t\toptions: BetterAuthOptions;\n\t\t\t\t}\n\t\t\t? T[\"options\"]\n\t\t\t: never;\n\n\ttype Plugin = Opts extends never\n\t\t? S extends {\n\t\t\t\tuser?:\n\t\t\t\t\t| {\n\t\t\t\t\t\t\t[key: string]: DBFieldAttribute;\n\t\t\t\t\t }\n\t\t\t\t\t| undefined;\n\t\t\t\tsession?:\n\t\t\t\t\t| {\n\t\t\t\t\t\t\t[key: string]: DBFieldAttribute;\n\t\t\t\t\t }\n\t\t\t\t\t| undefined;\n\t\t\t}\n\t\t\t? {\n\t\t\t\t\tid: \"additional-fields-client\";\n\t\t\t\t\tschema: {\n\t\t\t\t\t\tuser: {\n\t\t\t\t\t\t\tfields: S[\"user\"] extends object ? S[\"user\"] : {};\n\t\t\t\t\t\t};\n\t\t\t\t\t\tsession: {\n\t\t\t\t\t\t\tfields: S[\"session\"] extends object ? S[\"session\"] : {};\n\t\t\t\t\t\t};\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t: never\n\t\t: Opts extends BetterAuthOptions\n\t\t\t? {\n\t\t\t\t\tid: \"additional-fields\";\n\t\t\t\t\tschema: {\n\t\t\t\t\t\tuser: {\n\t\t\t\t\t\t\tfields: Opts[\"user\"] extends {\n\t\t\t\t\t\t\t\tadditionalFields: infer U;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t? U\n\t\t\t\t\t\t\t\t: {};\n\t\t\t\t\t\t};\n\t\t\t\t\t\tsession: {\n\t\t\t\t\t\t\tfields: Opts[\"session\"] extends {\n\t\t\t\t\t\t\t\tadditionalFields: infer U;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t? U\n\t\t\t\t\t\t\t\t: {};\n\t\t\t\t\t\t};\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t: never;\n\n\treturn {\n\t\tid: \"additional-fields-client\",\n\t\t$InferServerPlugin: {} as Plugin extends BetterAuthPlugin\n\t\t\t? Plugin\n\t\t\t: undefined,\n\t} satisfies BetterAuthClientPlugin;\n};\n"],"mappings":";AAOA,MAAa,yBAeZ,WACI;AAwDJ,QAAO;EACN,IAAI;EACJ,oBAAoB,EAAE;EAGtB"}