UNPKG

cli-zenhan

Version:

CLI上で全角英数字を半角英数字に一括置換してくれる機能です。

41 lines (37 loc) 1.2 kB
import fsPromises from "fs/promises"; import fs from "fs"; import path from "path"; import moji from "moji"; export default class ConversionFile { constructor(file) { this.file = file; } async convert() { const absolutePath = path.resolve(this.file); try { const stats = fs.statSync(absolutePath); if (stats.isFile()) { await this.#convertMojiInFile(absolutePath); } else if (stats.isDirectory()) { const dir = fs.readdirSync(absolutePath); for (const item of dir) { const itemPath = path.join(absolutePath, item); await new ConversionFile(itemPath).convert(); } } } catch (error) { console.error(`パス:"${absolutePath}"の処理中にエラーが発生しました。`); throw error; } } async #convertMojiInFile(file) { try { const targetFile = await fsPromises.readFile(file, "utf-8"); const convertedFile = moji(targetFile).convert("ZE", "HE").toString(); await fsPromises.writeFile(file, convertedFile); } catch (error) { console.error(`ファイル:${file}の変換中にエラーが発生しました。`); throw error; } } }