Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/bs / src / .plugins / prod / compression.ts
Size: Mime:
import { Configuration, Options } from '../../typings'

/**
 * @todo @see https://jira.skava.net/browse/SKB2B-1190
 * @see https://codeburst.io/express-brotli-webpack-a60773e7ec6c
 */
export default function compressionMiddleware(
  config: Configuration,
  options: Options
) {
  console.error(
    '[bs] not compressing need to do something with express static not working'
  )
  return

  if (!process.env.OPTIMIZE) {
    console.log('[bs] not compressing - not OPTIMIZE env')
    return
  } else if (!options.isClient) {
    console.log('[bs] not compressing - server')
    return
  } else {
    console.log('[bs] compressing output')
  }

  const CompressionPlugin = require('compression-webpack-plugin')
  const BrotliPlugin = require('brotli-webpack-plugin')
  const compressionPlugin = new CompressionPlugin({
    filename: '[path].gz[query]',
    // asset: '[path].gz[query]',
    include: /\.js$|\.css$|\.html$/,
    // test: /\.js$|\.css$|\.html$/,
    algorithm: 'gzip',
    // threshold: 10240,
    // minRatio: 0.8,
  })
  const brotliPlugin = new BrotliPlugin({
    asset: '[path].br[query]',
    test: /\.js$|\.css$|\.html$/,
    threshold: 10240,
    minRatio: 0.8,
  })

  config.plugins.push(compressionPlugin)
  config.plugins.push(brotliPlugin)
}