93 lines
2.9 KiB
JavaScript
93 lines
2.9 KiB
JavaScript
var T = Object.defineProperty, W = Object.defineProperties;
|
|
var w = Object.getOwnPropertyDescriptors;
|
|
var g = Object.getOwnPropertySymbols;
|
|
var I = Object.prototype.hasOwnProperty, _ = Object.prototype.propertyIsEnumerable;
|
|
var y = (e, t, r) => t in e ? T(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, d = (e, t) => {
|
|
for (var r in t || (t = {}))
|
|
I.call(t, r) && y(e, r, t[r]);
|
|
if (g)
|
|
for (var r of g(t))
|
|
_.call(t, r) && y(e, r, t[r]);
|
|
return e;
|
|
}, h = (e, t) => W(e, w(t));
|
|
var o = (e, t, r) => new Promise((n, s) => {
|
|
var c = (a) => {
|
|
try {
|
|
m(r.next(a));
|
|
} catch (p) {
|
|
s(p);
|
|
}
|
|
}, f = (a) => {
|
|
try {
|
|
m(r.throw(a));
|
|
} catch (p) {
|
|
s(p);
|
|
}
|
|
}, m = (a) => a.done ? n(a.value) : Promise.resolve(a.value).then(c, f);
|
|
m((r = r.apply(e, t)).next());
|
|
});
|
|
import { isDev as A, matchCondition as x, getCodeWithWebComponent as v, normalizePath as F, getMappingFilePath as J, isJsTypeFile as L, transformCode as b } from "code-inspector-core";
|
|
const q = "vite-code-inspector-plugin", z = ["isJsx", "isTsx", "lang.jsx", "lang.tsx"];
|
|
function H(e) {
|
|
const t = {
|
|
port: 0,
|
|
entry: "",
|
|
output: e.output
|
|
};
|
|
return h(d({
|
|
name: q
|
|
}, e.enforcePre === !1 ? {} : { enforce: "pre" }), {
|
|
apply(n, { command: s }) {
|
|
return !e.close && A(e.dev, s === "serve");
|
|
},
|
|
transform(n, s) {
|
|
return o(this, null, function* () {
|
|
let c = e.exclude || [];
|
|
Array.isArray(c) || (c = [c]);
|
|
const f = x([...c, /\/node_modules\//], s), m = x(e.include || [], s);
|
|
if (f && !m)
|
|
return n;
|
|
n = yield v({
|
|
options: e,
|
|
file: s,
|
|
code: n,
|
|
record: t
|
|
});
|
|
const { escapeTags: a = [], mappings: p } = e, [P, j] = s.split("?", 2);
|
|
let l = F(P);
|
|
l = J(l, p);
|
|
const i = new URLSearchParams(j);
|
|
if (e.match && !e.match.test(l))
|
|
return n;
|
|
let u = "";
|
|
return L(l) || l.endsWith(".vue") && (z.some((C) => i.get(C) !== null) || i.get("lang") === "tsx" || i.get("lang") === "jsx") ? u = "jsx" : l.endsWith(".html") && i.get("type") === "template" && i.has("vue") || l.endsWith(".vue") && i.get("type") !== "style" && i.get("raw") === null ? u = "vue" : l.endsWith(".svelte") && (u = "svelte"), u ? b({
|
|
content: n,
|
|
filePath: l,
|
|
fileType: u,
|
|
escapeTags: a,
|
|
pathType: e.pathType
|
|
}) : n;
|
|
});
|
|
},
|
|
// 追加到 html 中,适配 MPA 项目
|
|
transformIndexHtml(n) {
|
|
return o(this, null, function* () {
|
|
const s = yield v({
|
|
options: h(d({}, e), { importClient: "code" }),
|
|
file: "main.js",
|
|
code: "",
|
|
record: t,
|
|
inject: !0
|
|
});
|
|
return n.replace(
|
|
"<head>",
|
|
'<head><script type="module">\n'.concat(s, "\n<\/script>")
|
|
);
|
|
});
|
|
}
|
|
});
|
|
}
|
|
export {
|
|
H as ViteCodeInspectorPlugin
|
|
};
|