UNPKG

@voerkai18n/utils

Version:

utils for voerkai18n

60 lines (49 loc) 1.57 kB
/** * * 获取VoerkaI18n语言文件夹 * */ import { getSettingsFromPackageJson } from "./getSettingsFromPackageJson" import fs from "node:fs" import path from "node:path" import { getDefaultLanguageDir } from "./getDefaultLanguageDir" export type LanguagesDirOptions = { location? : string autoCreate? : boolean absolute? : boolean // 是否返回绝对路径 } /** * * 获取语言工作文件夹 * * - 读取package.json中的voerkai18n字段 * - 如果没有,则在当前文件夹下查找 * - <src/languages> * - <languages> * * 如果目录不存在,则自动创建 * * * @returns * @param location 指定入口文件夹 * @param created 是否创建 */ export function getLanguageDir(options?:LanguagesDirOptions):string{ const { location,autoCreate,absolute } = Object.assign({ autoCreate:true, absolute:true }, options) const cwd = process.env.INIT_CWD || process.cwd() try{ const { entry } = getSettingsFromPackageJson(location) let langDir :string = entry || getDefaultLanguageDir() langDir = path.isAbsolute(langDir) ? langDir : path.join(cwd,langDir) if(autoCreate && !fs.existsSync(langDir)){ fs.mkdirSync(langDir,{ recursive: true }) } return absolute ? langDir : path.relative(cwd,langDir) }catch(e){ console.error("获取语言文件夹失败",e) return "src/languages" } }