49 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
 | 
						|
/** @typedef {import("webpack").Compiler} Compiler */
 | 
						|
 | 
						|
/** @typedef {import("webpack").Stats} Stats */
 | 
						|
 | 
						|
/** @typedef {import("webpack").MultiStats} MultiStats */
 | 
						|
 | 
						|
/** @typedef {import("../index.js").IncomingMessage} IncomingMessage */
 | 
						|
 | 
						|
/** @typedef {import("../index.js").ServerResponse} ServerResponse */
 | 
						|
 | 
						|
/**
 | 
						|
 * @template {IncomingMessage} Request
 | 
						|
 * @template {ServerResponse} Response
 | 
						|
 * @param {import("../index.js").Context<Request, Response>} context
 | 
						|
 */
 | 
						|
function getPaths(context) {
 | 
						|
  const {
 | 
						|
    stats,
 | 
						|
    options
 | 
						|
  } = context;
 | 
						|
  /** @type {Stats[]} */
 | 
						|
 | 
						|
  const childStats =
 | 
						|
  /** @type {MultiStats} */
 | 
						|
  stats.stats ?
 | 
						|
  /** @type {MultiStats} */
 | 
						|
  stats.stats : [
 | 
						|
  /** @type {Stats} */
 | 
						|
  stats];
 | 
						|
  const publicPaths = [];
 | 
						|
 | 
						|
  for (const {
 | 
						|
    compilation
 | 
						|
  } of childStats) {
 | 
						|
    // The `output.path` is always present and always absolute
 | 
						|
    const outputPath = compilation.getPath(compilation.outputOptions.path || "");
 | 
						|
    const publicPath = options.publicPath ? compilation.getPath(options.publicPath) : compilation.outputOptions.publicPath ? compilation.getPath(compilation.outputOptions.publicPath) : "";
 | 
						|
    publicPaths.push({
 | 
						|
      outputPath,
 | 
						|
      publicPath
 | 
						|
    });
 | 
						|
  }
 | 
						|
 | 
						|
  return publicPaths;
 | 
						|
}
 | 
						|
 | 
						|
module.exports = getPaths; |