The Node.js® Website
at main 1.0 kB view raw
1import type { ReactNode } from 'react'; 2 3import type { NodeRelease } from '@/types/releases'; 4import type { UserOS } from '@/types/userOS'; 5 6export type PackageManager = 'NVM' | 'BREW' | 'DOCKER' | 'CHOCO'; 7 8export interface ReleaseState { 9 os: UserOS; 10 release: NodeRelease; 11 releases: Array<NodeRelease>; 12 bitness: string | number; 13 platform: PackageManager; 14} 15 16export type ReleaseAction = 17 | { type: 'SET_OS'; payload: UserOS } 18 | { type: 'SET_VERSION'; payload: string } 19 | { type: 'SET_BITNESS'; payload: string | number } 20 | { type: 'SET_PLATFORM'; payload: PackageManager }; 21 22export interface ReleaseDispatchActions { 23 setVersion: (version: string) => void; 24 setOS: (os: UserOS) => void; 25 setBitness: (bitness: string | number) => void; 26 setPlatform: (platform: PackageManager) => void; 27} 28 29export interface ReleaseContextType 30 extends ReleaseState, 31 ReleaseDispatchActions {} 32 33export interface ReleaseProviderProps { 34 children: ReactNode; 35 releases: Array<NodeRelease>; 36 initialRelease: NodeRelease; 37}