Merge pull request #144 from ajnart/dev
v0.5.0 : Quality of life and dev experience
This commit is contained in:
14
src/tools/migrate.ts
Normal file
14
src/tools/migrate.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
import { Config } from './types';
|
||||
|
||||
export function migrateToIdConfig(config: Config): Config {
|
||||
// Set the config and add an ID to all the services that don't have one
|
||||
const services = config.services.map((service) => ({
|
||||
...service,
|
||||
id: service.id ?? uuidv4(),
|
||||
}));
|
||||
return {
|
||||
...config,
|
||||
services,
|
||||
};
|
||||
}
|
||||
@@ -17,10 +17,9 @@ const configContext = createContext<configContextType>({
|
||||
name: 'default',
|
||||
services: [],
|
||||
settings: {
|
||||
searchBar: true,
|
||||
searchUrl: 'https://www.google.com/search?q=',
|
||||
enabledModules: [],
|
||||
searchUrl: 'https://google.com/search?q=',
|
||||
},
|
||||
modules: {},
|
||||
},
|
||||
setConfig: () => {},
|
||||
loadConfig: async (name: string) => {},
|
||||
@@ -44,10 +43,9 @@ export function ConfigProvider({ children }: Props) {
|
||||
name: 'default',
|
||||
services: [],
|
||||
settings: {
|
||||
searchBar: true,
|
||||
searchUrl: 'https://www.google.com/search?q=',
|
||||
enabledModules: [],
|
||||
},
|
||||
modules: {},
|
||||
});
|
||||
|
||||
async function loadConfig(configName: string) {
|
||||
|
||||
@@ -1,37 +1,49 @@
|
||||
import { OptionValues } from '../components/modules/modules';
|
||||
|
||||
export interface Settings {
|
||||
searchUrl: string;
|
||||
enabledModules: string[];
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
export interface Config {
|
||||
name: string;
|
||||
services: serviceItem[];
|
||||
settings: Settings;
|
||||
modules: {
|
||||
[key: string]: ConfigModule;
|
||||
};
|
||||
}
|
||||
|
||||
interface ConfigModule {
|
||||
title: string;
|
||||
enabled: boolean;
|
||||
options: {
|
||||
[key: string]: OptionValues;
|
||||
};
|
||||
}
|
||||
|
||||
export const ServiceTypeList = [
|
||||
'Other',
|
||||
'Sonarr',
|
||||
'Radarr',
|
||||
'Lidarr',
|
||||
'qBittorrent',
|
||||
'Plex',
|
||||
'Emby',
|
||||
'Lidarr',
|
||||
'Plex',
|
||||
'Radarr',
|
||||
'Sonarr',
|
||||
'qBittorrent',
|
||||
];
|
||||
export type ServiceType =
|
||||
| 'Other'
|
||||
| 'Sonarr'
|
||||
| 'Radarr'
|
||||
| 'Emby'
|
||||
| 'Lidarr'
|
||||
| 'qBittorrent'
|
||||
| 'Plex'
|
||||
| 'Emby';
|
||||
| 'Radarr'
|
||||
| 'Sonarr'
|
||||
| 'qBittorrent';
|
||||
|
||||
export interface serviceItem {
|
||||
[x: string]: any;
|
||||
id: string;
|
||||
name: string;
|
||||
type: string;
|
||||
url: string;
|
||||
icon: string;
|
||||
apiKey?: string;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user