UNPKG

payload-authjs

Version:
48 lines (47 loc) 2.37 kB
import { getProviderMetadata } from "../authjs/utils/config"; import { generateUsersCollection } from "./collection"; export const authjsPlugin = (pluginOptions)=>(incomingConfig)=>{ const config = { ...incomingConfig }; // If the plugin is disabled, return the config as is if (pluginOptions.enabled === false) { return config; } // Generate users collection config.collections = config.collections ?? []; generateUsersCollection(config.collections, pluginOptions); // Add custom components to admin config.admin = { ...config.admin, components: { ...config.admin?.components, afterLogin: [ ...config.admin?.components?.afterLogin ?? [], // Add the SignInButton component to the admin login page (only if the user collection is the admin user collection) ...(()=>{ if (incomingConfig.admin?.user !== (pluginOptions.userCollectionSlug ?? "users")) { return []; } if (pluginOptions.components?.SignInButton === false) { return []; } const signInButtonOptions = pluginOptions.components?.SignInButton; return pluginOptions.authjsConfig.providers.map((provider)=>getProviderMetadata(provider)).filter((provider)=>[ "oauth", "oidc" ].includes(provider.type)).map((provider)=>({ path: "payload-authjs/components#SignInButton", clientProps: { icon: typeof signInButtonOptions?.icon === "function" ? signInButtonOptions.icon(provider) : signInButtonOptions?.icon, text: typeof signInButtonOptions?.text === "function" ? signInButtonOptions.text(provider) : signInButtonOptions?.text, provider } })); })() ] } }; return config; }; //# sourceMappingURL=plugin.js.map