You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.2 KiB
49 lines
1.2 KiB
"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; |