diff --git a/gulp-plumber/gulp-plumber-tests.ts b/gulp-plumber/gulp-plumber-tests.ts
new file mode 100644
index 000000000..cf055dad5
--- /dev/null
+++ b/gulp-plumber/gulp-plumber-tests.ts
@@ -0,0 +1,36 @@
+///
+///
+///
+
+import gulp = require('gulp');
+import plumber = require('gulp-plumber');
+
+//default behavior
+gulp.src('./src/*.ext')
+ .pipe(plumber())
+ .pipe(gulp.dest('./dist'));
+
+//error handler function
+gulp.src('./src/*.ext')
+ .pipe(plumber((error) => {
+ console.log(error);
+ }))
+ .pipe(gulp.dest('./dist'));
+
+gulp.src('./src/*.ext')
+ .pipe(plumber({}))
+ .pipe(gulp.dest('./dist'));
+
+gulp.src('./src/*.ext')
+ .pipe(plumber({ inherit: false }))
+ .pipe(gulp.dest('./dist'));
+
+gulp.src('./src/*.ext')
+ .pipe(plumber({ errorHandler: (error) => console.log(error) }))
+ .pipe(gulp.dest('./dist'));
+
+//plumber.stop()
+gulp.src('./src/*.scss')
+ .pipe(plumber())
+ .pipe(plumber.stop())
+ .pipe(gulp.dest('./dist'));
\ No newline at end of file
diff --git a/gulp-plumber/gulp-plumber.d.ts b/gulp-plumber/gulp-plumber.d.ts
new file mode 100644
index 000000000..693c4cbf9
--- /dev/null
+++ b/gulp-plumber/gulp-plumber.d.ts
@@ -0,0 +1,51 @@
+// Type definitions for gulp-plumber
+// Project: https://github.com/floatdrop/gulp-plumber
+// Definitions by: Joe Skeen
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+/** Prevent pipe breaking caused by errors from gulp plugins */
+declare module 'gulp-plumber' {
+
+ /** Prevent pipe breaking caused by errors from gulp plugins */
+ interface GulpPlumber {
+ /**
+ * Returns Stream, that fixes pipe methods on Streams that are next in pipeline.
+ *
+ * @param options Sets options as described in the Options interface
+ */
+ (options?: Options): NodeJS.ReadWriteStream;
+ /**
+ * Returns Stream, that fixes pipe methods on Streams that are next in pipeline.
+ *
+ * @param errorHandler the function to be attached to the stream on('error')
+ */
+ (errorHandler: ErrorHandlerFunction): NodeJS.ReadWriteStream;
+ /** returns default behaviour for pipeline after it was piped */
+ stop(): NodeJS.ReadWriteStream;
+ }
+
+ interface Options {
+ /**
+ * Handle errors in underlying streams and output them to console. Default true.
+ * If function passed, it will be attached to stream on('error')
+ * If false passed, error handler will not be attached
+ * If undefined passed, default error handler will be attached
+ */
+ errorHandler?: ErrorHandlerFunction | boolean;
+ /** Monkeypatch pipe functions in underlying streams in pipeline. Default true. */
+ inherit?: boolean;
+ }
+
+ /** an error handler function to be attached to the stream on('error') */
+ interface ErrorHandlerFunction {
+ /** an error handler function to be attached to the stream on('error') */
+ (error: any): void;
+ }
+
+ /** Prevent pipe breaking caused by errors from gulp plugins */
+ var gulpPlumber: GulpPlumber;
+
+ export = gulpPlumber;
+}