import { create } from 'zustand' import { persist, createJSONStorage } from 'zustand/middleware' import { localStorageKey } from '@/constants/localStorage' type LocalApiServerState = { // Run local API server once app opens runOnStartup: boolean setRunOnStartup: (value: boolean) => void // Server host option (127.0.0.1 or 0.0.0.0) serverHost: '127.0.0.1' | '0.0.0.0' setServerHost: (value: '127.0.0.1' | '0.0.0.0') => void // Server port (default 1337) serverPort: number setServerPort: (value: number) => void // API prefix (default /v1) apiPrefix: string setApiPrefix: (value: string) => void // CORS enabled corsEnabled: boolean setCorsEnabled: (value: boolean) => void // Verbose server logs verboseLogs: boolean setVerboseLogs: (value: boolean) => void } export const useLocalApiServer = create()( persist( (set) => ({ runOnStartup: true, setRunOnStartup: (value) => set({ runOnStartup: value }), serverHost: '127.0.0.1', setServerHost: (value) => set({ serverHost: value }), serverPort: 1337, setServerPort: (value) => set({ serverPort: value }), apiPrefix: '/v1', setApiPrefix: (value) => set({ apiPrefix: value }), corsEnabled: true, setCorsEnabled: (value) => set({ corsEnabled: value }), verboseLogs: true, setVerboseLogs: (value) => set({ verboseLogs: value }), }), { name: localStorageKey.settingLocalApiServer, storage: createJSONStorage(() => localStorage), } ) )