| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | /*	MIT License http://www.opensource.org/licenses/mit-license.php	Author Tobias Koppers @sokra*/"use strict";const DependencyReference = require("./DependencyReference");const ModuleDependency = require("./ModuleDependency");const UnsupportedWebAssemblyFeatureError = require("../wasm/UnsupportedWebAssemblyFeatureError");/** @typedef {import("@webassemblyjs/ast").ModuleImportDescription} ModuleImportDescription */class WebAssemblyImportDependency extends ModuleDependency {	/**	 * @param {string} request the request	 * @param {string} name the imported name	 * @param {ModuleImportDescription} description the WASM ast node	 * @param {false | string} onlyDirectImport if only direct imports are allowed	 */	constructor(request, name, description, onlyDirectImport) {		super(request);		/** @type {string} */		this.name = name;		/** @type {ModuleImportDescription} */		this.description = description;		/** @type {false | string} */		this.onlyDirectImport = onlyDirectImport;	}	getReference() {		if (!this.module) return null;		return new DependencyReference(this.module, [this.name], false);	}	getErrors() {		if (			this.onlyDirectImport &&			this.module &&			!this.module.type.startsWith("webassembly")		) {			return [				new UnsupportedWebAssemblyFeatureError(					`Import "${this.name}" from "${this.request}" with ${this.onlyDirectImport} can only be used for direct wasm to wasm dependencies`				)			];		}	}	get type() {		return "wasm import";	}}module.exports = WebAssemblyImportDependency;
 |