import nodeResolve from '@rollup/plugin-node-resolve'
import commonjs from "@rollup/plugin-commonjs"
import babel from '@rollup/plugin-babel'
import terser from '@rollup/plugin-terser';
import json from '@rollup/plugin-json'
import ts from "rollup-plugin-typescript2"

const extensions = [".js", ".ts"]
const reserved = ['ComPDFKitJS', 'DataArray', 'LineType', 'PageSize', 'Rect', 'RGBColor', 'FontDa', 'PDFDestination', 'WidgetItem', 'WidgetItemsArray', 'TextFindItemArray', 'EditCharPlace', 'EndEditCharPlace', 'RectArray', 'CursorPoints', 'EditTextStyle', 'U8StringData', 'PDFRange', 'TextRectArray', 'ImageAreaInfo', 'SignerArray', 'CertArray', 'AccessInfoArray', 'PolicyArray', 'CRLPointArray', 'OCSPUrlArray', 'DiffInfoArray', 'AnnotArray', 'fontsJson', 'fontFile', 'LayerPrintData', 'LayerZoomData', 'SepColorsArray', 'SelectPointColorArray', 'MeasureVerticesArray', 'BorderStyle']

const plugins = [
  json(),
  ts(),
  nodeResolve({
    preferBuiltins: true,
    mainFields: ['browser']
  }),
  commonjs(),
  babel({
    extensions,
    exclude: 'node_modules/**', // 防止打包node_modules下的文件
    // 使用预设
    presets: [['@babel/preset-env', {
      "modules": false,
      // 目标浏览器
      "targets": {
        "edge": '17',
        "firefox": '60',
        "chrome": '67',
        "safari": '10.0',
        'ie': '10',
      },
    }]]
  })
]

plugins.push(
terser({
  mangle: {
    reserved
  }
}))

export default [{
  input: "./src/worker/compdfkit_worker.js",
  output: [
    {
      format: "es",
      file: "../webview/lib/PDFWorker.js"
    }
    // {
    //   format: "es",
    //   name: 'ComPDFKitViewer',
    //   file: "./dist/webviewer.js",
    //   sourcemap: false
    // }
  ],
  plugins
},
{
  input: "./src/index.js",
  output: [
    {
      format: "es",
      file: "../webview/lib/webview.min.js"
    }
  ],
  plugins
}];