4.1.0 • Published 20 days ago

@putout/operator-filesystem v4.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
20 days ago

@putout/operator-filesystem NPM version

🐊Putout operator adds ability to lint filesystem.

Install

npm i putout @putout/operator-filesystem

API

createFile(directoryPath: DirectoryPath, name: string, content?: string): FilePath

const {operator} = require('putout');
const {findFile, createFile} = operator;

const [dirPath] = findFile(ast, 'hello');
const filePath = createFile(dirPath, 'world.txt', 'hello world');

createDirectory(directoryPath: FilePath, name: string): FilePath

const {operator} = require('putout');
const {
    createDirectory,
    findFile,
} = operator;

const [dirPath] = findFile(ast, 'hello');

const newDirectoryPath = createDirectory(dirPath, 'world');

findFile(filePath: Path|FilePath, name: string | string[]): FilePath[]

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']);

getParentDirectory(filePath: FilePath): FilePath|null

const {operator} = require('putout');
const {
    createDirectory,
    findFile,
    getParentDirectory,
} = operator;

const [dirPath] = findFile(ast, 'hello');

const newDirectoryPath = createDirectory(dirPath, 'world');

dirPath === getParentDirectory(newDirectoryPath);
// returns
true;

getFilename(path: FilePath): string

const {operator} = require('putout');
const {getFilename} = operator;

const name = getFilename(filePath);

getFileType(path: FilePath): string

const {operator} = require('putout');
const {getFilename, getFileType} = operator;

getFileType(filePath);
// returns
'file';

getFileContent(path: FilePath): [is: boolean, content: string]

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'];

removeFile(filePath: Path)

const {operator} = require('putout');
const {removeFile} = operator;

removeFile(filePath);

copyFile(filePath: FilePath, dirPath: FilePath)

const {operator} = require('putout');
const {moveFile, copyFile} = operator;

copyFile(filePath, dirPath);

moveFile(filePath: FilePath, dirPath: FilePath)

const {operator} = require('putout');
const {moveFile} = operator;

moveFile(filePath, dirPath);

readFileContent(filePath: FilePath): string

const {operator} = require('putout');
const {readFileContent} = operator;

readFileContent(filePath);
// returns
'hello';

writeFileContent(filePath: FilePath, content: string)

const {operator} = require('putout');
const {
    writeFileContent,
    readFileContent,
} = operator;

writeFileContent(filePath, 'hello');
readFileContent(filePath);
// returns
'hello';

renameFile(filePath: FilePath, name: string)

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().

Example

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": []
});
`;

License

MIT

4.1.0

20 days ago

4.0.1

3 months ago

4.0.0

3 months ago

3.8.1

4 months ago

3.8.0

4 months ago

3.7.0

4 months ago

3.6.0

4 months ago

3.5.0

5 months ago

3.4.0

5 months ago

3.3.0

5 months ago

3.2.0

5 months ago

3.1.0

5 months ago

3.0.2

5 months ago

3.0.1

5 months ago

3.0.0

5 months ago

2.12.2

5 months ago

2.12.1

5 months ago

2.12.0

5 months ago

2.11.0

5 months ago

2.10.0

5 months ago

2.9.2

5 months ago

2.9.1

5 months ago

2.9.0

5 months ago

2.8.0

5 months ago

2.7.0

5 months ago

2.6.0

5 months ago

2.5.0

5 months ago

2.4.0

6 months ago

2.3.1

6 months ago

2.3.0

6 months ago

2.2.1

6 months ago

2.2.0

6 months ago

2.1.1

6 months ago

2.1.0

6 months ago

2.0.1

6 months ago

2.0.0

6 months ago

1.7.0

6 months ago

1.6.0

6 months ago

1.5.0

6 months ago

1.4.0

6 months ago

1.3.0

6 months ago

1.2.0

6 months ago

1.1.0

6 months ago

1.0.1

6 months ago

1.0.0

6 months ago