1*dfe12d45SEvan Baconimport { assertUnexpectedObjectKeys, parseVariadicArguments } from '../utils/variadic';
2*dfe12d45SEvan Bacon
3*dfe12d45SEvan Baconexport type Options = object;
4*dfe12d45SEvan Bacon
5*dfe12d45SEvan Baconexport async function resolveArgsAsync(
6*dfe12d45SEvan Bacon  argv: string[]
7*dfe12d45SEvan Bacon): Promise<{ variadic: string[]; options: Options; extras: string[] }> {
8*dfe12d45SEvan Bacon  const { variadic, extras, flags } = parseVariadicArguments(argv);
9*dfe12d45SEvan Bacon
10*dfe12d45SEvan Bacon  assertUnexpectedObjectKeys([], flags);
11*dfe12d45SEvan Bacon
12*dfe12d45SEvan Bacon  return {
13*dfe12d45SEvan Bacon    // Variadic arguments like `npx expo install react react-dom` -> ['react', 'react-dom']
14*dfe12d45SEvan Bacon    variadic,
15*dfe12d45SEvan Bacon    options: {},
16*dfe12d45SEvan Bacon    extras,
17*dfe12d45SEvan Bacon  };
18*dfe12d45SEvan Bacon}
19