Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
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

files-pipe

🧪 Pipe for files.

  • 0.0.8
  • unpublished
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
2.4K
increased by3.52%
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

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc