The Node.js® Website
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}