resolver.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. "use strict";
  2. var __importDefault = (this && this.__importDefault) || function (mod) {
  3. return (mod && mod.__esModule) ? mod : { "default": mod };
  4. };
  5. Object.defineProperty(exports, "__esModule", { value: true });
  6. exports.createResolver = exports.SITE_DATA_REQUEST_PATH = exports.SITE_DATA_ID = exports.SHARED_PATH = exports.APP_PATH = void 0;
  7. const path_1 = __importDefault(require("path"));
  8. exports.APP_PATH = path_1.default.join(__dirname, '../client/app');
  9. exports.SHARED_PATH = path_1.default.join(__dirname, '../client/shared');
  10. // special virtual file
  11. // we can't directly import '/@siteData' becase
  12. // - it's not an actual file so we can't use tsconfig paths to redirect it
  13. // - TS doesn't allow shimming a module that starts with '/'
  14. exports.SITE_DATA_ID = '@siteData';
  15. exports.SITE_DATA_REQUEST_PATH = '/' + exports.SITE_DATA_ID;
  16. // this is a path resolver that is passed to vite
  17. // so that we can resolve custom requests that start with /@app or /@theme
  18. // we also need to map file paths back to their public served paths so that
  19. // vite HMR can send the correct update notifications to the client.
  20. function createResolver(themeDir, userConfig) {
  21. return {
  22. alias: {
  23. ...userConfig.alias,
  24. '/@app/': exports.APP_PATH,
  25. '/@theme/': themeDir,
  26. '/@shared/': exports.SHARED_PATH,
  27. vitepress: '/@app/exports.js',
  28. [exports.SITE_DATA_ID]: exports.SITE_DATA_REQUEST_PATH
  29. },
  30. requestToFile(publicPath) {
  31. if (publicPath === exports.SITE_DATA_REQUEST_PATH) {
  32. return exports.SITE_DATA_REQUEST_PATH;
  33. }
  34. },
  35. fileToRequest(filePath) {
  36. if (filePath === exports.SITE_DATA_REQUEST_PATH) {
  37. return exports.SITE_DATA_REQUEST_PATH;
  38. }
  39. }
  40. };
  41. }
  42. exports.createResolver = createResolver;
  43. //# sourceMappingURL=resolver.js.map