in packages/cli/src/generators/auth-config.ts [592:633]
function findClosingBracket(
content: string,
startIndex: number,
openingBracket: string,
closingBracket: string,
): number | null {
let stack = 0;
let inString = false; // To track if we are inside a string
let quoteChar: string | null = null; // To track the type of quote
for (let i = startIndex; i < content.length; i++) {
const char = content[i];
// Check if we are entering or exiting a string
if (char === '"' || char === "'" || char === "`") {
if (!inString) {
inString = true;
quoteChar = char; // Set the quote character
} else if (char === quoteChar) {
inString = false; // Exiting the string
quoteChar = null; // Reset the quote character
}
continue; // Skip processing for characters inside strings
}
// If we are not inside a string, check for brackets
if (!inString) {
if (char === openingBracket) {
// console.log(`Found opening bracket:`, stack);
stack++;
} else if (char === closingBracket) {
// console.log(`Found closing bracket:`, stack, closingBracket, i);
if (stack === 0) {
return i; // Found the matching closing bracket
}
stack--;
}
}
}
return null; // No matching closing bracket found
}