Son CV dans un terminal web en Javascript!
https://terminal-cv.gregandev.fr
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.5 KiB
69 lines
1.5 KiB
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = void 0;
|
|
|
|
var _browserslist = _interopRequireDefault(require("browserslist"));
|
|
|
|
var _plugins = _interopRequireDefault(require("./plugins"));
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
function pluginCreator(opts = {}) {
|
|
return {
|
|
postcssPlugin: 'stylehacks',
|
|
|
|
OnceExit(css, {
|
|
result
|
|
}) {
|
|
const resultOpts = result.opts || {};
|
|
const browsers = (0, _browserslist.default)(null, {
|
|
stats: resultOpts.stats,
|
|
path: __dirname,
|
|
env: resultOpts.env
|
|
});
|
|
|
|
const processors = _plugins.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);
|
|
});
|
|
});
|
|
}
|
|
|
|
};
|
|
}
|
|
|
|
pluginCreator.detect = node => {
|
|
return _plugins.default.some(Plugin => {
|
|
const hack = new Plugin();
|
|
return hack.any(node);
|
|
});
|
|
};
|
|
|
|
pluginCreator.postcss = true;
|
|
var _default = pluginCreator;
|
|
exports.default = _default;
|
|
module.exports = exports.default; |