isSourceModuleDescriptor = (moduleDescriptor) =>
  isObject(moduleDescriptor) &&
  hasValue(moduleDescriptor, 'source') &&
  isObject(moduleDescriptor.source)
Type guard for a {@link SourceModuleDescriptor} containing a
{@link ModuleSource}

@param {ModuleDescriptor} moduleDescriptor
@returns {moduleDescriptor is Merge<SourceModuleDescriptor, {source: ModuleSource}>}