(compilation, name, options)
| 22 | * @returns {RuntimeSpec} runtime |
| 23 | */ |
| 24 | const getEntryRuntime = (compilation, name, options) => { |
| 25 | /** @type {EntryOptions[class="st">"dependOn"]} */ |
| 26 | let dependOn; |
| 27 | /** @type {EntryOptions[class="st">"runtime"]} */ |
| 28 | let runtime; |
| 29 | if (options) { |
| 30 | ({ dependOn, runtime } = options); |
| 31 | } else { |
| 32 | const entry = compilation.entries.get(name); |
| 33 | if (!entry) return name; |
| 34 | ({ dependOn, runtime } = entry.options); |
| 35 | } |
| 36 | if (dependOn) { |
| 37 | /** @type {RuntimeSpec} */ |
| 38 | let result; |
| 39 | const queue = new Set(dependOn); |
| 40 | for (const name of queue) { |
| 41 | const dep = compilation.entries.get(name); |
| 42 | if (!dep) continue; |
| 43 | const { dependOn, runtime } = dep.options; |
| 44 | if (dependOn) { |
| 45 | for (const name of dependOn) { |
| 46 | queue.add(name); |
| 47 | } |
| 48 | } else { |
| 49 | result = mergeRuntimeOwned(result, runtime || name); |
| 50 | } |
| 51 | } |
| 52 | return result || name; |
| 53 | } |
| 54 | return runtime || name; |
| 55 | }; |
| 56 | |
| 57 | /** |
| 58 | * Processes the provided runtime. |
no test coverage detected