/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
"use strict";
const Dependency = require("../Dependency");
const DependencyTemplate = require("../DependencyTemplate");
const memoize = require("../util/memoize");
/** @typedef {import("../Dependency").TRANSITIVE} TRANSITIVE */
/** @typedef {import("../Module")} Module */
const getRawModule = memoize(() => require("../RawModule"));
class ModuleDependency extends Dependency {
/**
* @param {string} request request path which needs resolving
*/
constructor(request) {
super();
this.request = request;
this.userRequest = request;
this.range = undefined;
// assertions must be serialized by subclasses that use it
/** @type {Record