UNPKG

react-router-ga

Version:

[![Downloads](https://img.shields.io/npm/dm/react-router-ga)](https://npm.im/react-router-ga) [![Version](https://img.shields.io/npm/v/react-router-ga)](https://npm.im/react-router-ga) [![License](https://img.shields.io/npm/l/react-router-ga)](https://ope

55 lines (47 loc) 1.55 kB
/* 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;