vibe-cli-tool
Version:
VibeCLI v1.9 - 模板商店生态,智能部署生成,多语言支持,交互式学习系统,企业级Web全栈应用CLI工具
109 lines • 3.09 kB
JavaScript
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