JsonModule.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /*
  2. MIT License http://www.opensource.org/licenses/mit-license.php
  3. */
  4. "use strict";
  5. const NormalModule = require("../NormalModule");
  6. const makeSerializable = require("../util/makeSerializable");
  7. /**
  8. * @import {
  9. * NormalModuleBuildInfo,
  10. * NormalModuleCreateData
  11. * } from "../NormalModule"
  12. */
  13. /** @import JsonData from "./JsonData" */
  14. /**
  15. * Defines the build info properties specific to json modules.
  16. * @typedef {object} KnownJsonModuleBuildInfo
  17. * @property {JsonData=} jsonData
  18. */
  19. /** @typedef {NormalModuleBuildInfo & KnownJsonModuleBuildInfo} JsonModuleBuildInfo */
  20. /**
  21. * Module class for `json` modules. JSON-specific properties should live here instead of `NormalModule`.
  22. */
  23. class JsonModule extends NormalModule {
  24. /**
  25. * @param {NormalModuleCreateData} options options object
  26. */
  27. constructor(options) {
  28. super(options);
  29. // Redeclared with the json specific shape
  30. /** @type {JsonModuleBuildInfo | undefined} */
  31. this.buildInfo = undefined;
  32. }
  33. }
  34. makeSerializable(JsonModule, "webpack/lib/json/JsonModule");
  35. module.exports = JsonModule;