123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = plugin;
- function plugin(targets, nodeTypes, detect) {
- class Plugin {
- constructor(result) {
- this.nodes = [];
- this.result = result;
- this.targets = targets;
- this.nodeTypes = nodeTypes;
- }
- push(node, metadata) {
- node._stylehacks = Object.assign({}, metadata, {
- message: `Bad ${metadata.identifier}: ${metadata.hack}`,
- browsers: this.targets
- });
- this.nodes.push(node);
- }
- any(node) {
- if (~this.nodeTypes.indexOf(node.type)) {
- detect.apply(this, arguments);
- return !!node._stylehacks;
- }
- return false;
- }
- detectAndResolve(...args) {
- this.nodes = [];
- detect.apply(this, args);
- return this.resolve();
- }
- detectAndWarn(...args) {
- this.nodes = [];
- detect.apply(this, args);
- return this.warn();
- }
- resolve() {
- return this.nodes.forEach(node => node.remove());
- }
- warn() {
- return this.nodes.forEach(node => {
- const { message, browsers, identifier, hack } = node._stylehacks;
- return node.warn(this.result, message, { browsers, identifier, hack });
- });
- }
- }
- return Plugin;
- }
- module.exports = exports["default"];
|