Rest/Fn/Binary/
Command.rs1pub fn Fn() -> ArgMatches {
39 Command::new("Rest")
40 .version(env!("CARGO_PKG_VERSION"))
41 .author("Source 🖋️ Open 👐🏻 <Source/Open@PlayForm.Cloud>")
42 .about("Rest ⛱️")
43 .subcommand(
44 Command::new("compile")
45 .about("Compile TypeScript files using SWC")
46 .arg(
47 Arg::new("Input")
48 .short('i')
49 .long("input")
50 .display_order(1)
51 .value_name("INPUT")
52 .required(true)
53 .help("Input directory containing TypeScript files"),
54 )
55 .arg(
56 Arg::new("Output")
57 .short('o')
58 .long("output")
59 .display_order(2)
60 .value_name("OUTPUT")
61 .required(true)
62 .help("Output directory for compiled JavaScript files"),
63 )
64 .arg(
65 Arg::new("Target")
66 .long("target")
67 .display_order(3)
68 .value_name("TARGET")
69 .required(false)
70 .help("ES target version (e.g., es2024)")
71 .default_value("es2024"),
72 )
73 .arg(
74 Arg::new("Module")
75 .long("module")
76 .display_order(4)
77 .value_name("MODULE")
78 .required(false)
79 .help("Module system (commonjs, esmodule)")
80 .default_value("esmodule"),
81 )
82 .arg(
83 Arg::new("SourceMaps")
84 .long("source-maps")
85 .display_order(5)
86 .action(SetTrue)
87 .required(false)
88 .help("Enable source maps"),
89 )
90 .arg(
91 Arg::new("UseDefineForClassFields")
92 .long("use-define-for-class-fields")
93 .display_order(6)
94 .action(SetTrue)
95 .required(false)
96 .help("Use defineForClassFields (VSCode: false)"),
97 )
98 .arg(
99 Arg::new("Parallel")
100 .short('P')
101 .long("Parallel")
102 .action(SetTrue)
103 .display_order(7)
104 .required(false)
105 .help("Parallel compilation ⏩"),
106 )
107 .arg(
108 Arg::new("Exclude")
109 .short('E')
110 .long("Exclude")
111 .display_order(8)
112 .value_name("EXCLUDE")
113 .required(false)
114 .help("Exclude patterns (comma-separated)")
115 .default_value("node_modules,.d.ts"),
116 ),
117 )
118 .arg(
119 Arg::new("Exclude")
120 .short('E')
121 .long("Exclude")
122 .display_order(4)
123 .value_name("EXCLUDE")
124 .required(false)
125 .help("Exclude 🚫")
126 .default_value("node_modules"),
127 )
128 .arg(
129 Arg::new("Parallel")
130 .short('P')
131 .long("Parallel")
132 .action(SetTrue)
133 .display_order(2)
134 .value_name("PARALLEL")
135 .required(false)
136 .help("Parallel ⏩"),
137 )
138 .arg(
139 Arg::new("Pattern")
140 .long("Pattern")
141 .display_order(5)
142 .value_name("PATTERN")
143 .required(false)
144 .help("Pattern 🔍")
145 .default_value(".ts"),
146 )
147 .arg(
148 Arg::new("Root")
149 .short('R')
150 .long("Root")
151 .display_order(3)
152 .value_name("ROOT")
153 .required(false)
154 .help("Root 📂")
155 .default_value("."),
156 )
157 .get_matches()
158}
159
160use clap::{Arg, ArgAction::SetTrue, ArgMatches, Command};
161
162pub mod Entry;
163
164pub mod Parallel;
165
166pub mod Sequential;