ExtractedModule.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /*
  2. MIT License http://www.opensource.org/licenses/mit-license.php
  3. Author Tobias Koppers @sokra
  4. */
  5. var SourceMapSource = require("webpack-sources").SourceMapSource;
  6. var RawSource = require("webpack-sources").RawSource;
  7. function ExtractedModule(identifier, originalModule, source, sourceMap, addtitionalInformation, prevModules) {
  8. this._identifier = identifier;
  9. this._originalModule = originalModule;
  10. this._source = source;
  11. this._sourceMap = sourceMap;
  12. this._prevModules = prevModules;
  13. this.addtitionalInformation = addtitionalInformation;
  14. this.chunks = [];
  15. }
  16. module.exports = ExtractedModule;
  17. ExtractedModule.prototype.getOrder = function() {
  18. // http://stackoverflow.com/a/14676665/1458162
  19. return /^@import url/.test(this._source) ? 0 : 1;
  20. };
  21. ExtractedModule.prototype.addChunk = function(chunk) {
  22. var idx = this.chunks.indexOf(chunk);
  23. if(idx < 0)
  24. this.chunks.push(chunk);
  25. };
  26. ExtractedModule.prototype.removeChunk = function(chunk) {
  27. var idx = this.chunks.indexOf(chunk);
  28. if(idx >= 0) {
  29. this.chunks.splice(idx, 1);
  30. chunk.removeModule(this);
  31. return true;
  32. }
  33. return false;
  34. };
  35. ExtractedModule.prototype.rewriteChunkInReasons = function(oldChunk, newChunks) { };
  36. ExtractedModule.prototype.identifier = function() {
  37. return this._identifier;
  38. };
  39. ExtractedModule.prototype.source = function() {
  40. if(this._sourceMap)
  41. return new SourceMapSource(this._source, null, this._sourceMap);
  42. else
  43. return new RawSource(this._source);
  44. };
  45. ExtractedModule.prototype.getOriginalModule = function() {
  46. return this._originalModule;
  47. };
  48. ExtractedModule.prototype.getPrevModules = function() {
  49. return this._prevModules;
  50. };
  51. ExtractedModule.prototype.addPrevModules = function(prevModules) {
  52. prevModules.forEach(function(m) {
  53. if(this._prevModules.indexOf(m) < 0)
  54. this._prevModules.push(m);
  55. }, this);
  56. };
  57. ExtractedModule.prototype.setOriginalModule = function(originalModule) {
  58. this._originalModule = originalModule;
  59. };