diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2026-05-18 23:10:59 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2026-05-18 23:41:44 +0800 |
| commit | fc87c009806dcc98867f6b58efe29b042aa01dee (patch) | |
| tree | 8f59b3f4a5b66e9dfef2d40c8d318e258a521228 /node_modules/stylehacks/src/plugin.js | |
| parent | 3336b2356ee6152d9c6ae59bd9b87ccbc0958407 (diff) | |
node: updatemain
Diffstat (limited to 'node_modules/stylehacks/src/plugin.js')
| -rw-r--r-- | node_modules/stylehacks/src/plugin.js | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/node_modules/stylehacks/src/plugin.js b/node_modules/stylehacks/src/plugin.js deleted file mode 100644 index 15c6b5a9..00000000 --- a/node_modules/stylehacks/src/plugin.js +++ /dev/null @@ -1,108 +0,0 @@ -'use strict'; -/** - * @typedef {object} Plugin - * @prop {Set<string>} targets - * @prop {Set<string>} nodeTypes - * @prop {(node: import('postcss').Node) => void} detectAndResolve - * @prop {(node: import('postcss').Node) => void} detectAndWarn - */ - -/** - * @typedef {import('postcss').Node & {_stylehacks: { - message: string, - browsers: Set<string>, - identifier: string, - hack: string }}} NodeWithInfo - */ - -module.exports = class BasePlugin { - /** - * @param {string[]} targets - * @param {string[]} nodeTypes - * @param {import('postcss').Result=} result - */ - constructor(targets, nodeTypes, result) { - /** @type {NodeWithInfo[]} */ - this.nodes = []; - this.targets = new Set(targets); - this.nodeTypes = new Set(nodeTypes); - this.result = result; - } - - /** - * @param {import('postcss').Node} node - * @param {{identifier: string, hack: string}} metadata - * @return {void} - */ - push(node, metadata) { - /** @type {NodeWithInfo} */ (node)._stylehacks = Object.assign( - {}, - metadata, - { - message: `Bad ${metadata.identifier}: ${metadata.hack}`, - browsers: this.targets, - } - ); - - this.nodes.push(/** @type {NodeWithInfo} */ (node)); - } - - /** - * @param {import('postcss').Node} node - * @return {boolean} - */ - any(node) { - if (this.nodeTypes.has(node.type)) { - this.detect(node); - - return /** @type {NodeWithInfo} */ (node)._stylehacks !== undefined; - } - - return false; - } - - /** - * @param {import('postcss').Node} node - * @return {void} - */ - detectAndResolve(node) { - this.nodes = []; - - this.detect(node); - - return this.resolve(); - } - - /** - * @param {import('postcss').Node} node - * @return {void} - */ - detectAndWarn(node) { - this.nodes = []; - - this.detect(node); - - return this.warn(); - } - /** @param {import('postcss').Node} node */ - // eslint-disable-next-line no-unused-vars - detect(node) { - throw new Error('You need to implement this method in a subclass.'); - } - - /** @return {void} */ - resolve() { - return this.nodes.forEach((node) => node.remove()); - } - - warn() { - return this.nodes.forEach((node) => { - const { message, browsers, identifier, hack } = node._stylehacks; - - return node.warn( - /** @type {import('postcss').Result} */ (this.result), - message + JSON.stringify({ browsers, identifier, hack }) - ); - }); - } -}; |
