whole_func_string: async function resolveModule(moduleId, options, root=options.base) {
  	if (options.lookup.has(moduleId)) return options.lookup.get(moduleId);
  	const absolutePath = await options.resolver(moduleId, root);
  	if (options.mapper.hasOwnProperty(absolutePath)) return options.mapper[absolutePath];
  	if (options.lookup.has(absolutePath)) return options.lookup.get(absolutePath);
  	return absolutePath;
  }
func_code_string: async function resolveModule(moduleId, options, root=options.base) {
  	if (options.lookup.has(moduleId)) return options.lookup.get(moduleId);
  	const absolutePath = await options.resolver(moduleId, root);
  	if (options.mapper.hasOwnProperty(absolutePath)) return options.mapper[absolutePath];
  	if (options.lookup.has(absolutePath)) return options.lookup.get(absolutePath);
  	return absolutePath;
  }
func_documentation_string: Resolve the path for the given module-id.
  
  @param {string} moduleId					Module to resolve for.
  @param {Object} options					Options object.
  @param {string} [root=options.base]		Base of path.
  @returns {Promise.<string>}				The resolved path.