1use turbo_tasks::TaskInput;
2use turbopack_ecmascript_runtime::RuntimeType;
3
4#[turbo_tasks::value(shared)]
6#[derive(Debug, Copy, Clone, TaskInput, Ord, PartialOrd, Hash)]
7pub enum NextMode {
8 Development,
10 Build,
12}
13
14impl NextMode {
15 pub fn node_env(&self) -> &'static str {
17 match self {
18 NextMode::Development => "development",
19 NextMode::Build => "production",
20 }
21 }
22
23 pub fn condition(&self) -> &'static str {
25 match self {
26 NextMode::Development => "development",
27 NextMode::Build => "production",
28 }
29 }
30
31 pub fn is_react_development(&self) -> bool {
33 match self {
34 NextMode::Development => true,
35 NextMode::Build => false,
36 }
37 }
38
39 pub fn is_development(&self) -> bool {
40 match self {
41 NextMode::Development => true,
42 NextMode::Build => false,
43 }
44 }
45
46 pub fn is_production(&self) -> bool {
47 match self {
48 NextMode::Development => false,
49 NextMode::Build => true,
50 }
51 }
52
53 pub fn runtime_type(&self) -> RuntimeType {
54 match self {
55 NextMode::Development => RuntimeType::Development,
56 NextMode::Build => RuntimeType::Production,
57 }
58 }
59}