function findClosingBracket()

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
}