UNPKG

i18ntk

Version:

i18n Tool Kit - Zero-dependency internationalization toolkit for setup, scanning, analysis, validation, auto translation, fixing, reporting, and runtime translation loading.

52 lines (43 loc) 1.38 kB
'use strict'; const path = require('path'); const SecurityUtils = require('./security'); const { SOURCE_DIRS } = require('./framework-detector'); const DEFAULT_SOURCE_DIRS = SOURCE_DIRS; function resolveUsageSourceDir(options = {}) { const projectRoot = path.resolve(options.projectRoot || process.cwd()); const sourceDir = options.sourceDir ? path.resolve(projectRoot, options.sourceDir) : null; const i18nDir = options.i18nDir ? path.resolve(projectRoot, options.i18nDir) : null; if (options.explicitSourceDir) { return { sourceDir, disabled: false, reason: null, }; } if (sourceDir && i18nDir && sourceDir === i18nDir) { for (const candidate of DEFAULT_SOURCE_DIRS) { const candidatePath = path.resolve(projectRoot, candidate); if (SecurityUtils.safeExistsSync(candidatePath, projectRoot)) { return { sourceDir: candidatePath, disabled: false, reason: `sourceDir equals i18nDir; using ${candidate}`, }; } } return { sourceDir: null, disabled: true, reason: 'sourceDir equals i18nDir and no application source directory was found', }; } return { sourceDir, disabled: !sourceDir, reason: sourceDir ? null : 'No source directory configured', }; } module.exports = { DEFAULT_SOURCE_DIRS, resolveUsageSourceDir, };