* Generates code and runtime requirements for this module. * @param {CodeGenerationContext} context context for code generation * @returns {CodeGenerationResult} result
({
runtimeTemplate,
moduleGraph,
chunkGraph,
runtime,
concatenationScope
})
| 1181 | * @returns {CodeGenerationResult} result |
| 1182 | */ |
| 1183 | codeGeneration({ |
| 1184 | runtimeTemplate, |
| 1185 | moduleGraph, |
| 1186 | chunkGraph, |
| 1187 | runtime, |
| 1188 | concatenationScope |
| 1189 | }) { |
| 1190 | const { request, externalType } = this._getRequestAndExternalType(); |
| 1191 | switch (externalType) { |
| 1192 | case "asset": { |
| 1193 | /** @type {Sources} */ |
| 1194 | const sources = new Map(); |
| 1195 | sources.set( |
| 1196 | JAVASCRIPT_TYPE, |
| 1197 | new RawSource(`module.exports = ${JSON.stringify(request)};`) |
| 1198 | ); |
| 1199 | /** @type {CodeGenerationResultData} */ |
| 1200 | const data = new Map(); |
| 1201 | data.set("url", { javascript: /** @type {string} */ (request) }); |
| 1202 | return { sources, runtimeRequirements: RUNTIME_REQUIREMENTS, data }; |
| 1203 | } |
| 1204 | // TODO webpack 6 remove "css-url" alias |
| 1205 | case "css-url": |
| 1206 | case "asset-url": { |
| 1207 | /** @type {Sources} */ |
| 1208 | const sources = new Map(); |
| 1209 | /** @type {CodeGenerationResultData} */ |
| 1210 | const data = new Map(); |
| 1211 | data.set("url", { [ASSET_URL_TYPE]: /** @type {string} */ (request) }); |
| 1212 | return { sources, runtimeRequirements: RUNTIME_REQUIREMENTS, data }; |
| 1213 | } |
| 1214 | case "css-import": { |
| 1215 | /** @type {Sources} */ |
| 1216 | const sources = new Map(); |
| 1217 | const dependencyMeta = /** @type {CssImportDependencyMeta} */ ( |
| 1218 | this.dependencyMeta |
| 1219 | ); |
| 1220 | const layer = |
| 1221 | dependencyMeta.layer !== undefined |
| 1222 | ? ` layer(${dependencyMeta.layer})` |
| 1223 | : ""; |
| 1224 | const supports = dependencyMeta.supports |
| 1225 | ? ` supports(${dependencyMeta.supports})` |
| 1226 | : ""; |
| 1227 | const media = dependencyMeta.media ? ` ${dependencyMeta.media}` : ""; |
| 1228 | sources.set( |
| 1229 | "css-import", |
| 1230 | new RawSource( |
| 1231 | `@import url(${JSON.stringify( |
| 1232 | request |
| 1233 | )})${layer}${supports}${media};` |
| 1234 | ) |
| 1235 | ); |
| 1236 | return { |
| 1237 | sources, |
| 1238 | runtimeRequirements: EMPTY_RUNTIME_REQUIREMENTS |
| 1239 | }; |
| 1240 | } |
nothing calls this directly
no test coverage detected