UNPKG

vibe-cli-tool

Version:

VibeCLI v1.9 - 模板商店生态,智能部署生成,多语言支持,交互式学习系统,企业级Web全栈应用CLI工具

109 lines 3.09 kB
import fs from 'fs'; import path from 'path'; import { promises as fsp } from 'fs'; async function ensureDir(dir) { await fsp.mkdir(dir, { recursive: true }); } async function writeFile(p, data) { await ensureDir(path.dirname(p)); return fsp.writeFile(p, data); } function existsSync(p) { return fs.existsSync(p); } async function pathExists(p) { return existsSync(p); } async function readJson(p) { const txt = await fsp.readFile(p, 'utf-8'); return JSON.parse(txt); } async function readFile(p, enc) { return fsp.readFile(p, enc); } async function mkdtemp(prefix) { return await fsp.mkdtemp(prefix); } async function remove(p) { if (existsSync(p)) { await fsp.rm(p, { recursive: true, force: true }); } } function mkdtempSync(prefix) { return fs.mkdtempSync(prefix); } function removeSync(p) { if (existsSync(p)) { fs.rmSync(p, { recursive: true, force: true }); } } async function readdir(p) { return fs.promises.readdir(p); } function readdirSync(p) { return fs.readdirSync(p); } async function copy(src, dest) { await ensureDir(dest); } function copySync(_src, _dest) { } function emptyDirSync(_p) { } async function emptyDir(_p) { } function mkdirpSync(dir) { fs.mkdirSync(dir, { recursive: true }); } async function writeJson(file, data, opts) { await ensureDir(path.dirname(file)); return fsp.writeFile(file, JSON.stringify(data, null, opts?.spaces || 2), 'utf-8'); } function writeJsonSync(file, data, opts) { ensureDir(path.dirname(file)); fs.writeFileSync(file, JSON.stringify(data, null, opts?.spaces || 2), 'utf-8'); } // polyfill stat returning directory or file async function stat(p) { return fsp.stat(p); } function statSync(p) { return fs.statSync(p); } async function access(p, mode) { return fsp.access(p, mode); } const constants = fs.constants; function ensureDirSync(dir) { fs.mkdirSync(dir, { recursive: true }); } function writeFileSync(p, data) { ensureDirSync(path.dirname(p)); fs.writeFileSync(p, data); } function readFileSyncMock(p, enc) { return fs.readFileSync(p, enc); } export default { ensureDir, ensureDirSync, writeFile, writeFileSync, readFile, readFileSync: readFileSyncMock, existsSync, pathExists, mkdtemp, readdir, readdirSync, copy, copySync, emptyDir, emptyDirSync, mkdirpSync, mkdirSync: fs.mkdirSync, promises: fs.promises, readJson, mkdtempSync, remove, removeSync, mkdirp: ensureDir, // passthrough helper __esModule: true, writeJson, writeJsonSync, stat, statSync, access, constants }; // Named exports for ESM `import * as fs from 'fs-extra'` style export { ensureDir, ensureDirSync, writeFile, writeFileSync, readFile, readFileSyncMock as readFileSync, existsSync, pathExists, mkdtemp, readdir, readdirSync, copy, copySync, emptyDir, emptyDirSync, mkdirpSync, readJson, writeJson, writeJsonSync, mkdtempSync, remove, removeSync, stat, statSync, access, constants }; //# sourceMappingURL=fs-extra-mock.js.map