tiddlywiki-plugin-dev
Version:
[](https://github.com/tiddly-gittly)
54 lines (53 loc) • 1.33 kB
JavaScript
import fs from "fs";
import { dirname, resolve } from "path";
import { TiddlyWiki } from "tiddlywiki";
const tiddlywiki = (preloadTiddlers = [], dir = ".", commands = []) => {
const $tw = TiddlyWiki();
$tw.boot.argv = [dir, ...commands];
$tw.preloadTiddlerArray(preloadTiddlers);
$tw.boot.boot();
return $tw;
};
const mkdirsForFileSync = (fileName) => {
const path = dirname(fileName);
if (!fs.existsSync(path)) {
mkdirsForFileSync(path);
fs.mkdirSync(path);
}
};
const tryCopy = (from, to) => {
if (fs.existsSync(from)) {
fs.cpSync(from, to, { force: true, errorOnExist: false, recursive: true });
}
};
const walkFilesSync = (dir, callback) => {
const stats = fs.statSync(dir);
if (stats.isFile()) {
callback(dir, stats);
} else {
fs.readdirSync(dir).forEach(
(item) => walkFilesSync(resolve(dir, item), callback)
);
}
};
const sleep = (millionseconds) => new Promise((resolve2) => setTimeout(() => resolve2(), millionseconds));
const waitForFile = (path) => new Promise((resolve2) => {
if (fs.existsSync(path)) {
resolve2();
return;
}
const id = setInterval(() => {
if (fs.existsSync(path)) {
resolve2();
clearInterval(id);
}
}, 100);
});
export {
mkdirsForFileSync,
sleep,
tiddlywiki,
tryCopy,
waitForFile,
walkFilesSync
};