{
  "name": "esbuild-plugin-compress",
  "version": "1.0.1",
  "description": "ESBuild plugin for output compression",
  "keywords": [
    "esbuild",
    "ESBuild",
    "compress",
    "plugin"
  ],
  "homepage": "https://github.com/LinbuduLab/esbuild-plugins/tree/master/packages/esbuild-plugin-compress#readme",
  "changelog": "https://github.com/LinbuduLab/esbuild-plugins/blob/main/packages/esbuild-plugin-compress/CHANGELOG.md",
  "bugs": {
    "url": "https://github.com/LinbuduLab/esbuild-plugins/issues"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/LinbuduLab/esbuild-plugins.git"
  },
  "license": "MIT",
  "author": "Linbudu <linbudu599@gmail.com> (https://github.com/linbudu599)",
  "main": "dist/index.js",
  "typings": "dist/index.d.ts",
  "exports": {
    ".": {
      "require": "./dist/index.js",
      "import": "./dist/index.mjs",
      "types": "./dist/index.d.ts"
    }
  },
  "dependencies": {
    "chalk": "^4.1.2",
    "fs-extra": "^10.0.0",
    "micromatch": "^4.0.5"
  },
  "peerDependencies": {
    "esbuild": ">= 0.14.0"
  },
  "devDependencies": {
    "@types/micromatch": "^4.0.2"
  },
  "scripts": {
    "dev": "tsup src/index.ts --watch --dts --format esm",
    "build": "rm -rf dist && tsup src/index.ts --config ../../tsup.config.ts"
  },
  "readme": "# esbuild-plugin-compress\n\nESBuild plugin for output compression (gzip/brotli).\n\n- [Author](https://github.com/linbudu599)\n- [GitHub Repo](https://github.com/LinbuduLab/esbuild-plugins/tree/master/packages/esbuild-plugin-compress#readme)\n- [Changelog](https://github.com/LinbuduLab/esbuild-plugins/blob/main/packages/esbuild-plugin-compress/CHANGELOG.md)\n\n## Usage\n\n```bash\nnpm install esbuild-plugin-compress --save-dev\npnpm install esbuild-plugin-compress --save-dev\nyarn add esbuild-plugin-compress --save-dev\n```\n\n**You must set `write` options to be false to use this plugin, as ESBuild only expose `outputFile` info when setting false `write` options.**\n\n```typescript\nimport { build } from 'esbuild';\nimport { compress } from 'esbuild-plugin-compress';\n\nimport type { BuildOptions } from 'esbuild';\n\nconst baseOptions: BuildOptions = {\n  entryPoints: ['./src/index.ts'],\n  outfile: './build/index.js',\n};\n\nconst compressOptions: BuildOptions = {\n  ...baseOptions,\n  write: false,\n  plugins: [\n    ...(baseOptions.plugins ?? []),\n    compress({\n      outputDir: 'dist',\n      exclude: ['**/*.map'],\n    }),\n  ],\n};\n\nbuild(baseOptions).catch(() => process.exit(1));\n\nbuild(compressOptions).catch(() => process.exit(1));\n```\n\n## Configurations\n\n```typescript\nexport interface CompressOptions {\n  /**\n   * enable gzip compress\n   * @default true\n   */\n  gzip?: boolean;\n\n  /**\n   * gzip compress options passed to zlib.gzipSync\n   */\n  gzipOptions?: ZlibOptions;\n\n  /**\n   * enable brotli compress\n   * @default true\n   */\n  brotli?: boolean;\n\n  /**\n   * brotli compress options passed to zlib.brotliCompressSync\n   */\n  brotliOptions?: BrotliOptions;\n  /**\n   * should write origin file\n   * @default true\n   */\n  emitOrigin?: boolean;\n\n  /**\n   * the output of compressed file\n   * if not specified, will resolve from outdir or outfile options\n   */\n  outputDir?: string;\n\n  /**\n   * exclude files from compression\n   * works as micromatch.isMatch(outputPath, excludePatterns) under the hood\n   * @default []\n   */\n  exclude?: string | string[];\n}\n```\n"
}