1 | import { CliCommandDefinition, CliCommandDefinitionOption, CliProgramDefinition } from './types';
|
2 |
|
3 | const globalOptions: CliCommandDefinitionOption[] = [
|
4 | {
|
5 | name: 'global1',
|
6 | flag: 'g',
|
7 | description: 'Global 1 option description',
|
8 | },
|
9 | {
|
10 | name: 'global2',
|
11 | flag: '-l',
|
12 | valueType: 'string',
|
13 | },
|
14 | ];
|
15 |
|
16 | const defs: CliCommandDefinition[] = [
|
17 | {
|
18 | name: 'build',
|
19 | description: 'my description',
|
20 | handler: parsed => {
|
21 |
|
22 | },
|
23 | arguments: [
|
24 | {
|
25 | name: 'src',
|
26 | description: 'Source file',
|
27 | prompt: {
|
28 | message: 'Enter Source',
|
29 | type: 'list',
|
30 | choices: ['a', 'b', 'c'],
|
31 | },
|
32 | },
|
33 | {
|
34 | name: 'dest',
|
35 | description: 'Desination File',
|
36 | isOptional: true,
|
37 | default: 'Default Value',
|
38 | },
|
39 | {
|
40 | name: 'thirdarg',
|
41 | description: 'Another arg',
|
42 |
|
43 | default: 'small',
|
44 | validate: /^(large|medium|small)$/i,
|
45 | },
|
46 | ],
|
47 | options: [
|
48 | {
|
49 | name: 'output',
|
50 | flag: '-o',
|
51 | description: 'output description',
|
52 | },
|
53 | {
|
54 | name: 'transform',
|
55 | flag: '-t',
|
56 | description: 'test transform',
|
57 | transform: val => {
|
58 | return `tranformed:${val}`;
|
59 | },
|
60 | },
|
61 | {
|
62 | name: 'noValueType',
|
63 | description: 'to test for default valueType',
|
64 | },
|
65 | {
|
66 | name: 'tobool',
|
67 | flag: '-b',
|
68 | description: 'test bool valuetype',
|
69 | valueType: 'boolean',
|
70 | },
|
71 | {
|
72 | name: 'tobooldefaulttrue',
|
73 | description: 'test bool valuetype',
|
74 | valueType: 'boolean',
|
75 | default: true,
|
76 | },
|
77 | {
|
78 | name: 'tostring',
|
79 | description: 'test string valuetype',
|
80 | valueType: 'string',
|
81 | },
|
82 | {
|
83 | name: 'tonumber',
|
84 | description: 'test number valuetype',
|
85 | valueType: 'number',
|
86 | },
|
87 | {
|
88 | name: 'validation',
|
89 | description: 'Validation',
|
90 | validate: /^(large|medium|small)$/i,
|
91 | valueType: 'string',
|
92 | },
|
93 | {
|
94 | name: 'dashedName',
|
95 | description: 'Dashed Name',
|
96 | valueType: 'string',
|
97 | },
|
98 | ],
|
99 | },
|
100 | {
|
101 | name: 'build optional',
|
102 | description: 'my description (build optional)',
|
103 | handler: parsed => {
|
104 |
|
105 | },
|
106 | arguments: [
|
107 | {
|
108 | name: 'src',
|
109 | },
|
110 | {
|
111 | name: 'dest',
|
112 | isOptional: true,
|
113 | },
|
114 | ],
|
115 | options: [
|
116 | {
|
117 | name: 'output',
|
118 | flag: '-o',
|
119 | description: 'output description',
|
120 | },
|
121 | ],
|
122 | },
|
123 | {
|
124 | name: 'build sub',
|
125 | description: 'my description (build sub)',
|
126 | handler: parsed => {
|
127 |
|
128 | },
|
129 | arguments: [
|
130 | {
|
131 | name: 'src',
|
132 | },
|
133 | {
|
134 | name: 'dest',
|
135 | },
|
136 | ],
|
137 | options: [
|
138 | {
|
139 | name: 'output',
|
140 | flag: 'o',
|
141 | description: 'output description',
|
142 | },
|
143 | ],
|
144 | },
|
145 | {
|
146 | name: 'variadic',
|
147 | description: 'my description (variadic)',
|
148 | handler: parsed => {
|
149 |
|
150 | },
|
151 | arguments: [
|
152 | {
|
153 | name: 'src',
|
154 | },
|
155 | {
|
156 | name: 'dest',
|
157 | },
|
158 | {
|
159 | name: 'variadicarg',
|
160 | isVariadic: true,
|
161 | },
|
162 | ],
|
163 | options: [
|
164 | {
|
165 | name: 'output',
|
166 | flag: '-o',
|
167 | description: 'output description',
|
168 | },
|
169 | ],
|
170 | },
|
171 | {
|
172 | name: 'camelCommand',
|
173 | description: 'Command with camel case name',
|
174 | handler: parsed => {
|
175 |
|
176 | },
|
177 | arguments: [
|
178 | {
|
179 | name: 'src',
|
180 | description: 'Source file',
|
181 | },
|
182 | {
|
183 | name: 'dest',
|
184 | description: 'Desination File',
|
185 | isOptional: true,
|
186 | default: 'Default Value',
|
187 | },
|
188 | ],
|
189 | options: [
|
190 | {
|
191 | name: 'output',
|
192 | flag: '-o',
|
193 | description: 'output description',
|
194 | },
|
195 | ],
|
196 | },
|
197 | ];
|
198 |
|
199 | export const def: CliProgramDefinition = {
|
200 | name: 'mr',
|
201 | defaultCommandName: 'build',
|
202 |
|
203 | commands: defs,
|
204 | description: 'global bin description',
|
205 | examples: ['mr myfile.txt out.txt -g', 'mr blah blah -o'],
|
206 | };
|
207 |
|
208 | export const dynamicProg: CliProgramDefinition = {
|
209 | name: 'mr',
|
210 | defaultCommandName: 'build',
|
211 | commands: [
|
212 | {
|
213 | name: 'build',
|
214 | description: 'Command with camel case name',
|
215 | allowDynamicOptions: true,
|
216 | options: [
|
217 | {
|
218 | name: 'output',
|
219 | flag: '-o',
|
220 | description: 'output description',
|
221 | },
|
222 | ],
|
223 | },
|
224 | ],
|
225 | };
|