gulp-plugin-extras
Useful utilities for creating Gulp plugins
Last updated a year ago by sindresorhus .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install gulp-plugin-extras 
SYNC missed versions from official npm registry.

gulp-plugin-extras

Useful utilities for creating Gulp plugins

Install

npm install gulp-plugin-extras

Usage

import {gulpPlugin, PluginError} from 'gulp-plugin-extras';

const pluginName = 'gulp-foo';

export default function gulpFoo(requiredArgument) {
	if (!requiredArgument) {
		throw new PluginError(pluginName, 'Missing argument `requiredArgument`');
	}

	return gulpPlugin(pluginName, async file => {
		file.contents = await someKindOfTransformation(file.contents);
		return file;
	});
}

API

gulpPlugin(name, onFile, options?)

Create a Gulp plugin.

If you throw an error with a .isPresentable = true property, it will not display the error stack.

This does not support streaming unless you enable the supportsAnyType option.

name

Type: string

The plugin name.

onFile

Type: (file) => file

The function called for each Vinyl file in the stream. Must return a modified or new Vinyl file. May be async.

options

Type: object

supportsDirectories

Type: boolean
Default: false

Whether the plugin can handle directories.

supportsAnyType

Type: boolean
Default: false

Whether the plugin can handle any Vinyl file type.

Useful for custom type filtering.

Supersedes supportsDirectories.

onFinish

Type: async function * (stream: NodeJS.ReadableStream): AsyncGenerator<File, never, void>

An async generator function executed for finalization after all files have been processed.

You can yield more files from it if needed.

import {gulpPlugin} from 'gulp-plugin-extras';

export default function gulpFoo() {
	return gulpPlugin(
		'gulp-foo',
		async file => { … },
		{
			async * onFinish() {
				yield someVinylFile;
				yield someVinylFile2;
			}
		}
	);
}

PluginError

Create a Gulp plugin error. See the types for docs.

Current Tags

  • 1.1.0                                ...           latest (a year ago)

7 Versions

  • 1.1.0                                ...           a year ago
  • 1.0.0                                ...           2 years ago
  • 0.3.0                                ...           2 years ago
  • 0.2.2                                ...           2 years ago
  • 0.2.1                                ...           2 years ago
  • 0.2.0                                ...           2 years ago
  • 0.1.0                                ...           2 years ago
Maintainers (1)
Downloads
Today 0
This Week 3
This Month 6
Last Day 0
Last Week 3
Last Month 1
Dependencies (3)
Dev Dependencies (5)
Dependents (2)

Copyright 2013 - present © cnpmjs.org | Home |