WIP - add extractor, generate snippet_data
This commit is contained in:
81
node_modules/tapable/lib/Tapable.js
generated
vendored
Normal file
81
node_modules/tapable/lib/Tapable.js
generated
vendored
Normal file
@ -0,0 +1,81 @@
|
||||
/*
|
||||
MIT License http://www.opensource.org/licenses/mit-license.php
|
||||
Author Tobias Koppers @sokra
|
||||
*/
|
||||
"use strict";
|
||||
|
||||
const util = require("util");
|
||||
const SyncBailHook = require("./SyncBailHook");
|
||||
|
||||
function Tapable() {
|
||||
this._pluginCompat = new SyncBailHook(["options"]);
|
||||
this._pluginCompat.tap(
|
||||
{
|
||||
name: "Tapable camelCase",
|
||||
stage: 100
|
||||
},
|
||||
options => {
|
||||
options.names.add(
|
||||
options.name.replace(/[- ]([a-z])/g, (str, ch) => ch.toUpperCase())
|
||||
);
|
||||
}
|
||||
);
|
||||
this._pluginCompat.tap(
|
||||
{
|
||||
name: "Tapable this.hooks",
|
||||
stage: 200
|
||||
},
|
||||
options => {
|
||||
let hook;
|
||||
for (const name of options.names) {
|
||||
hook = this.hooks[name];
|
||||
if (hook !== undefined) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (hook !== undefined) {
|
||||
const tapOpt = {
|
||||
name: options.fn.name || "unnamed compat plugin",
|
||||
stage: options.stage || 0
|
||||
};
|
||||
if (options.async) hook.tapAsync(tapOpt, options.fn);
|
||||
else hook.tap(tapOpt, options.fn);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
module.exports = Tapable;
|
||||
|
||||
Tapable.addCompatLayer = function addCompatLayer(instance) {
|
||||
Tapable.call(instance);
|
||||
instance.plugin = Tapable.prototype.plugin;
|
||||
instance.apply = Tapable.prototype.apply;
|
||||
};
|
||||
|
||||
Tapable.prototype.plugin = util.deprecate(function plugin(name, fn) {
|
||||
if (Array.isArray(name)) {
|
||||
name.forEach(function(name) {
|
||||
this.plugin(name, fn);
|
||||
}, this);
|
||||
return;
|
||||
}
|
||||
const result = this._pluginCompat.call({
|
||||
name: name,
|
||||
fn: fn,
|
||||
names: new Set([name])
|
||||
});
|
||||
if (!result) {
|
||||
throw new Error(
|
||||
`Plugin could not be registered at '${name}'. Hook was not found.\n` +
|
||||
"BREAKING CHANGE: There need to exist a hook at 'this.hooks'. " +
|
||||
"To create a compatibility layer for this hook, hook into 'this._pluginCompat'."
|
||||
);
|
||||
}
|
||||
}, "Tapable.plugin is deprecated. Use new API on `.hooks` instead");
|
||||
|
||||
Tapable.prototype.apply = util.deprecate(function apply() {
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
arguments[i].apply(this);
|
||||
}
|
||||
}, "Tapable.apply is deprecated. Call apply on the plugin directly instead");
|
||||
Reference in New Issue
Block a user