AMDRuntimeModules.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /*
  2. MIT License http://www.opensource.org/licenses/mit-license.php
  3. */
  4. "use strict";
  5. const RuntimeGlobals = require("../RuntimeGlobals");
  6. const RuntimeModule = require("../RuntimeModule");
  7. const Template = require("../Template");
  8. /** @typedef {import("./AMDPlugin").AmdOptions} AmdOptions */
  9. class AMDDefineRuntimeModule extends RuntimeModule {
  10. constructor() {
  11. super("amd define");
  12. }
  13. /**
  14. * Generates runtime code for this runtime module.
  15. * @returns {string | null} runtime code
  16. */
  17. generate() {
  18. return Template.asString([
  19. `${RuntimeGlobals.amdDefine} = function () {`,
  20. Template.indent("throw new Error('define cannot be used indirect');"),
  21. "};"
  22. ]);
  23. }
  24. }
  25. class AMDOptionsRuntimeModule extends RuntimeModule {
  26. /**
  27. * Creates an instance of AMDOptionsRuntimeModule.
  28. * @param {AmdOptions} options the AMD options
  29. */
  30. constructor(options) {
  31. super("amd options");
  32. this.options = options;
  33. }
  34. /**
  35. * Generates runtime code for this runtime module.
  36. * @returns {string | null} runtime code
  37. */
  38. generate() {
  39. return Template.asString([
  40. `${RuntimeGlobals.amdOptions} = ${JSON.stringify(this.options)};`
  41. ]);
  42. }
  43. }
  44. module.exports.AMDDefineRuntimeModule = AMDDefineRuntimeModule;
  45. module.exports.AMDOptionsRuntimeModule = AMDOptionsRuntimeModule;