@sasjs/cli 3.7.6 → 3.7.9
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.
- package/build/commands/compile/compile.js +5 -6
- package/build/commands/compile/internal/checkCompileStatus.js +3 -4
- package/build/commands/compile/internal/compileTestFile.d.ts +3 -2
- package/build/commands/compile/internal/compileTestFile.js +26 -13
- package/build/commands/compile/internal/getAllFolders.d.ts +6 -0
- package/build/commands/compile/internal/{getAllJobFolders.js → getAllFolders.js} +49 -23
- package/build/commands/compile/internal/identifySasFile.js +3 -4
- package/build/commands/compile/internal/spec/compileTestFile.spec.js +37 -0
- package/build/commands/compile/internal/spec/getAllFolders.spec.d.ts +1 -0
- package/build/commands/compile/internal/spec/getAllFolders.spec.js +184 -0
- package/build/commands/compile/spec/copyFilesToBuildFolder.spec.js +2 -4
- package/build/commands/deploy/deploy.js +27 -21
- package/build/commands/testing/test.js +3 -4
- package/build/utils/test.d.ts +2 -2
- package/build/utils/test.js +8 -5
- package/package.json +3 -3
- package/build/commands/compile/internal/getAllJobFolders.d.ts +0 -2
- package/build/commands/compile/internal/getAllServiceFolders.d.ts +0 -2
- package/build/commands/compile/internal/getAllServiceFolders.js +0 -91
|
@@ -77,8 +77,7 @@ var web_1 = require("../web/web");
|
|
|
77
77
|
var file_1 = require("../../utils/file");
|
|
78
78
|
var checkCompileStatus_1 = require("./internal/checkCompileStatus");
|
|
79
79
|
var compileModule = __importStar(require("./compile"));
|
|
80
|
-
var
|
|
81
|
-
var getAllServiceFolders_1 = require("./internal/getAllServiceFolders");
|
|
80
|
+
var getAllFolders_1 = require("./internal/getAllFolders");
|
|
82
81
|
var compileServiceFile_1 = require("./internal/compileServiceFile");
|
|
83
82
|
var compileJobFile_1 = require("./internal/compileJobFile");
|
|
84
83
|
var compileTestFile_1 = require("./internal/compileTestFile");
|
|
@@ -171,10 +170,10 @@ function copyFilesToBuildFolder(target) {
|
|
|
171
170
|
_c.label = 2;
|
|
172
171
|
case 2:
|
|
173
172
|
_c.trys.push([2, 7, , 8]);
|
|
174
|
-
return [4 /*yield*/, (0,
|
|
173
|
+
return [4 /*yield*/, (0, getAllFolders_1.getAllFolders)(target, getAllFolders_1.SasFileType.Service)];
|
|
175
174
|
case 3:
|
|
176
175
|
serviceFolders = _c.sent();
|
|
177
|
-
return [4 /*yield*/, (0,
|
|
176
|
+
return [4 /*yield*/, (0, getAllFolders_1.getAllFolders)(target, getAllFolders_1.SasFileType.Job)
|
|
178
177
|
// REFACTOR
|
|
179
178
|
];
|
|
180
179
|
case 4:
|
|
@@ -231,10 +230,10 @@ function compileJobsServicesTests(target) {
|
|
|
231
230
|
switch (_b.label) {
|
|
232
231
|
case 0:
|
|
233
232
|
_b.trys.push([0, 13, , 14]);
|
|
234
|
-
return [4 /*yield*/, (0,
|
|
233
|
+
return [4 /*yield*/, (0, getAllFolders_1.getAllFolders)(target, getAllFolders_1.SasFileType.Service)];
|
|
235
234
|
case 1:
|
|
236
235
|
serviceFolders = _b.sent();
|
|
237
|
-
return [4 /*yield*/, (0,
|
|
236
|
+
return [4 /*yield*/, (0, getAllFolders_1.getAllFolders)(target, getAllFolders_1.SasFileType.Job)];
|
|
238
237
|
case 2:
|
|
239
238
|
jobFolders = _b.sent();
|
|
240
239
|
return [4 /*yield*/, (0, config_1.getMacroFolders)(target)];
|
|
@@ -39,8 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
exports.checkCompileStatus = void 0;
|
|
40
40
|
var utils_1 = require("@sasjs/utils");
|
|
41
41
|
var compareFolders_1 = require("./compareFolders");
|
|
42
|
-
var
|
|
43
|
-
var getAllServiceFolders_1 = require("./getAllServiceFolders");
|
|
42
|
+
var getAllFolders_1 = require("./getAllFolders");
|
|
44
43
|
var getDestinationPath_1 = require("./getDestinationPath");
|
|
45
44
|
function checkCompileStatus(target, exceptions) {
|
|
46
45
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -87,7 +86,7 @@ var checkServiceFolders = function (target, exceptions) { return __awaiter(void
|
|
|
87
86
|
var serviceFolders, areServiceFoldersMatching, reasons;
|
|
88
87
|
return __generator(this, function (_a) {
|
|
89
88
|
switch (_a.label) {
|
|
90
|
-
case 0: return [4 /*yield*/, (0,
|
|
89
|
+
case 0: return [4 /*yield*/, (0, getAllFolders_1.getAllFolders)(target, getAllFolders_1.SasFileType.Service)];
|
|
91
90
|
case 1:
|
|
92
91
|
serviceFolders = _a.sent();
|
|
93
92
|
areServiceFoldersMatching = true;
|
|
@@ -126,7 +125,7 @@ var checkJobFolders = function (target, exceptions) { return __awaiter(void 0, v
|
|
|
126
125
|
var jobFolders, areJobFoldersMatching, reasons;
|
|
127
126
|
return __generator(this, function (_a) {
|
|
128
127
|
switch (_a.label) {
|
|
129
|
-
case 0: return [4 /*yield*/, (0,
|
|
128
|
+
case 0: return [4 /*yield*/, (0, getAllFolders_1.getAllFolders)(target, getAllFolders_1.SasFileType.Job)];
|
|
130
129
|
case 1:
|
|
131
130
|
jobFolders = _a.sent();
|
|
132
131
|
areJobFoldersMatching = true;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TestFlow } from '../../../types';
|
|
2
|
+
import { Target, Configuration } from '@sasjs/utils';
|
|
2
3
|
export declare function compileTestFile(target: Target, filePath: string, testVar?: string, saveToRoot?: boolean, removeOriginalFile?: boolean): Promise<void>;
|
|
3
4
|
export declare function moveTestFile(filePath: string): Promise<void>;
|
|
4
5
|
export declare function copyTestMacroFiles(folderAbsolutePath: string): Promise<void>;
|
|
5
|
-
export declare const compileTestFlow: (target: Target) => Promise<
|
|
6
|
+
export declare const compileTestFlow: (target: Target, config?: Configuration | undefined) => Promise<TestFlow | undefined>;
|
|
@@ -200,22 +200,35 @@ function copyTestMacroFiles(folderAbsolutePath) {
|
|
|
200
200
|
});
|
|
201
201
|
}
|
|
202
202
|
exports.copyTestMacroFiles = copyTestMacroFiles;
|
|
203
|
-
var compileTestFlow = function (target) { return __awaiter(void 0, void 0, void 0, function () {
|
|
204
|
-
var _a, buildDestinationFolder, buildDestinationTestFolder, testFiles, testFlow, testSetUp, testTearDown, testSetUpFileName_1, testTearDownFileName_1;
|
|
205
|
-
var
|
|
206
|
-
return __generator(this, function (
|
|
207
|
-
switch (
|
|
203
|
+
var compileTestFlow = function (target, config) { return __awaiter(void 0, void 0, void 0, function () {
|
|
204
|
+
var _a, buildDestinationFolder, buildDestinationTestFolder, testFiles, _b, testFlow, testSetUp, testTearDown, testSetUpFileName_1, testTearDownFileName_1;
|
|
205
|
+
var _c, _d, _e, _f;
|
|
206
|
+
return __generator(this, function (_g) {
|
|
207
|
+
switch (_g.label) {
|
|
208
208
|
case 0:
|
|
209
|
+
if (target.testConfig &&
|
|
210
|
+
Object.keys(target.testConfig).includes('testFolders')) {
|
|
211
|
+
process.logger.warn("'testFolders' is not supported 'testConfig' entry, please use 'serviceFolders' entry in 'serviceConfig' or 'jobFolders' entry in 'jobConfig'.");
|
|
212
|
+
}
|
|
209
213
|
_a = process.sasjsConstants, buildDestinationFolder = _a.buildDestinationFolder, buildDestinationTestFolder = _a.buildDestinationTestFolder;
|
|
210
214
|
return [4 /*yield*/, (0, utils_1.folderExists)(buildDestinationTestFolder)];
|
|
211
215
|
case 1:
|
|
212
|
-
if (!
|
|
216
|
+
if (!_g.sent()) return [3 /*break*/, 7];
|
|
213
217
|
return [4 /*yield*/, (0, utils_1.listFilesAndSubFoldersInFolder)(buildDestinationTestFolder)];
|
|
214
218
|
case 2:
|
|
215
|
-
testFiles = (
|
|
219
|
+
testFiles = (_g.sent()).map(function (file) { return path_1.default.join('tests', file); });
|
|
220
|
+
_b = config;
|
|
221
|
+
if (_b) return [3 /*break*/, 5];
|
|
222
|
+
return [4 /*yield*/, (0, config_1.getLocalOrGlobalConfig)()];
|
|
223
|
+
case 3: return [4 /*yield*/, (_g.sent()).configuration];
|
|
224
|
+
case 4:
|
|
225
|
+
_b = (_g.sent());
|
|
226
|
+
_g.label = 5;
|
|
227
|
+
case 5:
|
|
228
|
+
config = _b;
|
|
216
229
|
testFlow = { tests: [] };
|
|
217
|
-
testSetUp = (
|
|
218
|
-
testTearDown = (
|
|
230
|
+
testSetUp = ((_c = target.testConfig) === null || _c === void 0 ? void 0 : _c.testSetUp) || ((_d = config.testConfig) === null || _d === void 0 ? void 0 : _d.testSetUp);
|
|
231
|
+
testTearDown = ((_e = target.testConfig) === null || _e === void 0 ? void 0 : _e.testTearDown) || ((_f = config.testConfig) === null || _f === void 0 ? void 0 : _f.testTearDown);
|
|
219
232
|
if (testFiles.length) {
|
|
220
233
|
if (testSetUp) {
|
|
221
234
|
testSetUpFileName_1 = getFileName(testSetUp);
|
|
@@ -236,10 +249,10 @@ var compileTestFlow = function (target) { return __awaiter(void 0, void 0, void
|
|
|
236
249
|
return file.split(path_1.default.sep).join('/');
|
|
237
250
|
});
|
|
238
251
|
return [4 /*yield*/, printTestCoverage(testFlow, buildDestinationFolder, target)];
|
|
239
|
-
case
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
case
|
|
252
|
+
case 6:
|
|
253
|
+
_g.sent();
|
|
254
|
+
return [2 /*return*/, Promise.resolve(testFlow)];
|
|
255
|
+
case 7: return [2 /*return*/];
|
|
243
256
|
}
|
|
244
257
|
});
|
|
245
258
|
}); };
|
|
@@ -61,29 +61,55 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
61
61
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
62
62
|
};
|
|
63
63
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
64
|
-
exports.
|
|
64
|
+
exports.getAllFolders = exports.SasFileType = void 0;
|
|
65
65
|
var utils_1 = require("@sasjs/utils");
|
|
66
66
|
var config_1 = require("../../../utils/config");
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
67
|
+
var SasFileType;
|
|
68
|
+
(function (SasFileType) {
|
|
69
|
+
SasFileType["Service"] = "service";
|
|
70
|
+
SasFileType["Job"] = "job";
|
|
71
|
+
})(SasFileType = exports.SasFileType || (exports.SasFileType = {}));
|
|
72
|
+
var getAllFolders = function (target, type, rootConfig) { return __awaiter(void 0, void 0, void 0, function () {
|
|
73
|
+
var configuration, _a, allFolders, config, folders, addFolders, buildSourceFolder;
|
|
74
|
+
return __generator(this, function (_b) {
|
|
75
|
+
switch (_b.label) {
|
|
76
|
+
case 0:
|
|
77
|
+
_a = rootConfig;
|
|
78
|
+
if (_a) return [3 /*break*/, 3];
|
|
79
|
+
return [4 /*yield*/, (0, config_1.getLocalOrGlobalConfig)()];
|
|
80
|
+
case 1: return [4 /*yield*/, (_b.sent()).configuration];
|
|
81
|
+
case 2:
|
|
82
|
+
_a = (_b.sent());
|
|
83
|
+
_b.label = 3;
|
|
84
|
+
case 3:
|
|
85
|
+
configuration = _a;
|
|
86
|
+
addFolders = function (folders) {
|
|
87
|
+
allFolders = __spreadArray(__spreadArray([], __read((allFolders || [])), false), __read((folders || [])), false);
|
|
88
|
+
};
|
|
89
|
+
if (type === SasFileType.Service) {
|
|
90
|
+
config = configuration.serviceConfig;
|
|
91
|
+
folders = config === null || config === void 0 ? void 0 : config.serviceFolders;
|
|
92
|
+
addFolders(folders);
|
|
93
|
+
config = target.serviceConfig;
|
|
94
|
+
folders = config === null || config === void 0 ? void 0 : config.serviceFolders;
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
config = configuration.jobConfig;
|
|
98
|
+
folders = config === null || config === void 0 ? void 0 : config.jobFolders;
|
|
99
|
+
addFolders(folders);
|
|
100
|
+
config = target.jobConfig;
|
|
101
|
+
folders = config === null || config === void 0 ? void 0 : config.jobFolders;
|
|
102
|
+
}
|
|
103
|
+
addFolders(folders);
|
|
104
|
+
if (!allFolders)
|
|
105
|
+
return [2 /*return*/, []];
|
|
106
|
+
allFolders = allFolders.filter(function (p) { return !!p; });
|
|
107
|
+
buildSourceFolder = process.sasjsConstants.buildSourceFolder;
|
|
108
|
+
allFolders = allFolders.map(function (sasFile) {
|
|
109
|
+
return (0, utils_1.getAbsolutePath)(sasFile, buildSourceFolder);
|
|
110
|
+
});
|
|
111
|
+
return [2 /*return*/, __spreadArray([], __read(new Set(allFolders)), false)];
|
|
112
|
+
}
|
|
87
113
|
});
|
|
88
|
-
}
|
|
89
|
-
exports.
|
|
114
|
+
}); };
|
|
115
|
+
exports.getAllFolders = getAllFolders;
|
|
@@ -37,19 +37,18 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.identifySasFile = void 0;
|
|
40
|
-
var
|
|
41
|
-
var getAllServiceFolders_1 = require("./getAllServiceFolders");
|
|
40
|
+
var getAllFolders_1 = require("./getAllFolders");
|
|
42
41
|
var identifySasFile = function (target, sourcePath) { return __awaiter(void 0, void 0, void 0, function () {
|
|
43
42
|
var serviceFolders, isService, jobFolders, isJob;
|
|
44
43
|
return __generator(this, function (_a) {
|
|
45
44
|
switch (_a.label) {
|
|
46
|
-
case 0: return [4 /*yield*/, (0,
|
|
45
|
+
case 0: return [4 /*yield*/, (0, getAllFolders_1.getAllFolders)(target, getAllFolders_1.SasFileType.Service)];
|
|
47
46
|
case 1:
|
|
48
47
|
serviceFolders = _a.sent();
|
|
49
48
|
isService = serviceFolders.find(function (folder) { return sourcePath.includes(folder); });
|
|
50
49
|
if (isService)
|
|
51
50
|
return [2 /*return*/, 'service'];
|
|
52
|
-
return [4 /*yield*/, (0,
|
|
51
|
+
return [4 /*yield*/, (0, getAllFolders_1.getAllFolders)(target, getAllFolders_1.SasFileType.Job)];
|
|
53
52
|
case 2:
|
|
54
53
|
jobFolders = _a.sent();
|
|
55
54
|
isJob = jobFolders.find(function (folder) { return sourcePath.includes(folder); });
|
|
@@ -330,6 +330,43 @@ describe('compileTestFile', function () {
|
|
|
330
330
|
}
|
|
331
331
|
});
|
|
332
332
|
}); });
|
|
333
|
+
it('should log a warning is testFolders was used in root or target configuration', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
334
|
+
var testTarget, testConfig, expectedWarn;
|
|
335
|
+
return __generator(this, function (_a) {
|
|
336
|
+
testTarget = {
|
|
337
|
+
name: 'viya',
|
|
338
|
+
serverUrl: '',
|
|
339
|
+
serverType: utils_1.ServerType.SasViya,
|
|
340
|
+
appLoc: '/Public/sasjs/jobs',
|
|
341
|
+
macroFolders: [],
|
|
342
|
+
programFolders: [],
|
|
343
|
+
binaryFolders: [],
|
|
344
|
+
testConfig: {
|
|
345
|
+
testSetUp: '',
|
|
346
|
+
testTearDown: '',
|
|
347
|
+
macroVars: {},
|
|
348
|
+
initProgram: '',
|
|
349
|
+
termProgram: '',
|
|
350
|
+
testFolders: ['tests']
|
|
351
|
+
}
|
|
352
|
+
};
|
|
353
|
+
testConfig = {
|
|
354
|
+
macroFolders: ['macros'],
|
|
355
|
+
testConfig: {
|
|
356
|
+
testFolders: ['tests']
|
|
357
|
+
},
|
|
358
|
+
defaultTarget: 'viya',
|
|
359
|
+
targets: [testTarget]
|
|
360
|
+
};
|
|
361
|
+
expectedWarn = "'testFolders' is not supported 'testConfig' entry, please use 'serviceFolders' entry in 'serviceConfig' or 'jobFolders' entry in 'jobConfig'.";
|
|
362
|
+
jest.spyOn(process.logger, 'warn');
|
|
363
|
+
(0, compileTestFile_1.compileTestFlow)(testTarget);
|
|
364
|
+
expect(process.logger.warn).toHaveBeenCalledWith(expectedWarn);
|
|
365
|
+
(0, compileTestFile_1.compileTestFlow)(testTarget, testConfig);
|
|
366
|
+
expect(process.logger.warn).toHaveBeenCalledWith(expectedWarn);
|
|
367
|
+
return [2 /*return*/];
|
|
368
|
+
});
|
|
369
|
+
}); });
|
|
333
370
|
});
|
|
334
371
|
});
|
|
335
372
|
describe('isTestFile', function () {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
26
|
+
if (mod && mod.__esModule) return mod;
|
|
27
|
+
var result = {};
|
|
28
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
29
|
+
__setModuleDefault(result, mod);
|
|
30
|
+
return result;
|
|
31
|
+
};
|
|
32
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
33
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
34
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
35
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
36
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
37
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
38
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
42
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
43
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
44
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
45
|
+
function step(op) {
|
|
46
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
47
|
+
while (_) try {
|
|
48
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
49
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
50
|
+
switch (op[0]) {
|
|
51
|
+
case 0: case 1: t = op; break;
|
|
52
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
53
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
54
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
55
|
+
default:
|
|
56
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
57
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
58
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
59
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
60
|
+
if (t[2]) _.ops.pop();
|
|
61
|
+
_.trys.pop(); continue;
|
|
62
|
+
}
|
|
63
|
+
op = body.call(thisArg, _);
|
|
64
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
65
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
69
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
70
|
+
if (!m) return o;
|
|
71
|
+
var i = m.call(o), r, ar = [], e;
|
|
72
|
+
try {
|
|
73
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
74
|
+
}
|
|
75
|
+
catch (error) { e = { error: error }; }
|
|
76
|
+
finally {
|
|
77
|
+
try {
|
|
78
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
79
|
+
}
|
|
80
|
+
finally { if (e) throw e.error; }
|
|
81
|
+
}
|
|
82
|
+
return ar;
|
|
83
|
+
};
|
|
84
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
85
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
86
|
+
if (ar || !(i in from)) {
|
|
87
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
88
|
+
ar[i] = from[i];
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
92
|
+
};
|
|
93
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
94
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
95
|
+
};
|
|
96
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
97
|
+
var getAllFolders_1 = require("../getAllFolders");
|
|
98
|
+
var utils_1 = require("@sasjs/utils");
|
|
99
|
+
var test_1 = require("../../../../utils/test");
|
|
100
|
+
var configUtils = __importStar(require("../../../../utils/config"));
|
|
101
|
+
var utils_2 = require("../../../../utils");
|
|
102
|
+
var path_1 = __importDefault(require("path"));
|
|
103
|
+
describe('getAllFolders', function () {
|
|
104
|
+
var config;
|
|
105
|
+
var target;
|
|
106
|
+
beforeAll(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
107
|
+
var _a, _b, temp;
|
|
108
|
+
var _c, _d;
|
|
109
|
+
return __generator(this, function (_e) {
|
|
110
|
+
switch (_e.label) {
|
|
111
|
+
case 0: return [4 /*yield*/, (0, utils_2.setConstants)()];
|
|
112
|
+
case 1:
|
|
113
|
+
_e.sent();
|
|
114
|
+
_b = (_a = JSON).parse;
|
|
115
|
+
return [4 /*yield*/, (0, utils_1.readFile)(path_1.default.join(__dirname, '..', '..', '..', '..', 'config.json'))];
|
|
116
|
+
case 2:
|
|
117
|
+
(config = _b.apply(_a, [_e.sent()]).config);
|
|
118
|
+
config.jobConfig = {
|
|
119
|
+
jobFolders: ['sasjs/targets/viya/jobs'],
|
|
120
|
+
initProgram: '',
|
|
121
|
+
termProgram: '',
|
|
122
|
+
macroVars: {}
|
|
123
|
+
};
|
|
124
|
+
temp = (0, test_1.generateTestTarget)('testTarget', '/Public/app', {
|
|
125
|
+
serviceFolders: [
|
|
126
|
+
path_1.default.join('sasjs', 'targetServices'),
|
|
127
|
+
(_c = config.serviceConfig) === null || _c === void 0 ? void 0 : _c.serviceFolders[0] // duplicate
|
|
128
|
+
],
|
|
129
|
+
initProgram: '',
|
|
130
|
+
termProgram: '',
|
|
131
|
+
macroVars: {}
|
|
132
|
+
}, utils_1.ServerType.SasViya, {
|
|
133
|
+
jobFolders: [
|
|
134
|
+
path_1.default.join('sasjs', 'targetJobs'),
|
|
135
|
+
(_d = config.jobConfig) === null || _d === void 0 ? void 0 : _d.jobFolders[0] // duplicate
|
|
136
|
+
],
|
|
137
|
+
initProgram: '',
|
|
138
|
+
termProgram: '',
|
|
139
|
+
macroVars: {}
|
|
140
|
+
});
|
|
141
|
+
target = new utils_1.Target(__assign({}, temp.toJson()));
|
|
142
|
+
return [2 /*return*/];
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
}); });
|
|
146
|
+
beforeAll(function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
147
|
+
return [2 /*return*/];
|
|
148
|
+
}); }); });
|
|
149
|
+
it('should get all service and job folders', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
150
|
+
var buildSourceFolder;
|
|
151
|
+
var _a, _b, _c, _d;
|
|
152
|
+
return __generator(this, function (_e) {
|
|
153
|
+
switch (_e.label) {
|
|
154
|
+
case 0:
|
|
155
|
+
jest
|
|
156
|
+
.spyOn(configUtils, 'getLocalOrGlobalConfig')
|
|
157
|
+
.mockImplementation(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
158
|
+
return __generator(this, function (_a) {
|
|
159
|
+
return [2 /*return*/, Promise.resolve({
|
|
160
|
+
configuration: config,
|
|
161
|
+
isLocal: true
|
|
162
|
+
})];
|
|
163
|
+
});
|
|
164
|
+
}); });
|
|
165
|
+
buildSourceFolder = process.sasjsConstants.buildSourceFolder;
|
|
166
|
+
return [4 /*yield*/, expect((0, getAllFolders_1.getAllFolders)(target, getAllFolders_1.SasFileType.Service, config)).resolves.toEqual(__spreadArray([], __read(new Set(Array.prototype.concat((_a = config.serviceConfig) === null || _a === void 0 ? void 0 : _a.serviceFolders.map(function (folder) {
|
|
167
|
+
return path_1.default.join(buildSourceFolder, folder);
|
|
168
|
+
}), (_b = target.serviceConfig) === null || _b === void 0 ? void 0 : _b.serviceFolders.map(function (folder) {
|
|
169
|
+
return path_1.default.join(buildSourceFolder, folder);
|
|
170
|
+
})))), false))];
|
|
171
|
+
case 1:
|
|
172
|
+
_e.sent();
|
|
173
|
+
return [4 /*yield*/, expect((0, getAllFolders_1.getAllFolders)(target, getAllFolders_1.SasFileType.Job, config)).resolves.toEqual(__spreadArray([], __read(new Set(Array.prototype.concat((_c = config.jobConfig) === null || _c === void 0 ? void 0 : _c.jobFolders.map(function (folder) {
|
|
174
|
+
return path_1.default.join(buildSourceFolder, folder);
|
|
175
|
+
}), (_d = target.jobConfig) === null || _d === void 0 ? void 0 : _d.jobFolders.map(function (folder) {
|
|
176
|
+
return path_1.default.join(buildSourceFolder, folder);
|
|
177
|
+
})))), false))];
|
|
178
|
+
case 2:
|
|
179
|
+
_e.sent();
|
|
180
|
+
return [2 /*return*/];
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
}); });
|
|
184
|
+
});
|
|
@@ -58,7 +58,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
58
58
|
var config_1 = require("../../../utils/config");
|
|
59
59
|
var test_1 = require("../../../utils/test");
|
|
60
60
|
var utils_1 = require("@sasjs/utils");
|
|
61
|
-
var
|
|
61
|
+
var getAllFoldersModule = __importStar(require("../internal/getAllFolders"));
|
|
62
62
|
var compileModule = __importStar(require("../compile"));
|
|
63
63
|
describe('copyFilesToBuildFolder', function () {
|
|
64
64
|
var appName;
|
|
@@ -106,9 +106,7 @@ describe('copyFilesToBuildFolder', function () {
|
|
|
106
106
|
return __generator(this, function (_a) {
|
|
107
107
|
switch (_a.label) {
|
|
108
108
|
case 0:
|
|
109
|
-
jest
|
|
110
|
-
.spyOn(getAllServiceFoldersModule, 'getAllServiceFolders')
|
|
111
|
-
.mockImplementation(function () {
|
|
109
|
+
jest.spyOn(getAllFoldersModule, 'getAllFolders').mockImplementation(function () {
|
|
112
110
|
throw new Error('Test Error');
|
|
113
111
|
});
|
|
114
112
|
return [4 /*yield*/, (0, config_1.findTargetInConfiguration)('viya')];
|
|
@@ -259,11 +259,11 @@ function deployToSasViya(deployScriptName, target, isLocal, linesToExecute, logF
|
|
|
259
259
|
* for printing web app url on console.
|
|
260
260
|
*/
|
|
261
261
|
function deployToSas9(deployScriptName, target, linesToExecute, logFolder, streamConfig) {
|
|
262
|
-
var _a, _b, _c, _d;
|
|
262
|
+
var _a, _b, _c, _d, _e;
|
|
263
263
|
return __awaiter(this, void 0, void 0, function () {
|
|
264
|
-
var username, password, sas9CredentialsError, sasjs, executionResult, appLoc, webAppStreamUrl;
|
|
265
|
-
return __generator(this, function (
|
|
266
|
-
switch (
|
|
264
|
+
var username, password, sas9CredentialsError, sasjs, completedWithError, executionResult, logContent, logFilePath, appLoc, webAppStreamUrl;
|
|
265
|
+
return __generator(this, function (_f) {
|
|
266
|
+
switch (_f.label) {
|
|
267
267
|
case 0:
|
|
268
268
|
if (target.authConfigSas9) {
|
|
269
269
|
username = target.authConfigSas9.userName;
|
|
@@ -284,6 +284,7 @@ function deployToSas9(deployScriptName, target, linesToExecute, logFolder, strea
|
|
|
284
284
|
appLoc: target.appLoc,
|
|
285
285
|
serverType: target.serverType
|
|
286
286
|
});
|
|
287
|
+
completedWithError = false;
|
|
287
288
|
return [4 /*yield*/, sasjs
|
|
288
289
|
.executeScriptSAS9(linesToExecute, username, password)
|
|
289
290
|
.catch(function (err) {
|
|
@@ -292,30 +293,35 @@ function deployToSas9(deployScriptName, target, linesToExecute, logFolder, strea
|
|
|
292
293
|
if (err && err.errorCode === 404) {
|
|
293
294
|
(0, utils_1.displaySasjsRunnerError)(username);
|
|
294
295
|
}
|
|
296
|
+
completedWithError = true;
|
|
297
|
+
return err;
|
|
295
298
|
})];
|
|
296
299
|
case 1:
|
|
297
|
-
executionResult =
|
|
298
|
-
if (!executionResult)
|
|
299
|
-
|
|
300
|
-
|
|
300
|
+
executionResult = _f.sent();
|
|
301
|
+
if (!executionResult) {
|
|
302
|
+
return [2 /*return*/, (_a = process.logger) === null || _a === void 0 ? void 0 : _a.error('Error getting execution log')];
|
|
303
|
+
}
|
|
304
|
+
if (!logFolder) {
|
|
305
|
+
return [2 /*return*/, (_b = process.logger) === null || _b === void 0 ? void 0 : _b.error('Unable to create log file.')];
|
|
306
|
+
}
|
|
307
|
+
logContent = completedWithError
|
|
308
|
+
? executionResult.result
|
|
309
|
+
: executionResult;
|
|
310
|
+
logFilePath = path_1.default.join(logFolder, "".concat(deployScriptName.replace('.sas', ''), ".log"));
|
|
311
|
+
return [4 /*yield*/, (0, utils_2.createFile)(logFilePath, logContent !== null && logContent !== void 0 ? logContent : '')];
|
|
301
312
|
case 2:
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
case 4:
|
|
313
|
+
_f.sent();
|
|
314
|
+
if (completedWithError) {
|
|
315
|
+
(_c = process.logger) === null || _c === void 0 ? void 0 : _c.error("Deployment failed with errors! Log is available at ".concat(logFilePath));
|
|
316
|
+
throw new Error("Deployment failed.");
|
|
317
|
+
}
|
|
318
|
+
(_d = process.logger) === null || _d === void 0 ? void 0 : _d.success("Deployment completed! Log is available at ".concat(logFilePath));
|
|
309
319
|
if (streamConfig === null || streamConfig === void 0 ? void 0 : streamConfig.streamWeb) {
|
|
310
320
|
appLoc = target.appLoc.replace(/\ /g, '%20');
|
|
311
321
|
webAppStreamUrl = "".concat(target.serverUrl, "/SASStoredProcess/?_PROGRAM=").concat(appLoc, "/services/").concat(streamConfig.streamServiceName);
|
|
312
|
-
(
|
|
322
|
+
(_e = process.logger) === null || _e === void 0 ? void 0 : _e.info("Web app is available at ".concat(webAppStreamUrl));
|
|
313
323
|
}
|
|
314
|
-
return [
|
|
315
|
-
case 5:
|
|
316
|
-
(_d = process.logger) === null || _d === void 0 ? void 0 : _d.error('Error getting execution log');
|
|
317
|
-
_e.label = 6;
|
|
318
|
-
case 6: return [2 /*return*/];
|
|
324
|
+
return [2 /*return*/];
|
|
319
325
|
}
|
|
320
326
|
});
|
|
321
327
|
});
|
|
@@ -225,13 +225,14 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath) {
|
|
|
225
225
|
printTestUrl = function () { return process.logger.info("Test URL: ".concat(testUrl)); };
|
|
226
226
|
printTestUrl();
|
|
227
227
|
handleRes = function (res) { return __awaiter(_this, void 0, void 0, function () {
|
|
228
|
-
var lineBreak, existingTestTarget, existingTestTarget;
|
|
228
|
+
var lineBreak, test_results, existingTestTarget, existingTestTarget;
|
|
229
229
|
var _a, _b;
|
|
230
230
|
return __generator(this, function (_c) {
|
|
231
231
|
switch (_c.label) {
|
|
232
232
|
case 0:
|
|
233
233
|
lineBreak = true;
|
|
234
|
-
|
|
234
|
+
test_results = (_a = res.result) === null || _a === void 0 ? void 0 : _a.test_results;
|
|
235
|
+
if (!test_results) {
|
|
235
236
|
(0, displayResult_1.displayError)({}, "Job did not return a response, to debug click ".concat(testUrl));
|
|
236
237
|
printCodeExample();
|
|
237
238
|
lineBreak = false;
|
|
@@ -258,8 +259,6 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath) {
|
|
|
258
259
|
});
|
|
259
260
|
}
|
|
260
261
|
}
|
|
261
|
-
if (!((_a = res.result) === null || _a === void 0 ? void 0 : _a.test_results))
|
|
262
|
-
lineBreak = false;
|
|
263
262
|
if (!res.log) return [3 /*break*/, 2];
|
|
264
263
|
return [4 /*yield*/, (0, saveOutput_1.saveLog)(outDirectory, test, res.log, lineBreak)];
|
|
265
264
|
case 1:
|
package/build/utils/test.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/// <reference types="jest" />
|
|
2
2
|
import { ServerType, Target, TargetJson, Configuration } from '@sasjs/utils/types';
|
|
3
3
|
import { Folder } from '../types';
|
|
4
|
-
import { ServiceConfig } from '@sasjs/utils/types/config';
|
|
4
|
+
import { ServiceConfig, JobConfig } from '@sasjs/utils/types/config';
|
|
5
5
|
export declare const createTestApp: (parentFolder: string, appName: string) => Promise<void>;
|
|
6
6
|
export declare const createTestJobsApp: (parentFolder: string, appName: string) => Promise<void>;
|
|
7
7
|
export declare const createTestMinimalApp: (parentFolder: string, appName: string) => Promise<void>;
|
|
8
8
|
export declare const removeTestApp: (parentFolder: string, appName: string) => Promise<void>;
|
|
9
9
|
export declare const removeTestServerFolder: (folderPath: string, target: Target) => Promise<void>;
|
|
10
|
-
export declare const generateTestTarget: (targetName: string, appLoc: string, serviceConfig?: ServiceConfig, serverType?: ServerType) => Target;
|
|
10
|
+
export declare const generateTestTarget: (targetName: string, appLoc: string, serviceConfig?: ServiceConfig, serverType?: ServerType, jobConfig?: JobConfig) => Target;
|
|
11
11
|
export declare const createTestGlobalTarget: (targetName: string, appLoc: string, serviceConfig?: ServiceConfig, serverType?: ServerType) => Promise<Target>;
|
|
12
12
|
export declare const verifyStep: (step?: 'db' | 'compile' | 'build', buildFileName?: string, customFiles?: 'custom' | 'no') => Promise<void>;
|
|
13
13
|
export declare const mockProcessExit: () => jest.SpyInstance<never, [code?: number | undefined]>;
|
package/build/utils/test.js
CHANGED
|
@@ -160,7 +160,7 @@ var removeTestServerFolder = function (folderPath, target) { return __awaiter(vo
|
|
|
160
160
|
});
|
|
161
161
|
}); };
|
|
162
162
|
exports.removeTestServerFolder = removeTestServerFolder;
|
|
163
|
-
var generateTestTarget = function (targetName, appLoc, serviceConfig, serverType) {
|
|
163
|
+
var generateTestTarget = function (targetName, appLoc, serviceConfig, serverType, jobConfig) {
|
|
164
164
|
if (serviceConfig === void 0) { serviceConfig = {
|
|
165
165
|
serviceFolders: [path_1.default.join('sasjs', 'services')],
|
|
166
166
|
initProgram: '',
|
|
@@ -168,6 +168,12 @@ var generateTestTarget = function (targetName, appLoc, serviceConfig, serverType
|
|
|
168
168
|
macroVars: {}
|
|
169
169
|
}; }
|
|
170
170
|
if (serverType === void 0) { serverType = types_1.ServerType.SasViya; }
|
|
171
|
+
if (jobConfig === void 0) { jobConfig = {
|
|
172
|
+
jobFolders: [],
|
|
173
|
+
initProgram: '',
|
|
174
|
+
termProgram: '',
|
|
175
|
+
macroVars: {}
|
|
176
|
+
}; }
|
|
171
177
|
dotenv_1.default.config();
|
|
172
178
|
var target = new types_1.Target({
|
|
173
179
|
name: targetName,
|
|
@@ -183,12 +189,9 @@ var generateTestTarget = function (targetName, appLoc, serviceConfig, serverType
|
|
|
183
189
|
access_token: process.env.ACCESS_TOKEN,
|
|
184
190
|
refresh_token: process.env.REFRESH_TOKEN
|
|
185
191
|
},
|
|
186
|
-
jobConfig:
|
|
187
|
-
jobFolders: []
|
|
188
|
-
},
|
|
192
|
+
jobConfig: jobConfig,
|
|
189
193
|
serviceConfig: serviceConfig,
|
|
190
194
|
testConfig: {
|
|
191
|
-
testFolders: ['tests'],
|
|
192
195
|
initProgram: path_1.default.join('tests', 'testinit.sas'),
|
|
193
196
|
termProgram: path_1.default.join('tests', 'testterm.sas'),
|
|
194
197
|
macroVars: {
|
package/package.json
CHANGED
|
@@ -47,8 +47,8 @@
|
|
|
47
47
|
"access": "public"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@sasjs/adapter": "
|
|
51
|
-
"@sasjs/core": "4.9.
|
|
50
|
+
"@sasjs/adapter": "3.7.6",
|
|
51
|
+
"@sasjs/core": "4.9.3",
|
|
52
52
|
"@sasjs/lint": "1.11.2",
|
|
53
53
|
"@sasjs/utils": "2.36.0",
|
|
54
54
|
"chalk": "4.1.2",
|
|
@@ -94,5 +94,5 @@
|
|
|
94
94
|
"typescript": "4.5.4",
|
|
95
95
|
"util": "0.12.4"
|
|
96
96
|
},
|
|
97
|
-
"version": "3.7.
|
|
97
|
+
"version": "3.7.9"
|
|
98
98
|
}
|
|
@@ -1,91 +0,0 @@
|
|
|
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
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
39
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
40
|
-
if (!m) return o;
|
|
41
|
-
var i = m.call(o), r, ar = [], e;
|
|
42
|
-
try {
|
|
43
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
44
|
-
}
|
|
45
|
-
catch (error) { e = { error: error }; }
|
|
46
|
-
finally {
|
|
47
|
-
try {
|
|
48
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
49
|
-
}
|
|
50
|
-
finally { if (e) throw e.error; }
|
|
51
|
-
}
|
|
52
|
-
return ar;
|
|
53
|
-
};
|
|
54
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
55
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
56
|
-
if (ar || !(i in from)) {
|
|
57
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
58
|
-
ar[i] = from[i];
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
62
|
-
};
|
|
63
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
64
|
-
exports.getAllServiceFolders = void 0;
|
|
65
|
-
var utils_1 = require("@sasjs/utils");
|
|
66
|
-
var config_1 = require("../../../utils/config");
|
|
67
|
-
function getAllServiceFolders(target) {
|
|
68
|
-
var _a, _b;
|
|
69
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
70
|
-
var configuration, allServices, buildSourceFolder;
|
|
71
|
-
return __generator(this, function (_c) {
|
|
72
|
-
switch (_c.label) {
|
|
73
|
-
case 0: return [4 /*yield*/, (0, config_1.getLocalOrGlobalConfig)()];
|
|
74
|
-
case 1:
|
|
75
|
-
configuration = (_c.sent()).configuration;
|
|
76
|
-
allServices = [];
|
|
77
|
-
if ((_a = configuration === null || configuration === void 0 ? void 0 : configuration.serviceConfig) === null || _a === void 0 ? void 0 : _a.serviceFolders)
|
|
78
|
-
allServices = __spreadArray([], __read(configuration.serviceConfig.serviceFolders), false);
|
|
79
|
-
if ((_b = target === null || target === void 0 ? void 0 : target.serviceConfig) === null || _b === void 0 ? void 0 : _b.serviceFolders)
|
|
80
|
-
allServices = __spreadArray(__spreadArray([], __read(allServices), false), __read(target.serviceConfig.serviceFolders), false);
|
|
81
|
-
allServices = allServices.filter(function (p) { return !!p; });
|
|
82
|
-
buildSourceFolder = process.sasjsConstants.buildSourceFolder;
|
|
83
|
-
allServices = allServices.map(function (service) {
|
|
84
|
-
return (0, utils_1.getAbsolutePath)(service, buildSourceFolder);
|
|
85
|
-
});
|
|
86
|
-
return [2 /*return*/, __spreadArray([], __read(new Set(allServices)), false)];
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
exports.getAllServiceFolders = getAllServiceFolders;
|