docs: function pack(rootFolder, destination) {
      // Read every local file and create a correct json file in .gas/${destination}
      return new Promise((resolve, reject) => {
          const files = getAllFiles(rootFolder, '.');
          const promises = [];
          const filenames = [];
  
          // Get valid extensions for code files
          const extensions = eaft.getCodeExtensions();
  
          // Get contents of .gasignore file
          const ignoreRegexes = ignore.getIgnoreRegexes(rootFolder);
  
          // Check for all files in the root folder and all its subfolders if they are pushable
          for (const file of files) {
              const extension = path.parse(file).ext;
              const filename = path.join(path.parse(file).dir, path.parse(file).name).replace(`\\`, `/`);
  
              // If extension is correct and fileName does not start with a dot
              if (eaft.isPushable(extension, filename, extensions, ignoreRegexes)) {
                  if (filenames.includes(filename)) {
                      reject({
                          message: `Can't construct a Google Apps Script project with files with the same name: '${filename}.*'`,
                          print: true,
                      });
                      return;
                  } else {
                      filenames.push(filename);
                      promises.push(getFileJSON(rootFolder, file, filename, extension));
                  }
              }
          }
  
          // Reject if there are no pushable files
          if (filenames.length === 0) {
              reject({
                  message: `Can't construct a Google Apps Script project without ${extensions[0]}, .html or appsscript.json files`,
                  print: true,
              });
              return;
          }
  
          // When all the files are read and have their json returned
          Promise.all(promises).then((values) => {
              // Construct a local.json file based on values and write that file
              const localJSON = {
                  "files": values,
              };
  
              // Create file
              const file = {
                  name: path.join(rootFolder, constants.META_DIR, destination),
                  source: JSON.stringify(localJSON),
              };
              createFile(file);
              resolve();
              return;
          }).catch(() => {
              reject({
                  message: `Can't construct a Google Apps Script project without ${extensions[0]}, .html or appsscript.json files`,
                  print: true,
              });
              return;
          });
      });
  }