Parser.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. /*
  2. MIT License http://www.opensource.org/licenses/mit-license.php
  3. Author Tobias Koppers @sokra
  4. */
  5. "use strict";
  6. /** @typedef {import("../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptions */
  7. /** @typedef {import("./Compilation")} Compilation */
  8. /** @typedef {import("./NormalModule")} NormalModule */
  9. /** @typedef {Record<string, EXPECTED_ANY>} PreparsedAst */
  10. /**
  11. * @typedef {object} ParserStateBase
  12. * @property {string | Buffer} source
  13. * @property {NormalModule} current
  14. * @property {NormalModule} module
  15. * @property {Compilation} compilation
  16. * @property {WebpackOptions} options
  17. */
  18. /** @typedef {Record<string, EXPECTED_ANY> & ParserStateBase} ParserState */
  19. class Parser {
  20. /* istanbul ignore next */
  21. /**
  22. * @abstract
  23. * @param {string | Buffer | PreparsedAst} source the source to parse
  24. * @param {ParserState} state the parser state
  25. * @returns {ParserState} the parser state
  26. */
  27. parse(source, state) {
  28. const AbstractMethodError = require("./AbstractMethodError");
  29. throw new AbstractMethodError();
  30. }
  31. }
  32. module.exports = Parser;