tapable
Advanced tools
Comparing version 2.0.0-beta.8 to 2.0.0-beta.9
@@ -23,3 +23,3 @@ /* | ||
this.header() + | ||
this.content({ | ||
this.contentWithInterceptors({ | ||
onError: err => `throw ${err};\n`, | ||
@@ -40,3 +40,3 @@ onResult: result => `return ${result};\n`, | ||
this.header() + | ||
this.content({ | ||
this.contentWithInterceptors({ | ||
onError: err => `_callback(${err});\n`, | ||
@@ -50,3 +50,3 @@ onResult: result => `_callback(null, ${result});\n`, | ||
let errorHelperUsed = false; | ||
const content = this.content({ | ||
const content = this.contentWithInterceptors({ | ||
onError: err => { | ||
@@ -101,2 +101,55 @@ errorHelperUsed = true; | ||
contentWithInterceptors(options) { | ||
if (this.options.interceptors.length > 0) { | ||
const onError = options.onError; | ||
const onResult = options.onResult; | ||
const onDone = options.onDone; | ||
return this.content( | ||
Object.assign(options, { | ||
onError: | ||
onError && | ||
(err => { | ||
let code = ""; | ||
for (let i = 0; i < this.options.interceptors.length; i++) { | ||
const interceptor = this.options.interceptors[i]; | ||
if (interceptor.error) { | ||
code += `${this.getInterceptor(i)}.error(${err});\n`; | ||
} | ||
} | ||
code += onError(err); | ||
return code; | ||
}), | ||
onResult: | ||
onResult && | ||
(result => { | ||
let code = ""; | ||
for (let i = 0; i < this.options.interceptors.length; i++) { | ||
const interceptor = this.options.interceptors[i]; | ||
if (interceptor.result) { | ||
code += `${this.getInterceptor(i)}.result(${result});\n`; | ||
} | ||
} | ||
code += onResult(result); | ||
return code; | ||
}), | ||
onDone: | ||
onDone && | ||
(() => { | ||
let code = ""; | ||
for (let i = 0; i < this.options.interceptors.length; i++) { | ||
const interceptor = this.options.interceptors[i]; | ||
if (interceptor.done) { | ||
code += `${this.getInterceptor(i)}.done();\n`; | ||
} | ||
} | ||
code += onDone(); | ||
return code; | ||
}) | ||
}) | ||
); | ||
} else { | ||
return this.content(options); | ||
} | ||
} | ||
header() { | ||
@@ -103,0 +156,0 @@ let code = ""; |
{ | ||
"name": "tapable", | ||
"version": "2.0.0-beta.8", | ||
"version": "2.0.0-beta.9", | ||
"author": "Tobias Koppers @sokra", | ||
@@ -5,0 +5,0 @@ "description": "Just a little module for plugins.", |
@@ -221,5 +221,5 @@ # Tapable | ||
``` js | ||
keyedHook.tap("some-key", "MyPlugin", (arg) => { /* ... */ }); | ||
keyedHook.tapAsync("some-key", "MyPlugin", (arg, callback) => { /* ... */ }); | ||
keyedHook.tapPromise("some-key", "MyPlugin", (arg) => { /* ... */ }); | ||
keyedHook.for("some-key").tap("MyPlugin", (arg) => { /* ... */ }); | ||
keyedHook.for("some-key").tapAsync("MyPlugin", (arg, callback) => { /* ... */ }); | ||
keyedHook.for("some-key").tapPromise("MyPlugin", (arg) => { /* ... */ }); | ||
``` | ||
@@ -256,5 +256,2 @@ | ||
for: (key: any) => Hook, | ||
tap: (key: any, name: string | Tap, fn: (context?, ...args) => Result) => void, | ||
tapAsync: (key: any, name: string | Tap, fn: (context?, ...args, callback: (err, result: Result) => void) => void) => void, | ||
tapPromise: (key: any, name: string | Tap, fn: (context?, ...args) => Promise<Result>) => void, | ||
intercept: (interceptor: HookMapInterceptor) => void | ||
@@ -272,3 +269,4 @@ } | ||
stage: number, | ||
context: boolean | ||
context: boolean, | ||
before?: string | Array | ||
} | ||
@@ -275,0 +273,0 @@ ``` |
@@ -34,3 +34,3 @@ type FixedSizeArray<T extends number, U> = T extends 0 | ||
interface HookInterceptor<H> { | ||
interface HookInterceptor<T, R> { | ||
name?: string; | ||
@@ -40,3 +40,6 @@ tap?: (tap: Tap) => void; | ||
loop?: (...args: any[]) => void; | ||
register?: (hook: H) => H; | ||
error?: (err: Error) => void; | ||
result?: (result: R) => void; | ||
done?: () => void; | ||
register?: (hook: Hook<T, R>) => Hook<T, R>; | ||
} | ||
@@ -49,3 +52,3 @@ | ||
name: string | undefined; | ||
intercept(interceptor: HookInterceptor<Hook<T, R>>): void; | ||
intercept(interceptor: HookInterceptor<T, R>): void; | ||
isUsed(): boolean; | ||
@@ -52,0 +55,0 @@ callAsync(...args: Append<AsArray<T>, Callback<Error, R>>): void; |
44886
1209
297