{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import * as path from 'path'\nconst imageminSvgo = require('../vendor/imagemin-svgo')\n\nimport imagemin from 'imagemin'\nimport imageminJpegtran from 'imagemin-jpegtran'\nimport imageminPngquant from 'imagemin-pngquant'\nimport type { Options as OptionsPng} from 'imagemin-pngquant'\nimport type { Options as OptionsJpeg } from 'imagemin-jpegtran'\nimport type {PluginConfig } from \"svgo\"\n\nimport { wrapper, TypeOnBody, TypeToolProp, TypeToolOptions } from '@asset-toolkit/core'\n\nexport interface TypeProps extends TypeToolOptions {\n  jpgOptions: OptionsJpeg\n  pngOptions: OptionsPng\n  svgOptions: PluginConfig\n  plugins: any[]\n}\n\n/**\n * A tool compress image and svg.\n * https://www.npmjs.com/package/imagemin\n *\n * @param props - { pathIn, pathOut }\n * @param options - { jpgOptions, pngOptions, svgOptions, plugins }\n * @returns { Promise(returns) }\n */\nconst imageCompression: (_props: TypeToolProp, options?: TypeProps) => Promise<unknown> = wrapper(\n  undefined,\n  ({ pathIn, pathOut, options, wrapperProps }: TypeOnBody): Promise<imagemin.Result[]> => {\n    const { jpgOptions, pngOptions, svgOptions, plugins } = Object.assign(\n      {\n        jpgOptions: false,\n        pngOptions: false,\n        svgOptions: false,\n        plugins: [],\n      },\n      options,\n    )\n    const exts = (wrapperProps && wrapperProps.exts) || []\n\n    return imagemin([path.join(pathIn || pathOut, `/**/*.{${exts.join(',')}}`)], {\n      destination: path.join(pathOut, '/'),\n      plugins: [imageminJpegtran(jpgOptions), imageminPngquant(pngOptions), imageminSvgo(svgOptions), ...plugins],\n    })\n  },\n  { exts: ['jpg', 'JPG', 'jpeg', 'JPEG', 'png', 'PNG', 'svg', 'SVG'], name: 'Image Compression' },\n)\n\nexport default imageCompression\n"],"names":["imageminSvgo","require","imageCompression","wrapper","undefined","pathIn","pathOut","wrapperProps","Object","assign","jpgOptions","pngOptions","svgOptions","plugins","options","imagemin","path","join","exts","destination","imageminJpegtran","imageminPngquant","name"],"mappings":"+JACA,IAAMA,EAAeC,QAAQ,2BA0BvBC,EAAoFC,OACxFC,EACA,gBAAGC,IAAAA,OAAQC,IAAAA,QAAkBC,IAAAA,eAC6BC,OAAOC,OAC7D,CACEC,YAAY,EACZC,YAAY,EACZC,YAAY,EACZC,QAAS,MANKC,SACVJ,IAAAA,WAAYC,IAAAA,WAAYC,IAAAA,WAAYC,IAAAA,QAW5C,OAAOE,EAAS,CAACC,EAAKC,KAAKZ,GAAUC,aAFvBC,GAAgBA,EAAaW,MAAS,IAESD,KAAK,WAAW,CAC3EE,YAAaH,EAAKC,KAAKX,EAAS,KAChCO,SAAUO,EAAiBV,GAAaW,EAAiBV,GAAaX,EAAaY,WAAgBC,MAGvG,CAAEK,KAAM,CAAC,MAAO,MAAO,OAAQ,OAAQ,MAAO,MAAO,MAAO,OAAQI,KAAM"}