UNPKG

1.86 kBJavaScriptView Raw
1import { Action } from 'argparse';
2
3
4const DEFAULT_CAPS_ARG = '--default-capabilities';
5
6
7class StoreDeprecatedAction extends Action {
8 constructor (options = {}) {
9 const opts = Object.assign({}, options);
10 let helpPrefix = '[DEPRECATED]';
11 if (opts.deprecated_for) {
12 helpPrefix = `[DEPRECATED, use ${opts.deprecated_for} instead]`;
13 delete opts.deprecated_for;
14 }
15 if (opts.help) {
16 opts.help = `${helpPrefix} - ${opts.help}`;
17 } else {
18 opts.help = helpPrefix;
19 }
20 super(opts);
21 }
22
23 call (parser, namespace, values) {
24 namespace[this.dest] = values;
25 }
26}
27
28
29class StoreDeprecatedTrueAction extends StoreDeprecatedAction {
30 constructor (options = {}) {
31 super(Object.assign({}, options, {const: true, nargs: 0}));
32 }
33
34 call (parser, namespace) {
35 namespace[this.dest] = this.const;
36 }
37}
38
39
40class StoreDeprecatedDefaultCapabilityAction extends StoreDeprecatedAction {
41 constructor (options = {}) {
42 super(Object.assign({}, options, {deprecated_for: DEFAULT_CAPS_ARG}));
43 }
44
45 _writeDefaultCap (namespace, value) {
46 namespace[this.dest] = value;
47 if (value === this.default) {
48 return;
49 }
50
51 if (!namespace.defaultCapabilities) {
52 namespace.defaultCapabilities = {};
53 }
54 namespace.defaultCapabilities[this.dest] = value;
55 }
56
57 call (parser, namespace, values) {
58 this._writeDefaultCap(namespace, values);
59 }
60}
61
62
63class StoreDeprecatedDefaultCapabilityTrueAction extends StoreDeprecatedDefaultCapabilityAction {
64 constructor (options = {}) {
65 super(Object.assign({}, options, {const: true, nargs: 0}));
66 }
67
68 call (parser, namespace) {
69 this._writeDefaultCap(namespace, this.const);
70 }
71}
72
73export {
74 StoreDeprecatedAction, StoreDeprecatedTrueAction,
75 StoreDeprecatedDefaultCapabilityAction, StoreDeprecatedDefaultCapabilityTrueAction,
76 DEFAULT_CAPS_ARG,
77};