serverPluginEsbuild.js 1.1 KB

1234567891011121314151617181920212223242526272829
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.esbuildPlugin = void 0;
  4. const esbuildService_1 = require("../esbuildService");
  5. const utils_1 = require("../utils");
  6. exports.esbuildPlugin = ({ app, config, resolver }) => {
  7. const jsxConfig = esbuildService_1.resolveJsxOptions(config.jsx);
  8. app.use(async (ctx, next) => {
  9. // intercept and return vue jsx helper import
  10. if (ctx.path === esbuildService_1.vueJsxPublicPath) {
  11. await ctx.read(esbuildService_1.vueJsxFilePath);
  12. }
  13. await next();
  14. if (!esbuildService_1.tjsxRE.test(ctx.path) ||
  15. !ctx.body ||
  16. ctx.type === 'text/html' ||
  17. resolver.isPublicRequest(ctx.path)) {
  18. return;
  19. }
  20. ctx.type = 'js';
  21. const src = await utils_1.readBody(ctx.body);
  22. const { code, map } = await esbuildService_1.transform(src, resolver.requestToFile(utils_1.cleanUrl(ctx.url)), jsxConfig, config.jsx);
  23. ctx.body = code;
  24. if (map) {
  25. ctx.map = JSON.parse(map);
  26. }
  27. });
  28. };
  29. //# sourceMappingURL=serverPluginEsbuild.js.map