var specFileOrFolderRgx = /(__mocks__|__tests__)|(\.(spec|test)\.(tsx|ts|js|jsx)$)/; export var clearCommentsRgx = /\/\*[\s\S]*?\*\/|\/\/.*/g; export var defaultLoader = '(l, n) => import(`@next-translate-root/locales/${l}/${n}`).then(m => m.default)'; export function getDefaultAppJs(hasLoadLocaleFrom) { return "\n import i18nConfig from '@next-translate-root/i18n'\n import appWithI18n from 'next-translate/appWithI18n'\n\n function MyApp({ Component, pageProps }) {\n return <Component {...pageProps} />\n }\n\n export default appWithI18n(MyApp, {\n ...i18nConfig,\n skipInitialProps: true,\n isLoader: true,\n ".concat(overwriteLoadLocales(hasLoadLocaleFrom), "\n })\n"); } export function overwriteLoadLocales(exist) { if (exist) return ''; return "loadLocaleFrom: ".concat(defaultLoader, ","); } export function hasExportName(data, name) { return Boolean(data.match(new RegExp("export +(const|var|let|async +function|function) +".concat(name))) || data.match(new RegExp("export\\s*\\{[^}]*(?<!\\w)".concat(name, "(?!\\w)[^}]*\\}"), 'm'))); } export function isPageToIgnore(pageFilePath) { var fileName = pageFilePath.substring(pageFilePath.lastIndexOf('/') + 1); return (pageFilePath.startsWith('/api/') || pageFilePath.startsWith('/_document.') || pageFilePath.startsWith('/middleware.') || fileName.startsWith('_middleware.') || specFileOrFolderRgx.test(pageFilePath)); } export function hasHOC(rawData) { var hasWithTranslationHOC = new RegExp('import *(\\w*) *.*from *.*next-translate\\/withTranslation.*'); if (!rawData.includes('export default')) return false; if (hasExportName(rawData, 'getStaticProps') || hasExportName(rawData, 'getServerSideProps') || hasExportName(rawData, 'getStaticPaths')) { return false; } var _a = rawData.match(hasWithTranslationHOC) || [], withTranslationName = _a[1]; var data = rawData .replace(new RegExp("".concat(withTranslationName, "\\(.*\\)")), function (d) { return d.replace(new RegExp("(".concat(withTranslationName, "|\\(|\\))"), 'g'), ''); }) .replace(clearCommentsRgx, ''); var exportedNormally = new RegExp("export default (\\(.*\\) *=>|function|class)").test(data); if (exportedNormally) return false; var ref = getRef(data); if (ref.includes('(')) return true; return (data.split('\n').filter(function (line) { var isRefLine = line.includes(ref) && !/export +default/.test(line); var isComp = new RegExp("(function|class) +".concat(ref, "\\W")).test(line); var isCompInVar = new RegExp(" *".concat(ref, " += +(function|class) +")).test(line); var isArrowFunc = new RegExp(" *".concat(ref, "(: *\\w+ *)? += +\\(.*=>")).test(line); var isPotentialHOC = /=.*\(/.test(line); return (isRefLine && !isComp && !isCompInVar && !isArrowFunc && isPotentialHOC); }).length > 0); } function getRef(data) { var escapeRegex = function (str) { return str.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); }; var ref = (data.replace(/ /g, '').match("exportdefault*([^\\n|;]*)") || [])[1]; var prevRef = (data.match(new RegExp("".concat(escapeRegex(ref), " += +(\\w+)($| |;|\\n)"))) || [])[1]; return prevRef || ref; }