constructor(
		request,
		ident,
		dependencyMeta,
		hashFunction = DEFAULTS.HASH_FUNCTION
	) {
		if (ident === undefined) {
			ident = Template.toIdentifier(request);
			if (ident !== request) {
				ident += `_${createHash(hashFunction)
					.update(request)
					.digest("hex")
					.slice(0, 8)}`;
			}
		}
		const identifier = `__WEBPACK_EXTERNAL_MODULE_${ident}__`;
		super(
			`import * as ${identifier} from ${JSON.stringify(request)}${
				dependencyMeta && dependencyMeta.attributes
					? dependencyMeta.attributes._isLegacyAssert
						? ` assert ${JSON.stringify(
								dependencyMeta.attributes,
								importAssertionReplacer
							)}`
						: ` with ${JSON.stringify(dependencyMeta.attributes)}`
					: ""
			};\n`,
			InitFragment.STAGE_HARMONY_IMPORTS,
			0,
			`external module import ${ident}`
		);
		this._ident = ident;
		this._request = request;
		this._dependencyMeta = request;
		this._identifier = identifier;
	}
@param {string} request import source
@param {string=} ident recomputed ident
@param {ImportDependencyMeta=} dependencyMeta the dependency meta
@param {HashFunction=} hashFunction the hash function to use