1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- "use strict";
- const Parser = require("../Parser");
- class AssetParser extends Parser {
-
- constructor(dataUrlCondition) {
- super();
- this.dataUrlCondition = dataUrlCondition;
- }
-
- parse(source, state) {
- if (typeof source === "object" && !Buffer.isBuffer(source)) {
- throw new Error("AssetParser doesn't accept preparsed AST");
- }
- const buildInfo = (state.module.buildInfo);
- buildInfo.strict = true;
- const buildMeta = (state.module.buildMeta);
- buildMeta.exportsType = "default";
- buildMeta.defaultObject = false;
- if (typeof this.dataUrlCondition === "function") {
- buildInfo.dataUrl = this.dataUrlCondition(source, {
- filename: state.module.matchResource || state.module.resource,
- module: state.module
- });
- } else if (typeof this.dataUrlCondition === "boolean") {
- buildInfo.dataUrl = this.dataUrlCondition;
- } else if (
- this.dataUrlCondition &&
- typeof this.dataUrlCondition === "object"
- ) {
- buildInfo.dataUrl =
- Buffer.byteLength(source) <=
-
- (this.dataUrlCondition.maxSize);
- } else {
- throw new Error("Unexpected dataUrlCondition type");
- }
- return state;
- }
- }
- module.exports = AssetParser;
|