@contrail/cli 1.0.67 → 1.0.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/.eslintrc.js +53 -53
  2. package/.vscode/settings.json +5 -5
  3. package/README.md +5 -5
  4. package/bin/init +3 -3
  5. package/lib/api/apps.d.ts +13 -13
  6. package/lib/api/apps.js +85 -85
  7. package/lib/api/event-workflow-action-definition.d.ts +1 -1
  8. package/lib/api/event-workflow-action-definition.js +7 -7
  9. package/lib/api/event-workflow-template-definition.d.ts +6 -6
  10. package/lib/api/event-workflow-template-definition.js +20 -20
  11. package/lib/api/event-workflow-templates.d.ts +7 -7
  12. package/lib/api/event-workflow-templates.js +25 -25
  13. package/lib/apps/create-app/create.d.ts +1 -1
  14. package/lib/apps/create-app/create.js +60 -59
  15. package/lib/apps/create-app/setup-template.d.ts +1 -1
  16. package/lib/apps/create-app/setup-template.js +34 -34
  17. package/lib/apps/deploy-app/actions-deployer.d.ts +11 -11
  18. package/lib/apps/deploy-app/actions-deployer.js +114 -114
  19. package/lib/apps/deploy-app/app-deployer.d.ts +8 -8
  20. package/lib/apps/deploy-app/app-deployer.js +93 -93
  21. package/lib/apps/deploy-app/app-template-parsers.d.ts +7 -7
  22. package/lib/apps/deploy-app/app-template-parsers.js +38 -38
  23. package/lib/apps/deploy-app/deploy.d.ts +2 -2
  24. package/lib/apps/deploy-app/deploy.js +58 -58
  25. package/lib/apps/install-app/app-installer.d.ts +2 -2
  26. package/lib/apps/install-app/app-installer.js +120 -120
  27. package/lib/apps/upgrade-app/app-upgrader.d.ts +3 -3
  28. package/lib/apps/upgrade-app/app-upgrader.js +126 -126
  29. package/lib/auth/auth.d.ts +9 -9
  30. package/lib/auth/auth.js +2 -2
  31. package/lib/auth/login.d.ts +2 -2
  32. package/lib/auth/login.js +141 -141
  33. package/lib/cli.d.ts +5 -5
  34. package/lib/cli.js +524 -481
  35. package/lib/colors/color-loader.d.ts +2 -2
  36. package/lib/colors/color-loader.js +96 -96
  37. package/lib/common.d.ts +1 -1
  38. package/lib/common.js +5 -5
  39. package/lib/config/config.d.ts +6 -6
  40. package/lib/config/config.js +70 -70
  41. package/lib/config/configCommands.d.ts +3 -3
  42. package/lib/config/configCommands.js +34 -34
  43. package/lib/interfaces.d.ts +191 -191
  44. package/lib/interfaces.js +25 -25
  45. package/lib/loader-process/loader-process.d.ts +2 -2
  46. package/lib/loader-process/loader-process.js +120 -120
  47. package/lib/projects/interfaces.d.ts +77 -77
  48. package/lib/projects/interfaces.js +23 -23
  49. package/lib/projects/project-exporter.d.ts +2 -2
  50. package/lib/projects/project-exporter.js +187 -187
  51. package/lib/projects/project-uploader.d.ts +1 -1
  52. package/lib/projects/project-uploader.js +105 -105
  53. package/lib/types/allUploader.d.ts +1 -1
  54. package/lib/types/allUploader.js +24 -24
  55. package/lib/types/csv-parser.d.ts +1 -1
  56. package/lib/types/csv-parser.js +51 -51
  57. package/lib/types/interfaces.d.ts +55 -55
  58. package/lib/types/interfaces.js +1 -1
  59. package/lib/types/option-set-hierarchy-exporter.d.ts +1 -1
  60. package/lib/types/option-set-hierarchy-exporter.js +113 -113
  61. package/lib/types/option-set-hierarchy-parser.d.ts +2 -2
  62. package/lib/types/option-set-hierarchy-parser.js +140 -140
  63. package/lib/types/option-set-hierarchy-uploader.d.ts +1 -1
  64. package/lib/types/option-set-hierarchy-uploader.js +113 -113
  65. package/lib/types/option-set-merger.d.ts +1 -1
  66. package/lib/types/option-set-merger.js +105 -102
  67. package/lib/types/option-set-parser.d.ts +3 -1
  68. package/lib/types/option-set-parser.js +140 -50
  69. package/lib/types/option-set-uploader.d.ts +1 -1
  70. package/lib/types/option-set-uploader.js +98 -98
  71. package/lib/types/parse-types.d.ts +4 -4
  72. package/lib/types/parse-types.js +189 -189
  73. package/lib/types/rule-set-uploader.d.ts +1 -1
  74. package/lib/types/rule-set-uploader.js +172 -172
  75. package/lib/types/type-property-policy-uploader.d.ts +1 -1
  76. package/lib/types/type-property-policy-uploader.js +178 -178
  77. package/lib/types/types-extractor.d.ts +27 -27
  78. package/lib/types/types-extractor.js +318 -318
  79. package/lib/types/types-properties-merger.d.ts +1 -1
  80. package/lib/types/types-properties-merger.js +75 -75
  81. package/lib/types/types-uploader.d.ts +1 -1
  82. package/lib/types/types-uploader.js +239 -239
  83. package/lib/types/usage-info-uploader.d.ts +1 -1
  84. package/lib/types/usage-info-uploader.js +132 -132
  85. package/lib/users/user-exporter.d.ts +1 -0
  86. package/lib/users/user-exporter.js +41 -0
  87. package/lib/users/user-uploader.d.ts +1 -0
  88. package/lib/users/user-uploader.js +45 -0
  89. package/lib/workflow-template-definitions/workflow-template-definition-commands.d.ts +2 -2
  90. package/lib/workflow-template-definitions/workflow-template-definition-commands.js +10 -10
  91. package/lib/workflow-template-definitions/workflow-template-definition-deployer.d.ts +12 -12
  92. package/lib/workflow-template-definitions/workflow-template-definition-deployer.js +151 -151
  93. package/lib/workflow-templates/local-workflow-template-deployer.d.ts +11 -11
  94. package/lib/workflow-templates/local-workflow-template-deployer.js +102 -102
  95. package/lib/workflow-templates/workflow-template-commands.d.ts +4 -4
  96. package/lib/workflow-templates/workflow-template-commands.js +51 -51
  97. package/lib/workflow-templates/workflow-template-deployer.d.ts +4 -4
  98. package/lib/workflow-templates/workflow-template-deployer.js +26 -26
  99. package/package.json +72 -72
  100. package/publish.bat +5 -0
  101. package/publish.sh +4 -4
  102. package/src/api/apps.ts +96 -96
  103. package/src/api/event-workflow-action-definition.ts +7 -7
  104. package/src/api/event-workflow-template-definition.ts +22 -22
  105. package/src/api/event-workflow-templates.ts +28 -28
  106. package/src/apps/create-app/create.ts +74 -73
  107. package/src/apps/create-app/setup-template.ts +37 -37
  108. package/src/apps/deploy-app/actions-deployer.ts +140 -140
  109. package/src/apps/deploy-app/app-deployer.ts +105 -105
  110. package/src/apps/deploy-app/app-template-parsers.ts +43 -43
  111. package/src/apps/deploy-app/deploy.ts +65 -65
  112. package/src/apps/install-app/app-installer.ts +125 -125
  113. package/src/apps/upgrade-app/app-upgrader.ts +131 -131
  114. package/src/auth/auth.ts +9 -9
  115. package/src/auth/login.ts +155 -155
  116. package/src/cli.ts +540 -496
  117. package/src/colors/color-loader.ts +112 -112
  118. package/src/colors/colors.csv +866 -866
  119. package/src/common.ts +4 -4
  120. package/src/config/config.ts +74 -74
  121. package/src/config/configCommands.ts +37 -37
  122. package/src/interfaces.ts +200 -200
  123. package/src/loader-process/loader-process.ts +151 -151
  124. package/src/projects/interfaces.ts +72 -72
  125. package/src/projects/project-exporter.ts +224 -224
  126. package/src/projects/project-uploader.ts +130 -130
  127. package/src/types/allUploader.ts +28 -28
  128. package/src/types/csv-parser.ts +58 -58
  129. package/src/types/interfaces.ts +58 -58
  130. package/src/types/option-set-hierarchy-exporter.ts +124 -124
  131. package/src/types/option-set-hierarchy-parser.ts +168 -168
  132. package/src/types/option-set-hierarchy-uploader.ts +121 -121
  133. package/src/types/option-set-merger.ts +123 -122
  134. package/src/types/option-set-parser.ts +165 -59
  135. package/src/types/option-set-uploader.ts +107 -107
  136. package/src/types/parse-types.ts +226 -226
  137. package/src/types/rule-set-uploader.ts +186 -186
  138. package/src/types/type-property-policy-uploader.ts +191 -191
  139. package/src/types/types-extractor.ts +368 -368
  140. package/src/types/types-properties-merger.ts +89 -89
  141. package/src/types/types-uploader.ts +271 -271
  142. package/src/types/usage-info-uploader.ts +138 -138
  143. package/src/users/user-exporter.ts +52 -0
  144. package/src/users/user-uploader.ts +58 -0
  145. package/src/workflow-template-definitions/workflow-template-definition-commands.ts +12 -12
  146. package/src/workflow-template-definitions/workflow-template-definition-deployer.ts +184 -184
  147. package/src/workflow-templates/local-workflow-template-deployer.ts +125 -125
  148. package/src/workflow-templates/workflow-template-commands.ts +59 -59
  149. package/src/workflow-templates/workflow-template-deployer.ts +29 -29
  150. package/templates/docker_deploy.bat +1 -0
  151. package/templates/javascript/actions/example/action.js +37 -37
  152. package/templates/javascript/app.yml +52 -52
  153. package/templates/javascript/package.json +23 -23
  154. package/templates/typescript/Dockerfile +15 -14
  155. package/templates/typescript/README.md +10 -10
  156. package/templates/typescript/app.yml +50 -54
  157. package/templates/typescript/package-lock.json +14 -14
  158. package/templates/typescript/package.json +54 -52
  159. package/templates/typescript/src/actions/logItem.ts +26 -0
  160. package/templates/typescript/src/framework/action-dispatcher.ts +86 -0
  161. package/templates/typescript/src/framework/app-config.ts +27 -0
  162. package/templates/typescript/src/framework/handler.ts +11 -0
  163. package/templates/typescript/src/framework/index.ts +3 -0
  164. package/templates/typescript/src/framework/interfaces.ts +32 -0
  165. package/templates/typescript/src/framework/logger.ts +21 -0
  166. package/templates/typescript/{actions → src/framework}/mock-server.ts +7 -0
  167. package/templates/typescript/tsconfig.json +28 -27
  168. package/tsconfig.json +31 -30
  169. package/templates/typescript/actions/handler.ts +0 -62
  170. package/templates/typescript/actions/utils/logger.ts +0 -15
@@ -1,2 +1,2 @@
1
- export declare function deleteColors(): Promise<void>;
2
- export declare function loadColors(): Promise<void>;
1
+ export declare function deleteColors(): Promise<void>;
2
+ export declare function loadColors(): Promise<void>;
@@ -1,96 +1,96 @@
1
- import { Entities } from '@contrail/sdk';
2
- import chalk from 'chalk';
3
- import { authUser } from '../auth/login';
4
- import { getSeparatorByPlatform } from '../common';
5
- const csv = require('csvtojson');
6
- export async function deleteColors() {
7
- try {
8
- await authUser();
9
- const colors = await getExistingColors();
10
- console.log('Deleting %s colors', colors.length);
11
- for (const color of colors) {
12
- await deleteColor(color);
13
- }
14
- }
15
- catch (e) {
16
- console.log(`%s Loading Colors Failed. ${e}`, chalk.red.bold('FAIL'));
17
- return;
18
- }
19
- console.log('%s Deleting Colors Complete.', chalk.green.bold('COMPLETE'));
20
- }
21
- export async function loadColors() {
22
- try {
23
- await authUser();
24
- console.log('%s Getting Existing Colors', chalk.yellow.bold('COLORS'));
25
- console.log('%s Uploading', chalk.yellow.bold('COLORS'));
26
- await uploadColors();
27
- console.log('%s Uploaded', chalk.yellow.bold('COLORS'));
28
- }
29
- catch (e) {
30
- console.log(`%s Loading Colors Failed. ${e}`, chalk.red.bold('FAIL'));
31
- return;
32
- }
33
- console.log('%s Loading Colors Complete.', chalk.green.bold('COMPLETE'));
34
- }
35
- async function getLocalColors() {
36
- console.log('loading colors from local file');
37
- const TARGET_DIR = process.cwd();
38
- try {
39
- const separator = getSeparatorByPlatform();
40
- const csvFilePath = TARGET_DIR + separator + 'colors.csv';
41
- return await csv().fromFile(csvFilePath);
42
- }
43
- catch (e) {
44
- throw new Error(`ERROR PARSING COLORS CSV: ${e}`);
45
- }
46
- }
47
- async function getExistingColors() {
48
- console.log('%s Getting Existing Colors', chalk.yellow.bold('COLORS'));
49
- try {
50
- const result = await new Entities().get({ entityName: 'color', take: 3000 }); //, useSearch: false }); Not in EntitiesClientGetOptions yet
51
- console.log('Found %s existing colors', result.length);
52
- return result;
53
- }
54
- catch (e) {
55
- throw new Error(`ERROR DOWNLOADING COLORS: ${e}`);
56
- }
57
- }
58
- async function deleteColor(color) {
59
- try {
60
- await new Entities().delete({ entityName: 'color', id: color.id });
61
- }
62
- catch (e) {
63
- throw new Error(`ERROR DOWNLOADING COLORS: ${e}`);
64
- }
65
- }
66
- async function uploadColors() {
67
- const colors = await getLocalColors();
68
- const existingColors = await getExistingColors();
69
- const existingNamesValues = existingColors.filter(x => x.name).map(x => x.name);
70
- for (const color of colors) {
71
- if (existingNamesValues.includes(color.name)) {
72
- console.log('%s SKIPPING %s (%s)', chalk.yellow.bold('COLORS'), color.hex, color.name);
73
- continue;
74
- }
75
- if (color.hex.length > 1 && color.hex[0] === '#') {
76
- color.hex = color.hex.substring(1);
77
- }
78
- const o = {
79
- hex: color.hex,
80
- name: color.name
81
- };
82
- if (color.red) {
83
- o.red = color.red;
84
- }
85
- if (color.green) {
86
- o.green = color.green;
87
- }
88
- if (color.blue) {
89
- o.blue = color.blue;
90
- }
91
- await new Entities().create({
92
- entityName: 'color',
93
- object: o
94
- });
95
- }
96
- }
1
+ import { Entities } from '@contrail/sdk';
2
+ import chalk from 'chalk';
3
+ import { authUser } from '../auth/login';
4
+ import { getSeparatorByPlatform } from '../common';
5
+ const csv = require('csvtojson');
6
+ export async function deleteColors() {
7
+ try {
8
+ await authUser();
9
+ const colors = await getExistingColors();
10
+ console.log('Deleting %s colors', colors.length);
11
+ for (const color of colors) {
12
+ await deleteColor(color);
13
+ }
14
+ }
15
+ catch (e) {
16
+ console.log(`%s Loading Colors Failed. ${e}`, chalk.red.bold('FAIL'));
17
+ return;
18
+ }
19
+ console.log('%s Deleting Colors Complete.', chalk.green.bold('COMPLETE'));
20
+ }
21
+ export async function loadColors() {
22
+ try {
23
+ await authUser();
24
+ console.log('%s Getting Existing Colors', chalk.yellow.bold('COLORS'));
25
+ console.log('%s Uploading', chalk.yellow.bold('COLORS'));
26
+ await uploadColors();
27
+ console.log('%s Uploaded', chalk.yellow.bold('COLORS'));
28
+ }
29
+ catch (e) {
30
+ console.log(`%s Loading Colors Failed. ${e}`, chalk.red.bold('FAIL'));
31
+ return;
32
+ }
33
+ console.log('%s Loading Colors Complete.', chalk.green.bold('COMPLETE'));
34
+ }
35
+ async function getLocalColors() {
36
+ console.log('loading colors from local file');
37
+ const TARGET_DIR = process.cwd();
38
+ try {
39
+ const separator = getSeparatorByPlatform();
40
+ const csvFilePath = TARGET_DIR + separator + 'colors.csv';
41
+ return await csv().fromFile(csvFilePath);
42
+ }
43
+ catch (e) {
44
+ throw new Error(`ERROR PARSING COLORS CSV: ${e}`);
45
+ }
46
+ }
47
+ async function getExistingColors() {
48
+ console.log('%s Getting Existing Colors', chalk.yellow.bold('COLORS'));
49
+ try {
50
+ const result = await new Entities().get({ entityName: 'color', take: 3000 }); //, useSearch: false }); Not in EntitiesClientGetOptions yet
51
+ console.log('Found %s existing colors', result.length);
52
+ return result;
53
+ }
54
+ catch (e) {
55
+ throw new Error(`ERROR DOWNLOADING COLORS: ${e}`);
56
+ }
57
+ }
58
+ async function deleteColor(color) {
59
+ try {
60
+ await new Entities().delete({ entityName: 'color', id: color.id });
61
+ }
62
+ catch (e) {
63
+ throw new Error(`ERROR DOWNLOADING COLORS: ${e}`);
64
+ }
65
+ }
66
+ async function uploadColors() {
67
+ const colors = await getLocalColors();
68
+ const existingColors = await getExistingColors();
69
+ const existingNamesValues = existingColors.filter(x => x.name).map(x => x.name);
70
+ for (const color of colors) {
71
+ if (existingNamesValues.includes(color.name)) {
72
+ console.log('%s SKIPPING %s (%s)', chalk.yellow.bold('COLORS'), color.hex, color.name);
73
+ continue;
74
+ }
75
+ if (color.hex.length > 1 && color.hex[0] === '#') {
76
+ color.hex = color.hex.substring(1);
77
+ }
78
+ const o = {
79
+ hex: color.hex,
80
+ name: color.name
81
+ };
82
+ if (color.red) {
83
+ o.red = color.red;
84
+ }
85
+ if (color.green) {
86
+ o.green = color.green;
87
+ }
88
+ if (color.blue) {
89
+ o.blue = color.blue;
90
+ }
91
+ await new Entities().create({
92
+ entityName: 'color',
93
+ object: o
94
+ });
95
+ }
96
+ }
package/lib/common.d.ts CHANGED
@@ -1 +1 @@
1
- export declare function getSeparatorByPlatform(): "\\" | "/";
1
+ export declare function getSeparatorByPlatform(): "\\" | "/";
package/lib/common.js CHANGED
@@ -1,5 +1,5 @@
1
- export function getSeparatorByPlatform() {
2
- const isWin = process.platform === 'win32';
3
- const separator = isWin ? '\\' : '/';
4
- return separator;
5
- }
1
+ export function getSeparatorByPlatform() {
2
+ const isWin = process.platform === 'win32';
3
+ const separator = isWin ? '\\' : '/';
4
+ return separator;
5
+ }
@@ -1,6 +1,6 @@
1
- export declare function initializeVibeIQConfig(): Promise<void>;
2
- export declare function readVibeIQConfig(): Promise<any>;
3
- export declare function writeVibeIQConfig(config: any): Promise<void>;
4
- export declare function getConfig(): Promise<any>;
5
- export declare function deleteConfigs(configNames: string[]): Promise<void>;
6
- export declare function storeConfig(incomingConfig: any, merge?: boolean): Promise<void>;
1
+ export declare function initializeVibeIQConfig(): Promise<void>;
2
+ export declare function readVibeIQConfig(): Promise<any>;
3
+ export declare function writeVibeIQConfig(config: any): Promise<void>;
4
+ export declare function getConfig(): Promise<any>;
5
+ export declare function deleteConfigs(configNames: string[]): Promise<void>;
6
+ export declare function storeConfig(incomingConfig: any, merge?: boolean): Promise<void>;
@@ -1,70 +1,70 @@
1
- import { promises as fsPromises } from 'fs';
2
- import { join } from 'path';
3
- import { homedir } from 'os';
4
- const userHomeDir = homedir();
5
- const configDirectoryLocation = join(userHomeDir, '.vibeiq');
6
- const configFileLocation = join(configDirectoryLocation, 'config.json');
7
- export async function initializeVibeIQConfig() {
8
- try {
9
- await fsPromises.mkdir(configDirectoryLocation, { recursive: true });
10
- }
11
- catch (e) {
12
- console.error('could not initialize vibeiq directory');
13
- throw e;
14
- }
15
- try {
16
- await fsPromises.writeFile(configFileLocation, '{}');
17
- }
18
- catch (e) {
19
- console.error(`could not initialize config file (${configFileLocation}).`);
20
- throw e;
21
- }
22
- }
23
- export async function readVibeIQConfig() {
24
- let fileContent;
25
- try {
26
- fileContent = await fsPromises.readFile(configFileLocation);
27
- }
28
- catch (e) {
29
- console.debug(`failed to open config file (${configFileLocation}) for reading.`);
30
- console.debug('trying to initialize config file');
31
- await initializeVibeIQConfig();
32
- fileContent = await fsPromises.readFile(configFileLocation);
33
- }
34
- try {
35
- return JSON.parse(fileContent);
36
- }
37
- catch (e) {
38
- console.error(`Could not parse local vibeiq config. The file (${configFileLocation}) might be malformed`);
39
- }
40
- }
41
- export async function writeVibeIQConfig(config) {
42
- try {
43
- await fsPromises.writeFile(configFileLocation, JSON.stringify(config, null, 2));
44
- }
45
- catch (e) {
46
- console.error(`Could not open config file (${configFileLocation}) for writing.`);
47
- throw e;
48
- }
49
- }
50
- export async function getConfig() {
51
- console.debug('getting config from file system');
52
- return await readVibeIQConfig();
53
- }
54
- export async function deleteConfigs(configNames) {
55
- const currentConfig = await readVibeIQConfig();
56
- for (const configName of configNames) {
57
- delete currentConfig[configName];
58
- }
59
- await storeConfig(currentConfig, false);
60
- }
61
- export async function storeConfig(incomingConfig, merge = true) {
62
- let config;
63
- if (merge) {
64
- config = Object.assign(Object.assign({}, await readVibeIQConfig()), incomingConfig);
65
- }
66
- else {
67
- config = incomingConfig;
68
- }
69
- await writeVibeIQConfig(config);
70
- }
1
+ import { promises as fsPromises } from 'fs';
2
+ import { join } from 'path';
3
+ import { homedir } from 'os';
4
+ const userHomeDir = homedir();
5
+ const configDirectoryLocation = join(userHomeDir, '.vibeiq');
6
+ const configFileLocation = join(configDirectoryLocation, 'config.json');
7
+ export async function initializeVibeIQConfig() {
8
+ try {
9
+ await fsPromises.mkdir(configDirectoryLocation, { recursive: true });
10
+ }
11
+ catch (e) {
12
+ console.error('could not initialize vibeiq directory');
13
+ throw e;
14
+ }
15
+ try {
16
+ await fsPromises.writeFile(configFileLocation, '{}');
17
+ }
18
+ catch (e) {
19
+ console.error(`could not initialize config file (${configFileLocation}).`);
20
+ throw e;
21
+ }
22
+ }
23
+ export async function readVibeIQConfig() {
24
+ let fileContent;
25
+ try {
26
+ fileContent = await fsPromises.readFile(configFileLocation);
27
+ }
28
+ catch (e) {
29
+ console.debug(`failed to open config file (${configFileLocation}) for reading.`);
30
+ console.debug('trying to initialize config file');
31
+ await initializeVibeIQConfig();
32
+ fileContent = await fsPromises.readFile(configFileLocation);
33
+ }
34
+ try {
35
+ return JSON.parse(fileContent);
36
+ }
37
+ catch (e) {
38
+ console.error(`Could not parse local vibeiq config. The file (${configFileLocation}) might be malformed`);
39
+ }
40
+ }
41
+ export async function writeVibeIQConfig(config) {
42
+ try {
43
+ await fsPromises.writeFile(configFileLocation, JSON.stringify(config, null, 2));
44
+ }
45
+ catch (e) {
46
+ console.error(`Could not open config file (${configFileLocation}) for writing.`);
47
+ throw e;
48
+ }
49
+ }
50
+ export async function getConfig() {
51
+ console.debug('getting config from file system');
52
+ return await readVibeIQConfig();
53
+ }
54
+ export async function deleteConfigs(configNames) {
55
+ const currentConfig = await readVibeIQConfig();
56
+ for (const configName of configNames) {
57
+ delete currentConfig[configName];
58
+ }
59
+ await storeConfig(currentConfig, false);
60
+ }
61
+ export async function storeConfig(incomingConfig, merge = true) {
62
+ let config;
63
+ if (merge) {
64
+ config = Object.assign(Object.assign({}, await readVibeIQConfig()), incomingConfig);
65
+ }
66
+ else {
67
+ config = incomingConfig;
68
+ }
69
+ await writeVibeIQConfig(config);
70
+ }
@@ -1,3 +1,3 @@
1
- export declare function listConfig(): Promise<void>;
2
- export declare function setConfig(args: any): Promise<void>;
3
- export declare function removeConfig(args: any): Promise<void>;
1
+ export declare function listConfig(): Promise<void>;
2
+ export declare function setConfig(args: any): Promise<void>;
3
+ export declare function removeConfig(args: any): Promise<void>;
@@ -1,34 +1,34 @@
1
- import { deleteConfigs, readVibeIQConfig, storeConfig } from './config';
2
- export async function listConfig() {
3
- console.log(await readVibeIQConfig());
4
- }
5
- export async function setConfig(args) {
6
- const helpConfigLine = `
7
- Usage:
8
- contrail config.set key1=value1 key2=value2
9
- `;
10
- if ((args === null || args === void 0 ? void 0 : args.length) < 4) {
11
- console.log(helpConfigLine);
12
- throw new Error('You need to pass at least one config to set');
13
- }
14
- const configsToSet = args.slice(3);
15
- const config = {};
16
- for (const conf of configsToSet) {
17
- if (conf.length < 3 || conf.indexOf('=') <= 0) {
18
- console.log(helpConfigLine);
19
- throw new Error(`value ${conf} does not adhere to key1=value1 standard`);
20
- }
21
- const [key, value] = conf.split('=');
22
- console.log('key and value:', key, value);
23
- console.log(conf.split('='));
24
- config[key] = value;
25
- }
26
- console.log('config is:', config);
27
- await storeConfig(config);
28
- }
29
- export async function removeConfig(args) {
30
- if ((args === null || args === void 0 ? void 0 : args.length) < 4) {
31
- throw new Error('At least one configuration must be included to be removed.');
32
- }
33
- await deleteConfigs(args.slice(3));
34
- }
1
+ import { deleteConfigs, readVibeIQConfig, storeConfig } from './config';
2
+ export async function listConfig() {
3
+ console.log(await readVibeIQConfig());
4
+ }
5
+ export async function setConfig(args) {
6
+ const helpConfigLine = `
7
+ Usage:
8
+ contrail config.set key1=value1 key2=value2
9
+ `;
10
+ if ((args === null || args === void 0 ? void 0 : args.length) < 4) {
11
+ console.log(helpConfigLine);
12
+ throw new Error('You need to pass at least one config to set');
13
+ }
14
+ const configsToSet = args.slice(3);
15
+ const config = {};
16
+ for (const conf of configsToSet) {
17
+ if (conf.length < 3 || conf.indexOf('=') <= 0) {
18
+ console.log(helpConfigLine);
19
+ throw new Error(`value ${conf} does not adhere to key1=value1 standard`);
20
+ }
21
+ const [key, value] = conf.split('=');
22
+ console.log('key and value:', key, value);
23
+ console.log(conf.split('='));
24
+ config[key] = value;
25
+ }
26
+ console.log('config is:', config);
27
+ await storeConfig(config);
28
+ }
29
+ export async function removeConfig(args) {
30
+ if ((args === null || args === void 0 ? void 0 : args.length) < 4) {
31
+ throw new Error('At least one configuration must be included to be removed.');
32
+ }
33
+ await deleteConfigs(args.slice(3));
34
+ }