🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

files-pipe

Package Overview
Dependencies
Maintainers
1
Versions
50
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install
Package version was removed
This package version has been unpublished, mostly likely due to security reasons

files-pipe

🧪 Pipe for files.

0.0.8
unpublished
Source
npm
Version published
Weekly downloads
2.1K
-5%
Maintainers
1
Weekly downloads
 
Created
Source

files-pipe 🧪

Installation

First, install the files-pipe component like so:

npm install -D -E files-pipe

Then, create a new pipe from this component:

index.ts

import { files } from "files-pipe";

await new files().in("./input");

Getting started

The files-pipe will now provide you with a pipe method which you can use to execute the callback on each file from the pipe.

index.ts

import { files } from "files-pipe";

await (
	await (await new files().in("./input")).by("**/*.md")
).pipe({
	// Prepend some content to all of the text files
	wrote: (ongoing) => (ongoing.buffer += "LICENSE [MIT]"),
});

These are the defaults for each callback.

import { files } from "files-pipe";

await new files().pipe({
	// Writes the buffer into a file
	wrote: async (ongoing) => ongoing.buffer,
	// Reads the file into a buffer
	read: async (ongoing) =>
		await fs.promises.readFile(ongoing.inputPath, "utf-8"),
	// Checks if the file has passed any checks
	passed: async (ongoing) => true,
	// When file cannot be processed
	failed: async (inputPath) => `Error: Cannot process file ${inputPath}!`,
	// When the file is processed
	accomplished: async (ongoing) =>
		`Processed ${ongoing.inputPath} in ${ongoing.outputPath}.`,
	// When the whole plan is fulfilled
	fulfilled: async (plan) =>
		`Successfully processed a total of ${plan.files} ${
			plan.files === 1 ? "file" : "files"
		}.`,
	// When the plan has changed
	changed: async (plan) => plan,
});

You can add multiple paths to your pipe by specifying an array as the path variable.

index.ts

import { files } from "files-pipe";

await new files().in(["./input", "./input2"]);

You can also provide a map of paths for different input output directories.

index.ts

import { files } from "files-pipe";

await new files().in(new Map([["./input", "./output"]]));

You can provide a filter to exclude files from your pipe. A filter can be an array of regexes or a single match. You can use functions, as well to match on file names.

index.ts

import { files } from "files-pipe";

await new files().not([
	"my-awesome.file",
	(file: string) => file === "./input/this-file-will-not-be-processed.txt",
]);

Set logger to 0 if you do not want to see debug messages. Default is 2.

index.ts

import { files } from "files-pipe";

new files(0);

Changelog

See CHANGELOG.md for a history of changes to this component.

Lightrix logo

Keywords

files

FAQs

Package last updated on 24 Jul 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts