async buildPlatform(platform, opts) {
    await this.hasInitialized;
    const platformConfig = this.getPlatformConfig(platform, opts);
    const dictionary = await this.getPlatformTokens(platform, opts);

    /**
     * @param {string} destination
     * @param {string} output
     */
    const writeFile = async (destination, output) => {
      const dir = dirname(destination);
      try {
        await this.volume.promises.access(dir);
      } catch {
        await this.volume.promises.mkdir(dir, { recursive: true });
      }
      return this.volume.promises.writeFile(destination, output);
    };

    const files = await this.formatPlatform(platform, opts);
    if (files) {
      await Promise.all(
        files.map(({ destination, output }) => {
          if (output && destination) {
            if (typeof output !== 'string') {
              if (this.log.verbosity !== silent && this.log.warnings !== disabled) {
                const warn = `Content type of ${destination} is not a string, so no file was created.`;
                if (this.log.warnings === error) {
                  throw new Error(warn);
                }
                // eslint-disable-next-line no-console
                console.log(chalk.rgb(255, 140, 0).bold(warn));
              }
              return;
            }
            return writeFile(destination, output);
          }
        }),
      );
    }
    await performActions(dictionary, platformConfig, this.options, this.volume);
    // For chaining
    return this;
  }
@param {string} platform
@param {{ cache?: boolean }} [opts]
@returns