static async createDataObject(projectPaths, gatherFilesConfig = {}) {
    /** @type {ProjectInputData[]} */
    const inputData = [];
    for (const projectPathOrObj of projectPaths) {
      if (typeof projectPathOrObj === 'object') {
        // ProjectInputData was provided already manually
        inputData.push(projectPathOrObj);
        continue; // eslint-disable-line no-continue
      }

      const projectPath = projectPathOrObj;
      inputData.push({
        project: /** @type {Project} */ ({
          name: path.basename(projectPath),
          path: projectPath,
        }),
        entries: await this.gatherFilesFromDir(projectPath, {
          ...this.defaultGatherFilesConfig,
          ...gatherFilesConfig,
        }),
      });
    }
    return this._addMetaToProjectsData(inputData);
  }
Create an array of ProjectData
@param {(PathFromSystemRoot|ProjectInputData)[]} projectPaths
@param {Partial<GatherFilesConfig>} gatherFilesConfig
@returns {Promise<ProjectInputDataWithMeta[]>}