@putout/operator-filesystem
Version:
🐊Putout operator adds ability to filesystem referenced variables that was not defined
60 lines (45 loc) • 1.15 kB
JavaScript
import {fullstore} from 'fullstore';
const driverStore = fullstore();
const {assign} = Object;
const noop = () => {};
const returns = (a) => () => a;
const defaultFS = {
renameFile: noop,
removeFile: noop,
createDirectory: noop,
readFileContent: returns(''),
writeFileContent: noop,
copyFile: noop,
};
const maybeFS = assign({}, defaultFS);
export const renameFile = (oldName, newName) => {
maybeFS.renameFile(oldName, newName);
};
export const removeFile = (name) => {
maybeFS.removeFile(name);
};
export const copyFile = (from, to) => {
maybeFS.copyFile(from, to);
};
export const createDirectory = (name) => {
maybeFS.createDirectory(name);
};
export const readFileContent = (name) => {
return maybeFS.readFileContent(name);
};
export const writeFileContent = (name, content) => {
maybeFS.writeFileContent(name, content);
};
export function init(fsDriver) {
assign(maybeFS, fsDriver);
}
export const pause = () => {
driverStore(maybeFS);
deinit();
};
export const start = () => {
init(driverStore());
};
export function deinit() {
assign(maybeFS, defaultFS);
}