refactor AsyncDependenciesBlock to es6 syntax

This commit is contained in:
Ritik Rishu 2017-01-09 01:37:41 +05:30
parent 0607fc1127
commit 2c32b087c8
1 changed files with 47 additions and 53 deletions

View File

@ -2,61 +2,55 @@
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
var DependenciesBlock = require("./DependenciesBlock");
"use strict";
const DependenciesBlock = require("./DependenciesBlock");
function AsyncDependenciesBlock(name, module, loc) {
DependenciesBlock.call(this);
this.chunkName = name;
this.chunks = null;
this.module = module;
this.loc = loc;
module.exports = class AsyncDependenciesBlock extends DependenciesBlock {
constructor(name, module, loc) {
super();
this.chunkName = name;
this.chunks = null;
this.module = module;
this.loc = loc;
Object.defineProperty(this, "chunk", {
get: function() {
throw new Error("`chunk` was been renamed to `chunks` and is now an array");
},
set: function() {
throw new Error("`chunk` was been renamed to `chunks` and is now an array");
}
});
}
module.exports = AsyncDependenciesBlock;
AsyncDependenciesBlock.prototype = Object.create(DependenciesBlock.prototype);
AsyncDependenciesBlock.prototype.constructor = AsyncDependenciesBlock;
AsyncDependenciesBlock.prototype.updateHash = function updateHash(hash) {
hash.update(this.chunkName || "");
hash.update(this.chunks && this.chunks.map(function(chunk) {
return typeof chunk.id === "number" ? chunk.id : "";
}).join(",") || "");
DependenciesBlock.prototype.updateHash.call(this, hash);
};
AsyncDependenciesBlock.prototype.disconnect = function() {
this.chunks = null;
DependenciesBlock.prototype.disconnect.call(this);
};
AsyncDependenciesBlock.prototype.unseal = function() {
this.chunks = null;
DependenciesBlock.prototype.unseal.call(this);
};
AsyncDependenciesBlock.prototype.sortItems = function() {
DependenciesBlock.prototype.sortItems.call(this);
if(this.chunks) {
this.chunks.sort(function(a, b) {
var i = 0;
while(true) { // eslint-disable-line no-constant-condition
if(!a.modules[i] && !b.modules[i]) return 0;
if(!a.modules[i]) return -1;
if(!b.modules[i]) return 1;
if(a.modules[i].id > b.modules[i].id) return 1;
if(a.modules[i].id < b.modules[i].id) return -1;
i++;
Object.defineProperty(this, "chunk", {
get: function() {
throw new Error("`chunk` was been renamed to `chunks` and is now an array");
},
set: function() {
throw new Error("`chunk` was been renamed to `chunks` and is now an array");
}
});
}
};
updateHash(hash) {
hash.update(this.chunkName || "");
hash.update(this.chunks && this.chunks.map((chunk) => {
return typeof chunk.id === "number" ? chunk.id : "";
}).join(",").replace(/,\s*$/, "") || "");
super.updateHash(hash);
}
disconnect() {
this.chunks = null;
super.disconnect();
}
unseal() {
this.chunks = null;
super.unseal();
}
sortItems() {
super.sortItems();
if(this.chunks) {
this.chunks.sort((a, b) => {
let i = 0;
while(true) { // eslint-disable-line no-constant-condition
if(!a.modules[i] && !b.modules[i]) return 0;
if(!a.modules[i]) return -1;
if(!b.modules[i]) return 1;
if(a.modules[i].id > b.modules[i].id) return 1;
if(a.modules[i].id < b.modules[i].id) return -1;
i++;
}
});
}
}
}