sprut-file-manager
v1.1.2-beta.2
Published
Инструмент для упрощения работы с файловой системой.
Downloads
3
Readme
Sprut-file-manager
Инструмент для упрощения работы с файловой системой.
Использование:
На данный момент работает на синхронных операциях.
const FSEntry = require('sprut-file-manager');
const config = { ... };
const fsNode = new FSEntry(config);
fsNode.fileHandler('json', null, null, source => source.toString());
console.log(fsNode.get('package.json').read()); // Выведет содержимое package.json в виде строки
Интерфейс config
:
{
path?: string;
fileHandlers?: Array<{
ext: string;
beforeExt: string;
afterExt: string;
handler: (source: any) => any;
}>;
duplicateTransformation?: (name: sttring, count: number) => string; // По умолчанию (name, count) => `${name}(${count})`
}
path
- путь, по которому создаётся виртуальный узел файловой системы. По умолчанию process.cwd()
.
fileHandlers
- обработчики файлов по их расширению. Конвейерно отрабатывают при чтении файла.
Интерфейс FSEntry
:
{
get path(): string; // Абсолютный путь
get extension(): string;
get fullExtension(): string;
get isFile(): boolean;
get isDir(): boolean;
get info(): fs.Stats;
get list(): string[] | null;
get name(): string;
get tree(): {
info: fs.Stats;
isFile: boolean;
isDir: boolean;
tree?: FSEntry.tree;
};
get(path: string): FSEntry; // path - Относительный путь
each(
callback: (fsNode: FSEntry, name: string, isFile: boolean, preResult: any, stop: () => void) => any,
startResult?: any,
eachType?: 'dir' | 'file'
): any;
read(settings?: {
without?: string[]; // Список расширений, обрабатывать с помощью fileHandler при чтении которые не нужно.
reverseExtension?: boolean; // Реверсия обхода расширений файла(например, fileName.ext_1.ext_2). По умолчанию обрабатываются слева направо.
}): any;
readRaw(): Buffer; // Чтение без обработчиков файла
write(data: Buffer | string, isAppend?: boolean);
rename(name: string, withExtension?: boolean);
renameExtension(extension: string);
move(path: string); // path - абсолютный путь
createFile(name: string, data: Buffer | string): FSEntry;
createDir(name: string): FSEntry;
copyTo(pathTo: string, recursive?: boolean = true): FSEntry; // pathTo - Относительный путь, recursive - создавать ли новые папки, если по пути pathTo они не существуют(по умолчанию true)
createTree(tree: TreeScheme): null; // Дерево, которое нужно создать в файловой системе. Если по ключу содержится Buffer или string, он интерпретируется как файл и в него запишутся данные из содержимого. Ключ - как имя файла.
delete();
fileHandler(
ext: string,
beforeExt: string | null | undefined,
afterExt: string | null | undefined,
handler: (res: any, ext: string, prevExt: string, afterExt: string) => any
)
}
Интерфейс TreeScheme:
TreeScheme { [string]: Buffer | string | TreeScheme }