@sap_oss/wdio-qmate-service 1.0.0 → 1.0.2

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 (144) hide show
  1. package/README.md +2 -1
  2. package/{test/core/package-lock.json → docs/bestPractices/spec.md} +0 -0
  3. package/docs/doc.md +176 -353
  4. package/docs/gettingStarted/setup.md +2 -2
  5. package/docs/index.md +1 -1
  6. package/docs/sections/bestPractices/authentication.md +151 -0
  7. package/docs/sections/bestPractices/dataHandling.md +61 -0
  8. package/docs/sections/bestPractices/selectors.md +44 -0
  9. package/docs/{contact.md → sections/contact.md} +0 -0
  10. package/docs/sections/features/advancedDataHandling.md +252 -0
  11. package/docs/sections/features/config.md +171 -0
  12. package/docs/sections/features/dataHandling.md +83 -0
  13. package/docs/{gettingStarted → sections/features}/selectors.md +0 -0
  14. package/docs/sections/features/spec.md +0 -0
  15. package/docs/sections/gettingStarted/config.md +18 -0
  16. package/docs/sections/gettingStarted/execution.md +7 -0
  17. package/docs/sections/gettingStarted/setup.md +9 -0
  18. package/docs/sections/gettingStarted/spec.md +31 -0
  19. package/docs/sections/gettingStarted/specs.md +19 -0
  20. package/docs/sections/support/bugReporting.md +19 -0
  21. package/docs/sections/support/knownIssuesAndLimitations.md +0 -0
  22. package/docs/sections/support/troubleshooting.md +16 -0
  23. package/docs/sources/images/fiori_form.PNG +0 -0
  24. package/docs/sources/images/sapCloud_form.PNG +0 -0
  25. package/lib/index.js +59 -82
  26. package/lib/index.js.map +1 -1
  27. package/lib/reuse/authenticator/authHandler.js +12 -23
  28. package/lib/reuse/authenticator/authHandler.js.map +1 -1
  29. package/lib/reuse/authenticator/basicUrlAuthenticator.js +21 -32
  30. package/lib/reuse/authenticator/basicUrlAuthenticator.js.map +1 -1
  31. package/lib/reuse/authenticator/customAuthenticator.js +42 -55
  32. package/lib/reuse/authenticator/customAuthenticator.js.map +1 -1
  33. package/lib/reuse/authenticator/formAuthenticator.js +37 -50
  34. package/lib/reuse/authenticator/formAuthenticator.js.map +1 -1
  35. package/lib/reuse/authenticator/plainAuthenticator.js +5 -16
  36. package/lib/reuse/authenticator/plainAuthenticator.js.map +1 -1
  37. package/lib/reuse/helper/jsDocGen.js +4 -12
  38. package/lib/reuse/helper/jsDocGen.js.map +1 -1
  39. package/lib/reuse/index.js +20 -5
  40. package/lib/reuse/index.js.map +1 -1
  41. package/lib/reuse/modules/common/navigation.js +10 -23
  42. package/lib/reuse/modules/common/navigation.js.map +1 -1
  43. package/lib/reuse/modules/common/userInteraction.js +40 -73
  44. package/lib/reuse/modules/common/userInteraction.js.map +1 -1
  45. package/lib/reuse/modules/nonUi5/assertion.js +31 -52
  46. package/lib/reuse/modules/nonUi5/assertion.js.map +1 -1
  47. package/lib/reuse/modules/nonUi5/element.js +266 -331
  48. package/lib/reuse/modules/nonUi5/element.js.map +1 -1
  49. package/lib/reuse/modules/nonUi5/navigation.js +10 -21
  50. package/lib/reuse/modules/nonUi5/navigation.js.map +1 -1
  51. package/lib/reuse/modules/nonUi5/userInteraction.js +176 -215
  52. package/lib/reuse/modules/nonUi5/userInteraction.js.map +1 -1
  53. package/lib/reuse/modules/service/odata.d.ts +106 -94
  54. package/lib/reuse/modules/service/odata.js +209 -204
  55. package/lib/reuse/modules/service/odata.js.map +1 -1
  56. package/lib/reuse/modules/service/rest.js +64 -81
  57. package/lib/reuse/modules/service/rest.js.map +1 -1
  58. package/lib/reuse/modules/ui5/assertion.js +217 -268
  59. package/lib/reuse/modules/ui5/assertion.js.map +1 -1
  60. package/lib/reuse/modules/ui5/confirmationDialog.js +17 -42
  61. package/lib/reuse/modules/ui5/confirmationDialog.js.map +1 -1
  62. package/lib/reuse/modules/ui5/control.js +12 -33
  63. package/lib/reuse/modules/ui5/control.js.map +1 -1
  64. package/lib/reuse/modules/ui5/date.js +70 -89
  65. package/lib/reuse/modules/ui5/date.js.map +1 -1
  66. package/lib/reuse/modules/ui5/element.js +121 -156
  67. package/lib/reuse/modules/ui5/element.js.map +1 -1
  68. package/lib/reuse/modules/ui5/errorDialog.js +4 -17
  69. package/lib/reuse/modules/ui5/errorDialog.js.map +1 -1
  70. package/lib/reuse/modules/ui5/footerBar.js +28 -63
  71. package/lib/reuse/modules/ui5/footerBar.js.map +1 -1
  72. package/lib/reuse/modules/ui5/mockserver.js +390 -427
  73. package/lib/reuse/modules/ui5/mockserver.js.map +1 -1
  74. package/lib/reuse/modules/ui5/navigation.js +105 -132
  75. package/lib/reuse/modules/ui5/navigation.js.map +1 -1
  76. package/lib/reuse/modules/ui5/navigationBar.js +58 -77
  77. package/lib/reuse/modules/ui5/navigationBar.js.map +1 -1
  78. package/lib/reuse/modules/ui5/qunit.js +16 -27
  79. package/lib/reuse/modules/ui5/qunit.js.map +1 -1
  80. package/lib/reuse/modules/ui5/session.js +200 -236
  81. package/lib/reuse/modules/ui5/session.js.map +1 -1
  82. package/lib/reuse/modules/ui5/table.js +79 -98
  83. package/lib/reuse/modules/ui5/table.js.map +1 -1
  84. package/lib/reuse/modules/ui5/userInteraction.js +264 -335
  85. package/lib/reuse/modules/ui5/userInteraction.js.map +1 -1
  86. package/lib/reuse/modules/util/browser.js +131 -178
  87. package/lib/reuse/modules/util/browser.js.map +1 -1
  88. package/lib/reuse/modules/util/data.js +3 -2
  89. package/lib/reuse/modules/util/data.js.map +1 -1
  90. package/lib/reuse/modules/util/file.js +71 -90
  91. package/lib/reuse/modules/util/file.js.map +1 -1
  92. package/lib/reuse/modules/util/function.js +68 -87
  93. package/lib/reuse/modules/util/function.js.map +1 -1
  94. package/lib/reuse/modules/util/system.js +22 -33
  95. package/lib/reuse/modules/util/system.js.map +1 -1
  96. package/lib/scripts/dataExchange/dataExchange.js +145 -160
  97. package/lib/scripts/dataExchange/dataExchange.js.map +1 -1
  98. package/lib/scripts/dataExchange/dataExchangeUtil.js +93 -114
  99. package/lib/scripts/dataExchange/dataExchangeUtil.js.map +1 -1
  100. package/lib/scripts/hooks/after.js +3 -14
  101. package/lib/scripts/hooks/after.js.map +1 -1
  102. package/lib/scripts/hooks/before.js +9 -20
  103. package/lib/scripts/hooks/before.js.map +1 -1
  104. package/lib/scripts/hooks/beforeSession.js +7 -18
  105. package/lib/scripts/hooks/beforeSession.js.map +1 -1
  106. package/lib/scripts/hooks/onComplete.js +2 -13
  107. package/lib/scripts/hooks/onComplete.js.map +1 -1
  108. package/lib/scripts/hooks/onPrepare.js +9 -20
  109. package/lib/scripts/hooks/onPrepare.js.map +1 -1
  110. package/lib/scripts/hooks/utils/addLocatorCommands.js +109 -172
  111. package/lib/scripts/hooks/utils/addLocatorCommands.js.map +1 -1
  112. package/lib/scripts/hooks/utils/browserLog.js +18 -31
  113. package/lib/scripts/hooks/utils/browserLog.js.map +1 -1
  114. package/lib/scripts/hooks/utils/dataExchangeCommands.js +13 -24
  115. package/lib/scripts/hooks/utils/dataExchangeCommands.js.map +1 -1
  116. package/lib/scripts/hooks/utils/decryption.d.ts +1 -1
  117. package/lib/scripts/hooks/utils/decryption.js +33 -14
  118. package/lib/scripts/hooks/utils/decryption.js.map +1 -1
  119. package/lib/scripts/hooks/utils/lib.js +249 -272
  120. package/lib/scripts/hooks/utils/lib.js.map +1 -1
  121. package/lib/scripts/hooks/utils/locatorCommands.js +154 -183
  122. package/lib/scripts/hooks/utils/locatorCommands.js.map +1 -1
  123. package/mkdocs.yml +16 -3
  124. package/package.json +14 -11
  125. package/test/authenticator/staticLogin/specs/custom.spec.js +30 -1
  126. package/test/reuse/nonUi5/element/getById.spec.js +17 -0
  127. package/test/reuse/service/odata/get.spec.js +61 -0
  128. package/test/reuse/service/odata/getEntitySet.spec.js +87 -0
  129. package/test/reuse/service/odata/test.odata.conf.js +15 -0
  130. package/test/reuse/ui5/confirmationDialog/clickButton.spec.js +87 -0
  131. package/test/reuse/ui5/confirmationDialog/test.confirmationDialog.conf.js +2 -1
  132. package/test/reuse/ui5/element/test.element.conf.js +2 -1
  133. package/test/reuse/ui5/element/waitForAll.spec.js +46 -0
  134. package/test/reuse/ui5/userInteraction/clearAndFillSmartFieldInputAndRetry.spec.js +28 -0
  135. package/test/reuse/ui5/userInteraction/test.userInteraction.conf.js +1 -0
  136. package/test/reuse/util/browser/switchToNewWindow.spec.js +2 -2
  137. package/test/reuse/util/console/console.spec.js +27 -0
  138. package/test/reuse/util/console/test.console.conf.js +12 -0
  139. package/test/reuse/util/data/data/test.secure.json +7 -3
  140. package/test/reuse/util/data/getSecureData.spec.js +9 -3
  141. package/test/reuse/util/file/pdfParser.spec.js +33 -8
  142. package/test/reuse/util/system/system.spec.js +16 -0
  143. package/test/reuse/util/system/test.system.conf.js +12 -0
  144. package/tsconfig.json +1 -1
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
4
  };
@@ -27,47 +18,45 @@ class DataExchange {
27
18
  * @description read the import and export params in the config file
28
19
  * @example await readParams();
29
20
  */
30
- readParams() {
31
- return __awaiter(this, void 0, void 0, function* () {
32
- if (!browser.config.params) {
33
- //nothing to do
34
- return;
35
- }
36
- if (!browser.params) {
37
- browser.params = browser.config.params;
38
- }
39
- const importParams = browser.params.import || {};
40
- // import
41
- // read folders, and subfolders if directory, otherwise read file
42
- const params = Object.keys(importParams);
43
- for (let i = 0; i < params.length; i++) {
44
- const param = params[i];
45
- // adjust file path if relative
46
- const fileOrDir = dataExchangeUtil_1.default.getFileAbsPath(importParams[param]);
21
+ async readParams() {
22
+ if (!browser.config.params) {
23
+ //nothing to do
24
+ return;
25
+ }
26
+ if (!browser.params) {
27
+ browser.params = browser.config.params;
28
+ }
29
+ const importParams = browser.params.import || {};
30
+ // import
31
+ // read folders, and subfolders if directory, otherwise read file
32
+ const params = Object.keys(importParams);
33
+ for (let i = 0; i < params.length; i++) {
34
+ const param = params[i];
35
+ // adjust file path if relative
36
+ const fileOrDir = dataExchangeUtil_1.default.getFileAbsPath(importParams[param]);
37
+ // @ts-ignore
38
+ const isFileReadable = await dataExchangeUtil_1.default.isReadable(fileOrDir);
39
+ if (isFileReadable) {
47
40
  // @ts-ignore
48
- const isFileReadable = yield dataExchangeUtil_1.default.isReadable(fileOrDir);
49
- if (isFileReadable) {
50
- // @ts-ignore
51
- yield dataExchangeUtil_1.default.readData(fileOrDir, [param]);
52
- }
53
- else {
54
- delete importParams[param];
55
- console.warn(`"${fileOrDir}" does not exist or is not readable. Please check path or permissions.`);
56
- }
57
- }
58
- // for export, create folders and files if not present
59
- // copy filenames, since the user will overwrite browser.params.export with data
60
- // the filenames are required to write the json data at end of session
61
- const exportParams = browser.params.export;
62
- if (!exportParams) {
63
- // nothing to export
64
- return;
65
- }
66
- browser.params.exportDataFiles = Object.assign({}, exportParams);
67
- // if export file has data, should that be used?
68
- Object.keys(exportParams).forEach((param) => {
69
- browser.params.export[param] = null;
70
- });
41
+ await dataExchangeUtil_1.default.readData(fileOrDir, [param]);
42
+ }
43
+ else {
44
+ delete importParams[param];
45
+ console.warn(`"${fileOrDir}" does not exist or is not readable. Please check path or permissions.`);
46
+ }
47
+ }
48
+ // for export, create folders and files if not present
49
+ // copy filenames, since the user will overwrite browser.params.export with data
50
+ // the filenames are required to write the json data at end of session
51
+ const exportParams = browser.params.export;
52
+ if (!exportParams) {
53
+ // nothing to export
54
+ return;
55
+ }
56
+ browser.params.exportDataFiles = { ...exportParams };
57
+ // if export file has data, should that be used?
58
+ Object.keys(exportParams).forEach((param) => {
59
+ browser.params.export[param] = null;
71
60
  });
72
61
  }
73
62
  ;
@@ -77,44 +66,42 @@ class DataExchange {
77
66
  * in these temporary files will be merged after all instances complete
78
67
  * @example await writeExportDataInTmpFile();
79
68
  */
80
- writeExportDataInTmpFile() {
81
- return __awaiter(this, void 0, void 0, function* () {
82
- if (!browser.params || !browser.params.exportDataFiles) {
83
- // no export data files in config.js, nothing to do
84
- return;
85
- }
86
- if (!process.env.TMP_EXPORT_PATH) {
87
- console.warn("Unexpected error - process.env.TMP_EXPORT_PATH not defined");
88
- return;
89
- }
90
- if (!browser.params.export) {
91
- console.warn("Unexpected error - browser.params.export not defined, no export data to be written out");
92
- return;
93
- }
94
- const date = new Date().getTime();
95
- const keyFileWithPath = path_1.default.join(process.env.TMP_EXPORT_PATH, date + ".exportDataFiles");
69
+ async writeExportDataInTmpFile() {
70
+ if (!browser.params || !browser.params.exportDataFiles) {
71
+ // no export data files in config.js, nothing to do
72
+ return;
73
+ }
74
+ if (!process.env.TMP_EXPORT_PATH) {
75
+ console.warn("Unexpected error - process.env.TMP_EXPORT_PATH not defined");
76
+ return;
77
+ }
78
+ if (!browser.params.export) {
79
+ console.warn("Unexpected error - browser.params.export not defined, no export data to be written out");
80
+ return;
81
+ }
82
+ const date = new Date().getTime();
83
+ const keyFileWithPath = path_1.default.join(process.env.TMP_EXPORT_PATH, date + ".exportDataFiles");
84
+ try {
85
+ await dataExchangeUtil_1.default.outputJson(keyFileWithPath, browser.params.exportDataFiles, { spaces: 2 });
86
+ }
87
+ catch (err) {
88
+ console.warn(`Could not write export key data in tmp file ${keyFileWithPath}`);
89
+ console.warn(err);
90
+ }
91
+ const keys = Object.keys(browser.params.exportDataFiles);
92
+ //use for loop so all files get written before promise is resolved
93
+ for (let i = 0; i < keys.length; i++) {
94
+ const param = keys[i];
95
+ const fileWithPath = path_1.default.join(process.env.TMP_EXPORT_PATH, param + "." + date);
96
+ const data = browser.params.export[param] || {};
96
97
  try {
97
- yield dataExchangeUtil_1.default.outputJson(keyFileWithPath, browser.params.exportDataFiles, { spaces: 2 });
98
+ await fs_extra_1.default.outputJson(fileWithPath, data, { spaces: 2 });
98
99
  }
99
100
  catch (err) {
100
- console.warn(`Could not write export key data in tmp file ${keyFileWithPath}`);
101
+ console.warn(`Could not write export data in tmp file ${fileWithPath}`);
101
102
  console.warn(err);
102
103
  }
103
- const keys = Object.keys(browser.params.exportDataFiles);
104
- //use for loop so all files get written before promise is resolved
105
- for (let i = 0; i < keys.length; i++) {
106
- const param = keys[i];
107
- const fileWithPath = path_1.default.join(process.env.TMP_EXPORT_PATH, param + "." + date);
108
- const data = browser.params.export[param] || {};
109
- try {
110
- yield fs_extra_1.default.outputJson(fileWithPath, data, { spaces: 2 });
111
- }
112
- catch (err) {
113
- console.warn(`Could not write export data in tmp file ${fileWithPath}`);
114
- console.warn(err);
115
- }
116
- }
117
- });
104
+ }
118
105
  }
119
106
  ;
120
107
  /**
@@ -123,99 +110,97 @@ class DataExchange {
123
110
  * files and merges the data.
124
111
  * @example await writeExportData();
125
112
  */
126
- writeExportData() {
127
- return __awaiter(this, void 0, void 0, function* () {
128
- if (!process.env.TMP_EXPORT_PATH) {
129
- console.warn("Unexpected error - process.env.TMP_EXPORT_PATH not defined");
130
- return;
131
- }
132
- let files;
113
+ async writeExportData() {
114
+ if (!process.env.TMP_EXPORT_PATH) {
115
+ console.warn("Unexpected error - process.env.TMP_EXPORT_PATH not defined");
116
+ return;
117
+ }
118
+ let files;
119
+ try {
120
+ files = await fs_extra_1.default.readdir(process.env.TMP_EXPORT_PATH);
121
+ }
122
+ catch (err) {
123
+ console.warn(`Could not read export data in tmp folder ${process.env.TMP_EXPORT_PATH}`);
124
+ console.warn(err);
125
+ return;
126
+ }
127
+ files.sort();
128
+ const exportData = {};
129
+ let exportDataFiles = {};
130
+ // loop through the files in sequence, for loop ensures all files are
131
+ // read before we go to the next step
132
+ for (const file of files) {
133
+ const fileWithPath = path_1.default.resolve(process.env.TMP_EXPORT_PATH, file);
133
134
  try {
134
- files = yield fs_extra_1.default.readdir(process.env.TMP_EXPORT_PATH);
135
- }
136
- catch (err) {
137
- console.warn(`Could not read export data in tmp folder ${process.env.TMP_EXPORT_PATH}`);
138
- console.warn(err);
139
- return;
140
- }
141
- files.sort();
142
- const exportData = {};
143
- let exportDataFiles = {};
144
- // loop through the files in sequence, for loop ensures all files are
145
- // read before we go to the next step
146
- for (const file of files) {
147
- const fileWithPath = path_1.default.resolve(process.env.TMP_EXPORT_PATH, file);
148
- try {
149
- const data = yield dataExchangeUtil_1.default.readJson(fileWithPath);
150
- // if no data (empty object or array) don't do anything
151
- if (!data || Object.keys(data).length <= 0) {
152
- continue;
153
- }
154
- const match = file.match(/^[0-9]+\.exportDataFiles$/);
155
- const keyMatch = file.match(/^(.*)\.[0-9]+$/);
156
- if (match) {
157
- exportDataFiles = data;
158
- }
159
- else {
160
- if (keyMatch && keyMatch.length > 1) {
161
- const key = keyMatch[1];
162
- if (key) {
163
- // if array join the elements
164
- if (Array.isArray(data) && (!exportData[key] || Array.isArray(exportData[key]))) {
165
- if (exportData[key]) {
166
- exportData[key] = [...exportData[key], ...data];
167
- }
168
- else {
169
- exportData[key] = [...data];
170
- }
171
- }
172
- else if (Array.isArray(data) && !exportData[key] && !Array.isArray(exportData[key])) {
173
- console.warn(`Unexpected array and non array data for export key ${key}`);
174
- exportData[key] = Object.assign(Object.assign({}, exportData[key]), data);
135
+ const data = await dataExchangeUtil_1.default.readJson(fileWithPath);
136
+ // if no data (empty object or array) don't do anything
137
+ if (!data || Object.keys(data).length <= 0) {
138
+ continue;
139
+ }
140
+ const match = file.match(/^[0-9]+\.exportDataFiles$/);
141
+ const keyMatch = file.match(/^(.*)\.[0-9]+$/);
142
+ if (match) {
143
+ exportDataFiles = data;
144
+ }
145
+ else {
146
+ if (keyMatch && keyMatch.length > 1) {
147
+ const key = keyMatch[1];
148
+ if (key) {
149
+ // if array join the elements
150
+ if (Array.isArray(data) && (!exportData[key] || Array.isArray(exportData[key]))) {
151
+ if (exportData[key]) {
152
+ exportData[key] = [...exportData[key], ...data];
175
153
  }
176
154
  else {
177
- exportData[key] = Object.assign(Object.assign({}, exportData[key]), data);
155
+ exportData[key] = [...data];
178
156
  }
179
157
  }
180
- }
181
- else {
182
- console.warn(`Unexpected error - temporary export file ${fileWithPath} does not have timestamp in its name`);
158
+ else if (Array.isArray(data) && !exportData[key] && !Array.isArray(exportData[key])) {
159
+ console.warn(`Unexpected array and non array data for export key ${key}`);
160
+ exportData[key] = { ...exportData[key], ...data };
161
+ }
162
+ else {
163
+ exportData[key] = { ...exportData[key], ...data };
164
+ }
183
165
  }
184
166
  }
185
- }
186
- catch (err) {
187
- console.warn(`Could not read export data in tmp file ${fileWithPath}`);
188
- console.warn(err);
167
+ else {
168
+ console.warn(`Unexpected error - temporary export file ${fileWithPath} does not have timestamp in its name`);
169
+ }
189
170
  }
190
171
  }
191
- const keys = Object.keys(exportDataFiles);
192
- // use for loop to make sure all files are written before we remove the tmp folder
193
- for (const param of keys) {
194
- let fileWithPath = exportDataFiles[param];
195
- if (!fileWithPath) {
196
- console.warn(`Unexpected error - no file name for key ${param}`);
197
- continue;
198
- }
199
- // adjust relative file paths
200
- fileWithPath = dataExchangeUtil_1.default.getFileAbsPath(fileWithPath);
201
- const data = exportData[param];
202
- try {
203
- yield dataExchangeUtil_1.default.outputJson(fileWithPath, data, { spaces: 2 });
204
- }
205
- catch (err) {
206
- console.warn(`Could not write export data to file, make sure that ${fileWithPath} is valid and writable`);
207
- console.warn(err);
208
- }
172
+ catch (err) {
173
+ console.warn(`Could not read export data in tmp file ${fileWithPath}`);
174
+ console.warn(err);
209
175
  }
176
+ }
177
+ const keys = Object.keys(exportDataFiles);
178
+ // use for loop to make sure all files are written before we remove the tmp folder
179
+ for (const param of keys) {
180
+ let fileWithPath = exportDataFiles[param];
181
+ if (!fileWithPath) {
182
+ console.warn(`Unexpected error - no file name for key ${param}`);
183
+ continue;
184
+ }
185
+ // adjust relative file paths
186
+ fileWithPath = dataExchangeUtil_1.default.getFileAbsPath(fileWithPath);
187
+ const data = exportData[param];
210
188
  try {
211
- // remove tmp folder, ignore if this call fails
212
- yield fs_extra_1.default.remove(process.env.TMP_EXPORT_PATH);
189
+ await dataExchangeUtil_1.default.outputJson(fileWithPath, data, { spaces: 2 });
213
190
  }
214
191
  catch (err) {
215
- console.warn(`Could not remove temporary folder ${process.env.TMP_EXPORT_PATH}`);
192
+ console.warn(`Could not write export data to file, make sure that ${fileWithPath} is valid and writable`);
216
193
  console.warn(err);
217
194
  }
218
- });
195
+ }
196
+ try {
197
+ // remove tmp folder, ignore if this call fails
198
+ await fs_extra_1.default.remove(process.env.TMP_EXPORT_PATH);
199
+ }
200
+ catch (err) {
201
+ console.warn(`Could not remove temporary folder ${process.env.TMP_EXPORT_PATH}`);
202
+ console.warn(err);
203
+ }
219
204
  }
220
205
  ;
221
206
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dataExchange.js","sourceRoot":"","sources":["../../../src/scripts/dataExchange/dataExchange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataExchange.js","sourceRoot":"","sources":["../../../src/scripts/dataExchange/dataExchange.ts"],"names":[],"mappings":"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"}