mirror of
https://github.com/janispritzkau/obsidian-model-viewer.git
synced 2026-07-22 12:30:23 +00:00
28 lines
912 B
TypeScript
28 lines
912 B
TypeScript
// TODO: better if I rewrite this for Node for better reproducibility
|
|
// deno run -A scripts/gen_extract_libs.ts
|
|
|
|
import { encodeBase64 } from "jsr:@std/encoding/base64";
|
|
import { walk } from "jsr:@std/fs";
|
|
|
|
let js = `// This file is auto-generated. Do not edit it manually. \n`;
|
|
js += `import { base64ToArrayBuffer } from "obsidian";\n`;
|
|
js += `export default async function extractLibs(app, dirPath) {\n`;
|
|
|
|
for await (const file of walk("lib")) {
|
|
js += `if (!(await app.vault.adapter.exists(dirPath + "/${file.path}"))) {\n`;
|
|
|
|
if (file.isDirectory) {
|
|
js += `await app.vault.adapter.mkdir(dirPath + "/${file.path}");\n`;
|
|
}
|
|
|
|
if (file.isFile) {
|
|
const base64 = encodeBase64(await Deno.readFile(file.path));
|
|
js += `await app.vault.adapter.writeBinary(dirPath + "/${file.path}", base64ToArrayBuffer("${base64}"));\n`;
|
|
}
|
|
|
|
js += `}\n`;
|
|
}
|
|
|
|
js += `}\n`;
|
|
|
|
await Deno.writeTextFile("src/extract_libs.js", js);
|