* Returns mime type. * @param {NormalModule} module module * @returns {string} mime type
(module)
| 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. |
no test coverage detected