1*5492d26aSCedric van Puttenimport { ModPlatform } from '@expo/config-plugins';
2*5492d26aSCedric van Puttenimport chalk from 'chalk';
3*5492d26aSCedric van Puttenimport path from 'path';
4*5492d26aSCedric van Putten
5*5492d26aSCedric van Puttenimport * as Log from '../log';
6*5492d26aSCedric van Puttenimport { directoryExistsAsync } from '../utils/dir';
7*5492d26aSCedric van Putten
8*5492d26aSCedric van Puttenexport async function validateTemplatePlatforms({
9*5492d26aSCedric van Putten  templateDirectory,
10*5492d26aSCedric van Putten  platforms,
11*5492d26aSCedric van Putten}: {
12*5492d26aSCedric van Putten  templateDirectory: string;
13*5492d26aSCedric van Putten  platforms: ModPlatform[];
14*5492d26aSCedric van Putten}) {
15*5492d26aSCedric van Putten  const existingPlatforms: ModPlatform[] = [];
16*5492d26aSCedric van Putten
17*5492d26aSCedric van Putten  for (const platform of platforms) {
18*5492d26aSCedric van Putten    if (await directoryExistsAsync(path.join(templateDirectory, platform))) {
19*5492d26aSCedric van Putten      existingPlatforms.push(platform);
20*5492d26aSCedric van Putten    } else {
21*5492d26aSCedric van Putten      Log.warn(
22*5492d26aSCedric van Putten        chalk`⚠️  Skipping platform ${platform}. Use a template that contains native files for ${platform} (./${platform}).`
23*5492d26aSCedric van Putten      );
24*5492d26aSCedric van Putten    }
25*5492d26aSCedric van Putten  }
26*5492d26aSCedric van Putten
27*5492d26aSCedric van Putten  return existingPlatforms;
28*5492d26aSCedric van Putten}
29