1.1.2 • Published 2 months ago

file-split-join v1.1.2

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

file-split-join

A Node.js library for splitting files into manageable parts and merging them back into a single file. Designed for efficiency and ease of use, file-split-join supports handling large files without loading them entirely into memory.

Features

  • Split Files: Split large files into smaller parts based on size or number of parts.
  • Merge Files: Easily merge multiple files back into the original file format.
  • Stream-based Processing: Utilizes Node.js streams to efficiently handle large files.

Installation

Install file-split-join using npm:

npm install file-split-join

Or using yarn:

yarn add file-split-join

Usage

Splitting a File

Split a file into multiple parts:

import { splitFileIntoParts } from 'file-split-join';

const filePath = 'path/to/your/largeFile.txt';
const destination = 'path/to/output/prefix'; // Output files will be named as prefix_0, prefix_1, ...
const numberOfParts = 4; // Number of parts to split the file into

splitFileIntoParts(filePath, numberOfParts, destination)
  .then((parts) => {
    console.log(`File was split into ${parts.length} parts:`, parts);
  })
  .catch((error) => {
    console.error('Error splitting file:', error);
  });

Merging Files

Merge multiple files back into a single file:

import { mergeFilesIntoOne } from 'file-split-join';

const fileNames = ['path/to/output/prefix_0', 'path/to/output/prefix_1', ...];
const destination = 'path/to/output/mergedFile.txt';

mergeFilesIntoOne(fileNames, destination)
  .then((mergedFilePath) => {
    console.log(`Files were merged into: ${mergedFilePath}`);
  })
  .catch((error) => {
    console.error('Error merging files:', error);
  });

API Reference

splitFileIntoParts(filePath, numberOfParts, destination)

  • filePath: String - The path of the file to be split.
  • numberOfParts: Number - The number of parts to split the file into.
  • destination: String - The destination path or paths where the split files will be created.

Returns: Promise<string[]> - A promise that resolves to an array of the split file names.

splitFileByBytes(filePath, chunkSizeInBytes, destination)

Splits a file into multiple parts based on a specified chunk size in bytes.

  • filePath: String - The path of the file to be split.
  • chunkSizeInBytes: Number - The size of each chunk in bytes.
  • destination: String - The base path or filename prefix for the split files. Split parts will be named as <destination>_<index>, where <index> is a zero-based index of the split part.

Returns: Promise<string[]> - A promise that resolves to an array of filenames for the split parts.

mergeFilesIntoOne(fileNames, destination)

  • fileNames: String[] - An array of file names to merge.
  • destination: String - The destination file path where the merged file will be saved.

Returns: Promise<string> - A promise that resolves to the destination file path when the merge is complete.

Contributing

Contributions are welcome! Please feel free to submit a pull request or open an issue.

License

This project is licensed under the MIT License - see the LICENSE file for details.

1.1.1

2 months ago

1.1.0

2 months ago

1.1.2

2 months ago

1.0.4

2 months ago

1.0.3

2 months ago

1.0.2

2 months ago

1.0.1

2 months ago

1.0.0

2 months ago