UNPKG

apisurf

Version:

Analyze API surface changes between npm package versions to catch breaking changes

41 lines (40 loc) 1.21 kB
/** * Parse enum definition from source lines */ export function parseEnumDefinition(lines, startIndex, name) { const members = []; let braceCount = 0; let inEnum = false; for (let i = startIndex; i < lines.length; i++) { const line = lines[i].trim(); if (line.includes('{')) { braceCount++; inEnum = true; } if (inEnum && braceCount > 0) { // Skip comment lines if (line.startsWith('//') || line.startsWith('/*') || line.startsWith('*')) { continue; } // Remove inline comments const lineWithoutComment = line.split('//')[0].trim(); // Match enum members like: PENDING = 'pending', const memberMatch = lineWithoutComment.match(/^\s*(\w+)\s*=/); if (memberMatch) { members.push(memberMatch[1]); } } if (line.includes('}')) { braceCount--; if (braceCount === 0) { break; } } } return { name, kind: 'enum', members, signature: `export enum ${name} { ${members.join(', ')} }` }; }