spinjs
Version:
<p align="center"><a href="#"><img width="150" src="https://rawgit.com/sysgears/jsapp/master/packages/spinjs/logo.svg"></a></p>
21 lines (17 loc) • 731 B
text/typescript
import { camelize } from 'humps';
const webpackHook = (hookType: string, compiler: any, hookName: string, hookFunc: (...args: any[]) => any): void => {
if (compiler.hooks) {
const hook = compiler.hooks[camelize(hookName)];
if (hookType === 'async') {
hook.tapAsync('SpinJS', hookFunc);
} else {
hook.tap('SpinJS', hookFunc);
}
} else {
compiler.plugin(hookName, hookFunc);
}
};
export const hookSync = (compiler: any, hookName: string, hookFunc: (...args: any[]) => any): void =>
webpackHook('sync', compiler, hookName, hookFunc);
export const hookAsync = (compiler: any, hookName: string, hookFunc: (...args: any[]) => any): void =>
webpackHook('async', compiler, hookName, hookFunc);