Sha256: f6b9644f59d92f22d732d488599f031cf8947a38c99b93f58f0705dbf1c6a688

Contents?: true

Size: 1.72 KB

Versions: 26

Compression:

Stored size: 1.72 KB

Contents

'use strict';

Object.defineProperty(exports, "__esModule", {
    value: true
});

var _postcss = require('postcss');

var _postcss2 = _interopRequireDefault(_postcss);

var _browserslist = require('browserslist');

var _browserslist2 = _interopRequireDefault(_browserslist);

var _plugins = require('./plugins');

var _plugins2 = _interopRequireDefault(_plugins);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

const stylehacks = _postcss2.default.plugin('stylehacks', (opts = {}) => {
    return (css, result) => {
        const resultOpts = result.opts || {};
        const browsers = (0, _browserslist2.default)(null, {
            stats: resultOpts.stats,
            path: __dirname,
            env: resultOpts.env
        });
        const processors = _plugins2.default.reduce((list, Plugin) => {
            const hack = new Plugin(result);
            const applied = browsers.some(browser => {
                return hack.targets.some(target => browser === target);
            });

            if (applied) {
                return list;
            }

            return [...list, hack];
        }, []);

        css.walk(node => {
            processors.forEach(proc => {
                if (!~proc.nodeTypes.indexOf(node.type)) {
                    return;
                }

                if (opts.lint) {
                    return proc.detectAndWarn(node);
                }

                return proc.detectAndResolve(node);
            });
        });
    };
});

stylehacks.detect = node => {
    return _plugins2.default.some(Plugin => {
        const hack = new Plugin();

        return hack.any(node);
    });
};

exports.default = stylehacks;
module.exports = exports['default'];

Version data entries

26 entries across 25 versions & 8 rubygems

Version Path
optimacms-0.1.61 spec/dummy/node_modules/stylehacks/dist/index.js
disco_app-0.18.0 test/dummy/node_modules/stylehacks/dist/index.js
disco_app-0.18.2 test/dummy/node_modules/stylehacks/dist/index.js
disco_app-0.16.1 test/dummy/node_modules/stylehacks/dist/index.js
disco_app-0.15.2 test/dummy/node_modules/stylehacks/dist/index.js
disco_app-0.18.4 test/dummy/node_modules/stylehacks/dist/index.js
disco_app-0.18.1 test/dummy/node_modules/stylehacks/dist/index.js
disco_app-0.12.7.pre.puma.pre.3 test/dummy/node_modules/stylehacks/dist/index.js
disco_app-0.14.0 test/dummy/node_modules/stylehacks/dist/index.js
disco_app-0.13.6.pre.puma.pre.3 test/dummy/node_modules/stylehacks/dist/index.js
tang-0.2.1 spec/tang_app/node_modules/stylehacks/dist/index.js
groonga-client-model-6.0.0 test/apps/rails6.0.3.5/node_modules/stylehacks/dist/index.js
groonga-client-model-6.0.0 test/apps/rails6.1.3/node_modules/stylehacks/dist/index.js
ruby2js-4.0.4 lib/tasks/testrails/node_modules/stylehacks/dist/index.js
ruby2js-4.0.3 lib/tasks/testrails/node_modules/stylehacks/dist/index.js
tang-0.2.0 spec/tang_app/node_modules/stylehacks/dist/index.js
tang-0.1.0 spec/tang_app/node_modules/stylehacks/dist/index.js
tang-0.0.9 spec/tang_app/node_modules/stylehacks/dist/index.js
enju_library-0.3.8 spec/dummy/node_modules/stylehacks/dist/index.js
jester-data-8.0.0 node_modules/stylehacks/dist/index.js