UNPKG

tiddlywiki-plugin-dev

Version:

[![](https://img.shields.io/badge/Join-TiddlyWiki_CN-blue)](https://github.com/tiddly-gittly)

54 lines (53 loc) 1.33 kB
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 };