1import { ExpoConfig } from '@expo/config-types';
2
3import { ModPlatform } from '../Plugin.types';
4
5export type PluginHistoryItem = {
6  name: string;
7  version: string;
8  platform?: ModPlatform;
9};
10
11export function getHistoryItem(
12  config: Pick<ExpoConfig, '_internal'>,
13  name: string
14): PluginHistoryItem | null {
15  return config._internal?.pluginHistory?.[name] ?? null;
16}
17
18export function addHistoryItem(
19  config: ExpoConfig,
20  item: Omit<PluginHistoryItem, 'version'> & { version?: string }
21): ExpoConfig {
22  if (!config._internal) {
23    config._internal = {};
24  }
25  if (!config._internal.pluginHistory) {
26    config._internal.pluginHistory = {};
27  }
28
29  if (!item.version) {
30    item.version = 'UNVERSIONED';
31  }
32
33  config._internal.pluginHistory[item.name] = item;
34
35  return config;
36}
37