mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-07-23 13:02:58 +00:00
28 lines
1.2 KiB
TypeScript
28 lines
1.2 KiB
TypeScript
// Convert Application convenient Message Resources (JSON) to Human-Editable format (YAML)
|
|
import { readFile, writeFile } from "fs/promises";
|
|
import { join, resolve } from "path";
|
|
import { stringify } from "yaml";
|
|
import { glob } from "tinyglobby";
|
|
import { dottedToObject } from "./messagelib";
|
|
const __dirname = import.meta.dirname;
|
|
|
|
const targetDir = resolve(join(__dirname, "../src/common/messagesJson/"));
|
|
console.log(`Target directory: ${targetDir}`);
|
|
const files = await glob(`*.json`, { expandDirectories: false, absolute: true, cwd: targetDir });
|
|
for (const file of files) {
|
|
const filePath = resolve(file);
|
|
console.log(`Processing file: ${filePath}`);
|
|
const content = await readFile(filePath, "utf-8");
|
|
const jsonDataSrc = JSON.parse(content);
|
|
const jsonDataD2 = Object.fromEntries(
|
|
Object.entries(jsonDataSrc).sort(([keyA], [keyB]) => keyA.localeCompare(keyB))
|
|
);
|
|
const jsonData = dottedToObject(jsonDataD2);
|
|
const yamlData = stringify(jsonData, { indent: 2 });
|
|
const yamlFilePath = filePath.replace(/\.json$/, ".yaml").replace("Json", "YAML");
|
|
await writeFile(yamlFilePath, yamlData, "utf-8");
|
|
console.log(`Converted ${filePath} to ${yamlFilePath}`);
|
|
}
|
|
|
|
// console.dir(files, { depth: 0 });
|