1.1.2-beta.2 • Published 2 years ago

sprut-file-manager v1.1.2-beta.2

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

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 }
1.1.2-beta.2

2 years ago

1.1.2-beta.1

2 years ago

1.1.0-beta.1

2 years ago

1.1.1-beta.1

2 years ago

1.0.1-beta.1

2 years ago

1.0.0-beta.1

2 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago