in packages/cli/src/commands/init.ts [253:302]
function groupImportVariables(): Import[] {
const result: Import[] = [
{
path: "better-auth/client/plugins",
variables: [{ name: "inferAdditionalFields" }],
},
];
for (const plugin of clientPlugins) {
for (const import_ of plugin.imports) {
if (Array.isArray(import_.variables)) {
for (const variable of import_.variables) {
const existingIndex = result.findIndex(
(x) => x.path === import_.path,
);
if (existingIndex !== -1) {
const vars = result[existingIndex]!.variables;
if (Array.isArray(vars)) {
vars.push(variable);
} else {
result[existingIndex]!.variables = [vars, variable];
}
} else {
result.push({
path: import_.path,
variables: [variable],
});
}
}
} else {
const existingIndex = result.findIndex(
(x) => x.path === import_.path,
);
if (existingIndex !== -1) {
const vars = result[existingIndex]!.variables;
if (Array.isArray(vars)) {
vars.push(import_.variables);
} else {
result[existingIndex]!.variables = [vars, import_.variables];
}
} else {
result.push({
path: import_.path,
variables: [import_.variables],
});
}
}
}
}
return result;
}