87 lines
2.5 KiB
JavaScript
87 lines
2.5 KiB
JavaScript
var f = (t, p, a) => new Promise((i, c) => {
|
|
var u = (n) => {
|
|
try {
|
|
r(a.next(n));
|
|
} catch (s) {
|
|
c(s);
|
|
}
|
|
}, e = (n) => {
|
|
try {
|
|
r(a.throw(n));
|
|
} catch (s) {
|
|
c(s);
|
|
}
|
|
}, r = (n) => n.done ? i(n.value) : Promise.resolve(n.value).then(u, e);
|
|
r((a = a.apply(t, p)).next());
|
|
});
|
|
import { isDev as T, getMappingFilePath as v, matchCondition as m, getCodeWithWebComponent as j, isJsTypeFile as F, transformCode as h, parseSFC as P } from "code-inspector-core";
|
|
import W from "fs";
|
|
import b from "path";
|
|
const w = "esbuild-code-inspector-plugin";
|
|
function D(t) {
|
|
return {
|
|
name: w,
|
|
setup(p) {
|
|
if (t.close || !T(t.dev, !1))
|
|
return;
|
|
const a = {
|
|
port: 0,
|
|
entry: "",
|
|
output: t.output
|
|
}, { escapeTags: i = [] } = t, c = /* @__PURE__ */ new Map();
|
|
p.onLoad(
|
|
{ filter: t.match || /\.(jsx|tsx|js|ts|mjs|mts)?$/ },
|
|
(u) => f(this, null, function* () {
|
|
let e = u.path;
|
|
e = v(e, t.mappings);
|
|
let r = yield W.promises.readFile(e, "utf8"), n = c.get(e);
|
|
if (!n || n.originCode !== r) {
|
|
let s = r, o = t.exclude || [];
|
|
Array.isArray(o) || (o = [o]);
|
|
const g = m(
|
|
[...o, /\/node_modules\//],
|
|
e
|
|
), y = m(t.include || [], e);
|
|
if (g && !y)
|
|
return s;
|
|
s = yield j({
|
|
options: t,
|
|
file: e,
|
|
code: s,
|
|
record: a
|
|
});
|
|
let l = "";
|
|
if (F(e) ? l = "jsx" : e.endsWith(".svelte") && (l = "svelte"), l)
|
|
s = h({
|
|
content: s,
|
|
filePath: e,
|
|
fileType: l,
|
|
escapeTags: i,
|
|
pathType: t.pathType
|
|
});
|
|
else if (e.endsWith(".vue")) {
|
|
l = "vue";
|
|
const { descriptor: d } = P(s, {
|
|
sourceMap: !1
|
|
}), C = h({
|
|
content: d.template.content,
|
|
filePath: e,
|
|
fileType: l,
|
|
escapeTags: i,
|
|
pathType: t.pathType
|
|
});
|
|
s = s.replace(d.template.content, C);
|
|
}
|
|
const x = b.extname(e).replace(".", "");
|
|
n = { originCode: r, output: { contents: s, loader: x } }, c.set(e, n);
|
|
}
|
|
return n.output;
|
|
})
|
|
);
|
|
}
|
|
};
|
|
}
|
|
export {
|
|
D as EsbuildCodeInspectorPlugin
|
|
};
|