44 lines
		
	
	
		
			934 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			934 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/*
 | 
						|
	MIT License http://www.opensource.org/licenses/mit-license.php
 | 
						|
	Author Tobias Koppers @sokra
 | 
						|
*/
 | 
						|
"use strict";
 | 
						|
 | 
						|
class Entrypoint {
 | 
						|
	constructor(name) {
 | 
						|
		this.name = name;
 | 
						|
		this.chunks = [];
 | 
						|
	}
 | 
						|
 | 
						|
	unshiftChunk(chunk) {
 | 
						|
		this.chunks.unshift(chunk);
 | 
						|
		chunk.entrypoints.push(this);
 | 
						|
	}
 | 
						|
 | 
						|
	insertChunk(chunk, before) {
 | 
						|
		const idx = this.chunks.indexOf(before);
 | 
						|
		if(idx >= 0) {
 | 
						|
			this.chunks.splice(idx, 0, chunk);
 | 
						|
		} else {
 | 
						|
			throw new Error("before chunk not found");
 | 
						|
		}
 | 
						|
		chunk.entrypoints.push(this);
 | 
						|
	}
 | 
						|
 | 
						|
	getFiles() {
 | 
						|
		const files = [];
 | 
						|
 | 
						|
		for(let chunkIdx = 0; chunkIdx < this.chunks.length; chunkIdx++) {
 | 
						|
			for(let fileIdx = 0; fileIdx < this.chunks[chunkIdx].files.length; fileIdx++) {
 | 
						|
				if(files.indexOf(this.chunks[chunkIdx].files[fileIdx]) === -1) {
 | 
						|
					files.push(this.chunks[chunkIdx].files[fileIdx]);
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		return files;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
module.exports = Entrypoint;
 |