MCPcopy
hub / github.com/webpack/webpack / codeGeneration

Method codeGeneration

lib/ExternalModule.js:1183–1317  ·  view source on GitHub ↗

* Generates code and runtime requirements for this module. * @param {CodeGenerationContext} context context for code generation * @returns {CodeGenerationResult} result

({
		runtimeTemplate,
		moduleGraph,
		chunkGraph,
		runtime,
		concatenationScope
	})

Source from the content-addressed store, hash-verified

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 }

Callers

nothing calls this directly

Calls 8

_getSourceDataMethod · 0.95
identifierMethod · 0.95
registerRawExportMethod · 0.80
renderConstMethod · 0.80
setMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected