@minko-fe/postcss-config
Version:
postcss-config
91 lines (86 loc) • 2.84 kB
JavaScript
;
var lodashPro = require('@minko-fe/lodash-pro');
var module$1 = require('module');
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
// src/nextjs/index.ts
var _require = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.src || new URL('out.js', document.baseURI).href)));
var postcssConfig = (options, unPlugins2) => {
if (options["postcss-import"] !== false) {
unPlugins2("postcss-import");
}
if (options["tailwindcss/nesting"] !== false) {
unPlugins2("tailwindcss/nesting");
}
{
const { tailwindcss } = options;
if (tailwindcss !== false) {
const options2 = lodashPro.isObject(tailwindcss) ? tailwindcss : void 0;
unPlugins2("tailwindcss", options2);
}
}
{
const { autoprefixer } = options;
if (autoprefixer !== false) {
unPlugins2("autoprefixer");
}
}
{
const pxtorem = options["postcss-pxtorem"];
if (pxtorem) {
unPlugins2("@minko-fe/postcss-pxtorem", options);
}
}
{
const pxtoviewport = options["postcss-pxtoviewport"];
if (pxtoviewport) {
unPlugins2("@minko-fe/postcss-pxtoviewport", options);
}
}
{
const presetEnv = options["postcss-preset-env"];
if (presetEnv !== false) {
const browserslist = _require("browserslist");
const defaultBrowserslist = browserslist.loadConfig({ path: "." });
const defaultOptions2 = {
browsers: defaultBrowserslist || ["defaults"],
features: {
"nesting-rules": false,
"custom-properties": false
},
autoprefixer: {
// Disable legacy flexbox support
flexbox: "no-2009"
},
// Enable CSS features that have shipped to the
// web platform, i.e. in 2+ browsers unflagged.
stage: 3
};
const _options = lodashPro.merge(defaultOptions2, lodashPro.isObject(presetEnv) ? presetEnv : {});
if (options["tailwindcss/nesting"] === false) {
_options.features ??= {};
_options.features["nesting-rules"] = true;
}
unPlugins2("postcss-preset-env", _options);
}
}
};
// src/nextjs/index.ts
var defaultOptions = {
"postcss-import": true,
"tailwindcss/nesting": true,
"tailwindcss": true,
"postcss-pxtorem": false,
"postcss-pxtoviewport": false,
"autoprefixer": true,
"postcss-preset-env": true
};
var pluginsForNextjs = [];
function unPlugins(pluginName, options) {
pluginsForNextjs.push(options ? [pluginName, options] : pluginName);
}
function definePlugins(options) {
options = lodashPro.merge(defaultOptions, options || {});
postcssConfig(options, unPlugins);
return pluginsForNextjs;
}
exports.definePlugins = definePlugins;