// postcss.config.js
import { purgeCSSPlugin } from '@fullhuman/postcss-purgecss'
import glob from 'glob-all'
import path from 'path'
import postcssApply from 'postcss-apply'
import postcssEasing from 'postcss-easings'
import postcssImport from 'postcss-import'
import postcssMixins from 'postcss-mixins'
import postcssNesting from 'postcss-nesting'
import postcssPresetEnv from 'postcss-preset-env'
import postcssUtilities from 'postcss-utilities'

const plugins = [
  postcssImport(),
  postcssApply(),
  postcssMixins(),
  postcssEasing(),
  postcssPresetEnv({
    stage: 1,
    features: {
      'nesting-rules': false,
    },
  }),

  postcssUtilities(),
  postcssNesting(),
]

if (process.env.NODE_ENV === 'production') {
  plugins.push(
    purgeCSSPlugin({
      content: glob.sync([
        path.join(process.cwd(), 'src/**/*.{js,jsx,ts,tsx,css}'),
        path.join(process.cwd(), 'content/**/*.{md,mdx}'),
      ]),
      safelist: ['html', 'body'],
    })
  )
}

export default {
  plugins,
}
