aboutsummaryrefslogtreecommitdiff
path: root/node_modules/postcss-discard-overridden
diff options
context:
space:
mode:
authorruki <waruqi@gmail.com>2018-11-08 00:38:48 +0800
committerruki <waruqi@gmail.com>2018-11-07 21:53:09 +0800
commit26105034da4fcce7ac883c899d781f016559310d (patch)
treec459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/postcss-discard-overridden
parent2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff)
downloadxmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz
xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip
switch to vuepress
Diffstat (limited to 'node_modules/postcss-discard-overridden')
-rw-r--r--node_modules/postcss-discard-overridden/.babelrc8
-rw-r--r--node_modules/postcss-discard-overridden/.editorconfig12
-rw-r--r--node_modules/postcss-discard-overridden/.npmignore7
-rw-r--r--node_modules/postcss-discard-overridden/CHANGELOG.md0
-rw-r--r--node_modules/postcss-discard-overridden/LICENSE20
-rw-r--r--node_modules/postcss-discard-overridden/README.md159
-rw-r--r--node_modules/postcss-discard-overridden/dist/index.js57
-rw-r--r--node_modules/postcss-discard-overridden/index.js46
-rw-r--r--node_modules/postcss-discard-overridden/package.json44
-rw-r--r--node_modules/postcss-discard-overridden/test/input.css84
-rw-r--r--node_modules/postcss-discard-overridden/test/output.css52
11 files changed, 489 insertions, 0 deletions
diff --git a/node_modules/postcss-discard-overridden/.babelrc b/node_modules/postcss-discard-overridden/.babelrc
new file mode 100644
index 00000000..aef4ffa4
--- /dev/null
+++ b/node_modules/postcss-discard-overridden/.babelrc
@@ -0,0 +1,8 @@
+{
+ "presets": [
+ "es2015"
+ ],
+ "plugins": [
+ "add-module-exports"
+ ]
+}
diff --git a/node_modules/postcss-discard-overridden/.editorconfig b/node_modules/postcss-discard-overridden/.editorconfig
new file mode 100644
index 00000000..e2cb9700
--- /dev/null
+++ b/node_modules/postcss-discard-overridden/.editorconfig
@@ -0,0 +1,12 @@
+root = true
+
+[*]
+indent_style = space
+indent_size = 4
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[*.{json,yml}]
+indent_size = 2
diff --git a/node_modules/postcss-discard-overridden/.npmignore b/node_modules/postcss-discard-overridden/.npmignore
new file mode 100644
index 00000000..140f99bd
--- /dev/null
+++ b/node_modules/postcss-discard-overridden/.npmignore
@@ -0,0 +1,7 @@
+.gitignore
+
+node_modules/
+npm-debug.log
+
+test.js
+.travis.yml
diff --git a/node_modules/postcss-discard-overridden/CHANGELOG.md b/node_modules/postcss-discard-overridden/CHANGELOG.md
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/node_modules/postcss-discard-overridden/CHANGELOG.md
diff --git a/node_modules/postcss-discard-overridden/LICENSE b/node_modules/postcss-discard-overridden/LICENSE
new file mode 100644
index 00000000..f901ded7
--- /dev/null
+++ b/node_modules/postcss-discard-overridden/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright 2016 Justineo <justice360@gmail.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/postcss-discard-overridden/README.md b/node_modules/postcss-discard-overridden/README.md
new file mode 100644
index 00000000..f9efd84d
--- /dev/null
+++ b/node_modules/postcss-discard-overridden/README.md
@@ -0,0 +1,159 @@
+# PostCSS Discard Overridden [![Build Status][ci-img]][ci]
+
+[PostCSS] plugin to discard overridden `@keyframes` or `@counter-style`.
+
+`@keyframes` or `@counter-style` will be overridden by those who share the same identifiers and appear later in stylesheets. So we can discard all of them except the last one. When defined inside a `@media` or `@supports` rule, `@keyframes` and `@counter-style` rules only override global rules in some of the client browsers so they need handled separately. This plugin has taken care of this and transforms the PostCss AST **safely**.
+
+[PostCSS]: https://github.com/postcss/postcss
+[ci-img]: https://travis-ci.org/Justineo/postcss-discard-overridden.svg
+[ci]: https://travis-ci.org/Justineo/postcss-discard-overridden
+
+```css
+@-webkit-keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 0.8;
+ }
+}
+@keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 0.8;
+ }
+}
+@media (max-width: 500px) {
+ @-webkit-keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+ }
+ @keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+ }
+ @-webkit-keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 0.8;
+ }
+ }
+ @keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 0.8;
+ }
+ }
+ @supports (display: flex) {
+ @-webkit-keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+ }
+ @keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+ }
+ }
+}
+@-webkit-keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+@keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+```
+
+```css
+@media (max-width: 500px) {
+ @-webkit-keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 0.8;
+ }
+ }
+ @keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 0.8;
+ }
+ }
+ @supports (display: flex) {
+ @-webkit-keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+ }
+ @keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+ }
+ }
+}
+@-webkit-keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+@keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+```
+
+## Usage
+
+```js
+postcss([ require('postcss-discard-overridden') ])
+```
+
+See [PostCSS] docs for examples for your environment.
diff --git a/node_modules/postcss-discard-overridden/dist/index.js b/node_modules/postcss-discard-overridden/dist/index.js
new file mode 100644
index 00000000..dbb05f96
--- /dev/null
+++ b/node_modules/postcss-discard-overridden/dist/index.js
@@ -0,0 +1,57 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+
+var _postcss = require('postcss');
+
+var _postcss2 = _interopRequireDefault(_postcss);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var OVERRIDABLE_RULES = ['keyframes', 'counter-style'];
+var SCOPE_RULES = ['media', 'supports'];
+
+function isOverridable(name) {
+ return OVERRIDABLE_RULES.indexOf(_postcss2.default.vendor.unprefixed(name)) !== -1;
+}
+
+function isScope(name) {
+ return SCOPE_RULES.indexOf(_postcss2.default.vendor.unprefixed(name)) !== -1;
+}
+
+function getScope(node) {
+ var current = node.parent;
+ var chain = [node.name, node.params];
+ do {
+ if (current.type === 'atrule' && isScope(current.name)) {
+ chain.unshift(current.name + ' ' + current.params);
+ }
+ current = current.parent;
+ } while (current);
+ return chain.join('|');
+}
+
+exports.default = _postcss2.default.plugin('postcss-discard-overridden', function () {
+ return function (css) {
+ var cache = {};
+ var rules = [];
+ css.walkAtRules(function (rule) {
+ if (rule.type === 'atrule' && isOverridable(rule.name)) {
+ var scope = getScope(rule);
+ cache[scope] = rule;
+ rules.push({
+ node: rule,
+ scope: scope
+ });
+ }
+ });
+ rules.forEach(function (rule) {
+ if (cache[rule.scope] !== rule.node) {
+ rule.node.remove();
+ }
+ });
+ };
+});
+module.exports = exports['default']; \ No newline at end of file
diff --git a/node_modules/postcss-discard-overridden/index.js b/node_modules/postcss-discard-overridden/index.js
new file mode 100644
index 00000000..a370ebca
--- /dev/null
+++ b/node_modules/postcss-discard-overridden/index.js
@@ -0,0 +1,46 @@
+import postcss from 'postcss';
+
+const OVERRIDABLE_RULES = ['keyframes', 'counter-style'];
+const SCOPE_RULES = ['media', 'supports'];
+
+function isOverridable(name) {
+ return OVERRIDABLE_RULES.indexOf(postcss.vendor.unprefixed(name)) !== -1;
+}
+
+function isScope(name) {
+ return SCOPE_RULES.indexOf(postcss.vendor.unprefixed(name)) !== -1;
+}
+
+function getScope(node) {
+ let current = node.parent;
+ let chain = [node.name, node.params];
+ do {
+ if (current.type === 'atrule' && isScope(current.name)) {
+ chain.unshift(current.name + ' ' + current.params);
+ }
+ current = current.parent;
+ } while (current);
+ return chain.join('|');
+}
+
+export default postcss.plugin('postcss-discard-overridden', () => {
+ return css => {
+ let cache = {};
+ let rules = [];
+ css.walkAtRules(rule => {
+ if (rule.type === 'atrule' && isOverridable(rule.name)) {
+ let scope = getScope(rule);
+ cache[scope] = rule;
+ rules.push({
+ node: rule,
+ scope
+ });
+ }
+ });
+ rules.forEach(rule => {
+ if (cache[rule.scope] !== rule.node) {
+ rule.node.remove();
+ }
+ });
+ };
+});
diff --git a/node_modules/postcss-discard-overridden/package.json b/node_modules/postcss-discard-overridden/package.json
new file mode 100644
index 00000000..88109969
--- /dev/null
+++ b/node_modules/postcss-discard-overridden/package.json
@@ -0,0 +1,44 @@
+{
+ "name": "postcss-discard-overridden",
+ "version": "0.1.1",
+ "description": "PostCSS plugin to discard overridden @keyframes or @counter-style.",
+ "main": "dist/index.js",
+ "keywords": [
+ "postcss",
+ "css",
+ "postcss-plugin",
+ "at-rules",
+ "@keyframes",
+ "@counter-style"
+ ],
+ "author": "Justineo <justice360@gmail.com>",
+ "license": "MIT",
+ "repository": "Justineo/postcss-discard-overridden",
+ "bugs": {
+ "url": "https://github.com/Justineo/postcss-discard-overridden/issues"
+ },
+ "homepage": "https://github.com/Justineo/postcss-discard-overridden",
+ "dependencies": {
+ "postcss": "^5.0.16"
+ },
+ "devDependencies": {
+ "ava": "^0.14.0",
+ "babel-cli": "^6.7.7",
+ "babel-plugin-add-module-exports": "^0.1.4",
+ "babel-preset-es2015": "^6.6.0",
+ "babel-register": "^6.7.2",
+ "eslint": "^2.1.0",
+ "eslint-config-postcss": "^2.0.0"
+ },
+ "scripts": {
+ "test": "ava && eslint *.js"
+ },
+ "eslintConfig": {
+ "extends": "eslint-config-postcss/es5"
+ },
+ "ava": {
+ "require": [
+ "babel-register"
+ ]
+ }
+}
diff --git a/node_modules/postcss-discard-overridden/test/input.css b/node_modules/postcss-discard-overridden/test/input.css
new file mode 100644
index 00000000..83b6e4c3
--- /dev/null
+++ b/node_modules/postcss-discard-overridden/test/input.css
@@ -0,0 +1,84 @@
+@-webkit-keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 0.8;
+ }
+}
+@keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 0.8;
+ }
+}
+@media (max-width: 500px) {
+ @-webkit-keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+ }
+ @keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+ }
+ @-webkit-keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 0.8;
+ }
+ }
+ @keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 0.8;
+ }
+ }
+ @supports (display: flex) {
+ @-webkit-keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+ }
+ @keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+ }
+ }
+}
+@-webkit-keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+@keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
diff --git a/node_modules/postcss-discard-overridden/test/output.css b/node_modules/postcss-discard-overridden/test/output.css
new file mode 100644
index 00000000..b1a50094
--- /dev/null
+++ b/node_modules/postcss-discard-overridden/test/output.css
@@ -0,0 +1,52 @@
+@media (max-width: 500px) {
+ @-webkit-keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 0.8;
+ }
+ }
+ @keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 0.8;
+ }
+ }
+ @supports (display: flex) {
+ @-webkit-keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+ }
+ @keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+ }
+ }
+}
+@-webkit-keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+@keyframes fade-in {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}