var m = (e, p, o) => new Promise((t, a) => {
  var l = (r) => {
    try {
      c(o.next(r));
    } catch (n) {
      a(n);
    }
  }, s = (r) => {
    try {
      c(o.throw(r));
    } catch (n) {
      a(n);
    }
  }, c = (r) => r.done ? t(r.value) : Promise.resolve(r.value).then(l, s);
  c((o = o.apply(e, p)).next());
});
import { isDev as u, isExcludedFile as f, getCodeWithWebComponent as i, isJsTypeFile as h, normalizePath as d, getMappingFilePath as y, transformCode as g } from "@code-inspector/core";
import x from "path";
function k(e) {
  const p = {
    port: 0,
    entry: "",
    output: e.output
  };
  return e.close || !u(e.dev, process.env.NODE_ENV === "development") ? {
    name: "@code-inspector/mako"
  } : {
    name: "@code-inspector/mako",
    enforce: e.enforcePre === !1 ? "post" : "pre",
    transform: (o, t) => m(this, null, function* () {
      if (f(t, e) || t.includes("/.umi/"))
        return;
      const { escapeTags: a = [], mappings: l, match: s } = e || {};
      if (s && !s.test(t))
        return;
      const c = yield i({
        options: e,
        file: t,
        code: o,
        record: p
      });
      if (h(t)) {
        const r = x.extname(t).slice(1);
        let n = d(t);
        return n = y(n, l), { content: g({
          content: c,
          filePath: n,
          fileType: "jsx",
          escapeTags: a,
          pathType: e.pathType
        }), type: r };
      }
    })
  };
}
export {
  k as MakoCodeInspectorPlugin
};
