load.cjs 1.2 KB

12345678910111213141516171819202122232425262728
  1. const require_context = require('../../context-DwbtaXxf.cjs');
  2. const require_webpack_like = require('../../webpack-like-BAQNtVsj.cjs');
  3. const require_context$1 = require('../../context-Df-kn6rn.cjs');
  4. //#region src/webpack/loaders/load.ts
  5. async function load(source, map) {
  6. const callback = this.async();
  7. const { plugin } = this.query;
  8. let id = this.resource;
  9. if (!plugin?.load || !id) return callback(null, source, map);
  10. if (id.startsWith(plugin.__virtualModulePrefix)) id = decodeURIComponent(id.slice(plugin.__virtualModulePrefix.length));
  11. const context = require_context$1.createContext$1(this);
  12. const { handler } = require_context.normalizeObjectHook("load", plugin.load);
  13. const res = await handler.call(Object.assign({}, require_context$1.createBuildContext$1({
  14. addWatchFile: (file) => {
  15. this.addDependency(file);
  16. },
  17. getWatchFiles: () => {
  18. return this.getDependencies();
  19. }
  20. }, this._compiler, this._compilation, this), context), require_webpack_like.normalizeAbsolutePath(id));
  21. if (res == null) callback(null, source, map);
  22. else if (typeof res !== "string") callback(null, res.code, res.map ?? map);
  23. else callback(null, res, map);
  24. }
  25. //#endregion
  26. module.exports = load;