vue-pure-admin/node_modules/vite/dist/node/server/serverPluginEsbuild.js
2021-03-01 15:06:11 +08:00

29 lines
1.1 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.esbuildPlugin = void 0;
const esbuildService_1 = require("../esbuildService");
const utils_1 = require("../utils");
exports.esbuildPlugin = ({ app, config, resolver }) => {
const jsxConfig = esbuildService_1.resolveJsxOptions(config.jsx);
app.use(async (ctx, next) => {
// intercept and return vue jsx helper import
if (ctx.path === esbuildService_1.vueJsxPublicPath) {
await ctx.read(esbuildService_1.vueJsxFilePath);
}
await next();
if (!esbuildService_1.tjsxRE.test(ctx.path) ||
!ctx.body ||
ctx.type === 'text/html' ||
resolver.isPublicRequest(ctx.path)) {
return;
}
ctx.type = 'js';
const src = await utils_1.readBody(ctx.body);
const { code, map } = await esbuildService_1.transform(src, resolver.requestToFile(utils_1.cleanUrl(ctx.url)), jsxConfig, config.jsx);
ctx.body = code;
if (map) {
ctx.map = JSON.parse(map);
}
});
};
//# sourceMappingURL=serverPluginEsbuild.js.map