2.1.16 • Published 1 month ago

files-pipe v2.1.16

Weekly downloads
-
License
SEE LICENSE IN LI...
Repository
github
Last release
1 month ago

🧪 FilePipe

FilePipe allows you to process files in a pipeline, making it easy to perform various actions on them.

Installation

To get started with FilePipe, follow these steps:

Install the FilePipe package using npm:

npm install -D -E files-pipe

Create a new pipe instance using the following code in your Index.ts file:

Index.ts

await new (await import("files-pipe")).default().In("./Input");

Getting started

With FilePipe, you can use the Pipe method to perform actions on files within the pipe. Here's an example of how to use it in your Index.ts:

Index.ts

await(
	await(await new (await import("files-pipe")).default().In("./Input")).By(
		"**/*.md"
	)
).Pipe({
	// Append some content to all of the text files
	Wrote: (On) => (On.Buffer += "LICENSE [MIT]"),
});

Default Callbacks

FilePipe provides default callbacks for file processing. These callbacks can be customized to suit your specific needs. Here are the default callbacks:

await new (await import("files-pipe")).default().Pipe({
	// Read the file into a buffer
	Read: async ({ Input }) => await fs.promises.readFile(Input, "utf-8"),

	// Wrote the buffer into a file
	Wrote: async ({ Buffer }) => Buffer,

	// Passed the file through a check
	Passed: async (On) => On && true,

	// Failed processing the file
	Failed: async ({ Input }) => `Error: Cannot process file ${Input}!`,

	// Accomplished processing the file
	Accomplished: async ({ Input, Output }) =>
		`Processed ${Input} in ${Output}.`,

	// Fulfilled the whole plan
	Fulfilled: async ({ File }) =>
		`Successfully processed a total of ${File} ${
			File === 1 ? "file" : "files"
		}.`,

	// Changed the plan
	Changed: async (Plan) => Plan,
});

Add Multiple Paths

You can add multiple paths to your pipe by specifying an array as the Path variable:

Index.ts

await new (await import("files-pipe")).default().In(["./Input", "./Input2"]);

Input-Output Mapping

FilePipe will allow you to provide a map of paths for different input and output directories, making it easy to control where files are read from and written to:

Index.ts

await new (await import("files-pipe")).default().In(
	new Map([["./Input", "./Output"]])
);

File Filtering

You can filter files to exclude specific ones from your FilePipe. Filters can be an array of regular expressions or a single match. You can also use functions to match on file names:

Index.ts

await new (await import("files-pipe")).default().Not([
	"File.txt",
	(File: string) => File === "./Input/File.txt",
]);

Controlling Logging

You can control the logging level by setting the Logger parameter. The default value is 2, but you can set it to 0 if you don't want to see debug messages:

Index.ts

new (await import("files-pipe")).default(0);

Changelog

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

2.1.16

1 month ago

2.1.15

2 months ago

2.1.14

2 months ago

2.1.12

2 months ago

2.1.13

2 months ago

2.1.11

2 months ago

2.1.10

2 months ago

2.1.9

2 months ago

2.1.8

3 months ago

2.1.7

3 months ago

2.1.6

4 months ago

2.1.5

4 months ago

2.1.4

5 months ago

2.1.2

7 months ago

2.1.1

7 months ago

2.1.3

5 months ago

2.1.0

7 months ago

2.0.22

7 months ago

2.0.20

7 months ago

2.0.21

7 months ago

2.0.19

8 months ago

2.0.15

9 months ago

2.0.3

9 months ago

2.0.16

9 months ago

2.0.2

9 months ago

2.0.13

9 months ago

2.0.5

9 months ago

2.0.14

9 months ago

2.0.4

9 months ago

2.0.11

9 months ago

2.0.7

9 months ago

2.0.12

9 months ago

2.0.6

9 months ago

2.0.9

9 months ago

2.0.10

9 months ago

2.0.8

9 months ago

2.0.1

9 months ago

2.0.0

9 months ago

2.0.17

9 months ago

2.0.18

8 months ago

0.1.0

10 months ago

0.0.9

10 months ago

0.0.8

10 months ago

0.0.5

12 months ago

0.0.7

11 months ago

0.0.6

12 months ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.4

1 year ago

0.0.1

1 year ago