@daks.dev/svelte.sdk
Version:
DAKS.DEV Svelte SDK
45 lines (44 loc) • 1.64 kB
JavaScript
import { promises as fs, constants } from 'node:fs';
import { fileURLToPath } from 'node:url';
import { dirname, resolve } from 'node:path';
export const error = (e) => console.error(e);
export const __dirname = (url) => dirname(fileURLToPath(url));
export function rootpath(...args) {
return resolve(process.cwd(), ...args);
}
export async function readSubdirs(src) {
return await fs
.stat(src)
.then(async () => await fs
.readdir(src, { withFileTypes: true })
.then((val) => val.filter((val) => val.isDirectory()).map((val) => val.name))
.catch(error))
.catch(error);
}
export async function makeDir(src) {
return fs.stat(src).catch(async () => await fs.mkdir(src, { recursive: true }).catch(error));
}
export async function readFile(src, flag = 'r') {
return await fs
.stat(src)
.then(async () => await fs.readFile(src, { flag, encoding: 'utf-8' }).catch(error))
.catch(error);
}
export async function writeFile(file, data, flag = 'w') {
return await fs.writeFile(file, data, { flag, encoding: 'utf-8' }).catch(error);
}
export async function copyFile(src, dest) {
return await fs
.stat(src)
.then(async () => await fs.copyFile(src, dest).catch(error))
.catch(error);
}
export async function access(src, callback) {
return await fs.access(src, constants.F_OK).catch(callback);
}
export async function remove(src) {
return await fs
.stat(src)
.then(async (stats) => await (stats.isFile() ? fs.unlink(src) : fs.rm(src, { recursive: true, force: true })).catch(error))
.catch(error);
}