MCPcopy
hub / github.com/webpack/webpack / getMimeType

Method getMimeType

lib/asset/AssetGenerator.js:445–491  ·  view source on GitHub ↗

* Returns mime type. * @param {NormalModule} module module * @returns {string} mime type

(module)

Source from the content-addressed store, hash-verified

443 * @returns {string} mime type
444 */
445 getMimeType(module) {
446 if (typeof this.dataUrlOptions === "function") {
447 throw new Error(
448 "This method must not be called when dataUrlOptions is a function"
449 );
450 }
451
452 /** @type {string | undefined} */
453 let mimeType =
454 /** @type {AssetGeneratorDataUrlOptions} */
455 (this.dataUrlOptions).mimetype;
456 if (mimeType === undefined) {
457 const ext = path.extname(
458 /** @type {NameForCondition} */
459 (module.nameForCondition())
460 );
461 if (
462 module.resourceResolveData &&
463 module.resourceResolveData.mimetype !== undefined
464 ) {
465 mimeType =
466 module.resourceResolveData.mimetype +
467 module.resourceResolveData.parameters;
468 } else if (ext) {
469 mimeType = getMimeTypes().lookup(ext);
470
471 if (typeof mimeType !== "string") {
472 throw new Error(
473 "DataUrl can't be generated automatically, " +
474 `because there is no mimetype for "${ext}" in mimetype database. ` +
475 'Either pass a mimetype via "generator.mimetype" or ' +
476 'use type: "asset/resource" to create a resource file instead of a DataUrl'
477 );
478 }
479 }
480 }
481
482 if (typeof mimeType !== "string") {
483 throw new Error(
484 "DataUrl can't be generated automatically. " +
485 'Either pass a mimetype via "generator.mimetype" or ' +
486 'use type: "asset/resource" to create a resource file instead of a DataUrl'
487 );
488 }
489
490 return /** @type {string} */ (mimeType);
491 }
492
493 /**
494 * Generates data uri.

Callers 1

generateDataUriMethod · 0.95

Calls 1

nameForConditionMethod · 0.45

Tested by

no test coverage detected