🐊Putout operator adds ability to lint filesystem.
npm i putout @putout/operator-filesystem
const {operator} = require('putout');
const {findFile, createFile} = operator;
const [dirPath] = findFile(ast, 'hello');
const filePath = createFile(dirPath, 'world.txt', 'hello world');
const {operator} = require('putout');
const {
createDirectory,
findFile,
} = operator;
const [dirPath] = findFile(ast, 'hello');
const newDirectoryPath = createDirectory(dirPath, 'world');
const {operator} = require('putout');
const {finedFiles, findFile} = operator;
const [filePath] = findFile(ast, 'hello');
You can also pass array of file masks:
import {operator} from 'putout';
const {findFile} = operator;
const coupleFiles = findFile(ast, ['*.js', '*.ts']);
And even search for a directory:
import {operator} from 'putout';
const {findFile} = operator;
const coupleFiles = findFile(ast, ['/home/coderaiser', '/home/coderaiser/putout']);
const {operator} = require('putout');
const {
createDirectory,
findFile,
getParentDirectory,
} = operator;
const [dirPath] = findFile(ast, 'hello');
const newDirectoryPath = createDirectory(dirPath, 'world');
dirPath === getParentDirectory(newDirectoryPath);
// returns
true;
const {operator} = require('putout');
const {getFilename} = operator;
const name = getFilename(filePath);
const {operator} = require('putout');
const {getFilename, getFileType} = operator;
getFileType(filePath);
// returns
'file';
Get content
property if it exists, use readFileContent
to read file from Filesystem.
const {operator} = require('putout');
const {getFileContent} = operator;
getFileContent(filePath);
// returns
[true, 'hello world'];
const {operator} = require('putout');
const {removeFile} = operator;
removeFile(filePath);
const {operator} = require('putout');
const {moveFile, copyFile} = operator;
copyFile(filePath, dirPath);
const {operator} = require('putout');
const {moveFile} = operator;
moveFile(filePath, dirPath);
const {operator} = require('putout');
const {readFileContent} = operator;
readFileContent(filePath);
// returns
'hello';
const {operator} = require('putout');
const {
writeFileContent,
readFileContent,
} = operator;
writeFileContent(filePath, 'hello');
readFileContent(filePath);
// returns
'hello';
const {operator} = require('putout');
const {renameFile, findFile} = operator;
const [filePath] = findFile(path, 'README.md');
renameFile(filePath, 'readme.md');
this is the same as:
renameFile(filePath, '/any/path/here/readme.md');
Since basename
is used.
The
path.basename()
method returns the last portion of a path, similar to the Unix basename command. Trailing directory separators are ignored.(c) nodejs.org
To move file use moveFile()
.
const montag = require('montag');
const {
parse,
print,
operator,
} = require('putout');
const {renameFile, findFile} = operator;
const ast = parse(montag`
putout_processor_filesystem({
"type": "directory",
"filename": "/hello",
"files": []
});
`);
const [filePath] = findFile(ast, 'hello');
renameFile(filePath, 'world');
print(ast);
// returns
`
putout_processor_filesystem({
"type": "directory",
"filename": "/hello",
"files": []
});
`;
MIT