UNPKG

@intlayer/chokidar

Version:

Uses chokidar to scan and build Intlayer declaration files into dictionaries based on Intlayer configuration.

29 lines (27 loc) 1.36 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); //#region src/writeContentDeclaration/detectExportedComponentName.ts /** * Attempt to detect an exported React component name in the file text. * Looks for patterns like: * - export const MyComponent = ... * - export function MyComponent(...) * - export default function MyComponent(...) */ const detectExportedComponentName = (fileText) => { const defaultEsmFnRegex = /export\s+default\s+function\s+(\w+)/; const defaultEsmVarRegex = /export\s+default\s+(\w+)/; const cjsDefaultRegex = /module\.exports\s*=\s*(\w+)/; const cjsDefaultVarRegex = /exports\.default\s*=\s*(\w+)/; const namedExportRegex = /export\s+(?:const|function)\s+(\w+)/g; const defaultEsmFnMatch = fileText.match(defaultEsmFnRegex); if (defaultEsmFnMatch) return defaultEsmFnMatch[1]; const defaultEsmVarMatch = fileText.match(defaultEsmVarRegex); if (defaultEsmVarMatch) return defaultEsmVarMatch[1]; const cjsDefaultMatch = fileText.match(cjsDefaultRegex) || fileText.match(cjsDefaultVarRegex); if (cjsDefaultMatch) return cjsDefaultMatch[1]; for (const match of fileText.matchAll(namedExportRegex)) if (/^[A-Z]/.test(match[1])) return match[1]; return null; }; //#endregion exports.detectExportedComponentName = detectExportedComponentName; //# sourceMappingURL=detectExportedComponentName.cjs.map