1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const path = require("path");
|
4 | const error_models_1 = require("../error-models");
|
5 | const utils_1 = require("../utils");
|
6 | function validateOutputPath(workspaceRoot, projectConfig) {
|
7 | if (!projectConfig.outputPath) {
|
8 | throw new error_models_1.InvalidConfigError(`The 'projects[${projectConfig.name || projectConfig._index}].outputPath' is required.`);
|
9 | }
|
10 | if (path.isAbsolute(projectConfig.outputPath)) {
|
11 | throw new error_models_1.InvalidConfigError(`The 'projects[${projectConfig.name || projectConfig._index}].outputPath' must be relative path.`);
|
12 | }
|
13 | const projectRoot = path.resolve(workspaceRoot, projectConfig.root || '');
|
14 | const outputPath = path.resolve(workspaceRoot, projectConfig.outputPath);
|
15 | if (utils_1.isSamePaths(workspaceRoot, outputPath)) {
|
16 | throw new error_models_1.InvalidConfigError(`The 'projects[${projectConfig.name || projectConfig._index}].outputPath' must not be the same as workspace root directory.`);
|
17 | }
|
18 | if (utils_1.isSamePaths(projectRoot, outputPath) || outputPath === '.') {
|
19 | throw new error_models_1.InvalidConfigError(`The 'projects[${projectConfig.name || projectConfig._index}].outputPath' must not be the same as project root directory.`);
|
20 | }
|
21 | if (outputPath === path.parse(outputPath).root) {
|
22 | throw new error_models_1.InvalidConfigError(`The 'projects[${projectConfig.name || projectConfig._index}].outputPath' must not be the same as system root directory.`);
|
23 | }
|
24 | const srcDirHomeRoot = path.parse(projectRoot).root;
|
25 | if (outputPath === srcDirHomeRoot) {
|
26 | throw new error_models_1.InvalidConfigError(`The 'projects[${projectConfig.name || projectConfig._index}].outputPath' must not be the same as system root directory.`);
|
27 | }
|
28 | if (utils_1.isInFolder(outputPath, workspaceRoot)) {
|
29 | throw new error_models_1.InvalidConfigError(`The workspace folder must not be inside 'projects[${projectConfig.name || projectConfig._index}].outputPath' directory.`);
|
30 | }
|
31 | if (utils_1.isInFolder(outputPath, projectRoot)) {
|
32 | throw new error_models_1.InvalidConfigError(`The project root folder must not be inside 'projects[${projectConfig.name || projectConfig._index}].outputPath' directory.`);
|
33 | }
|
34 | }
|
35 | exports.validateOutputPath = validateOutputPath;
|
36 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtb3V0cHV0LXBhdGguanMiLCJzb3VyY2VSb290IjoiQzovcHJvamVjdHMvYW5ndWxhci1idWlsZC8iLCJzb3VyY2VzIjpbInNyYy9oZWxwZXJzL3ZhbGlkYXRlLW91dHB1dC1wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTZCO0FBQzdCLGtEQUFxRDtBQUVyRCxvQ0FBbUQ7QUFFbkQsNEJBQW1DLGFBQXFCLEVBQUUsYUFBa0U7SUFDeEgsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUU7UUFDM0IsTUFBTSxJQUFJLGlDQUFrQixDQUN4QixpQkFBaUIsYUFBYSxDQUFDLElBQUksSUFBSSxhQUFhLENBQUMsTUFBTSw0QkFBNEIsQ0FBQyxDQUFDO0tBQ2hHO0lBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBRTtRQUMzQyxNQUFNLElBQUksaUNBQWtCLENBQ3hCLGlCQUFpQixhQUFhLENBQUMsSUFBSSxJQUFJLGFBQWEsQ0FBQyxNQUFNLHNDQUFzQyxDQUFDLENBQUM7S0FDMUc7SUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRTFFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUV6RSxJQUFJLG1CQUFXLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxFQUFFO1FBQ3hDLE1BQU0sSUFBSSxpQ0FBa0IsQ0FDeEIsaUJBQWlCLGFBQWEsQ0FBQyxJQUFJLElBQUksYUFBYSxDQUFDLE1BQ3JELGlFQUFpRSxDQUFDLENBQUM7S0FDMUU7SUFDRCxJQUFJLG1CQUFXLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxJQUFJLFVBQVUsS0FBSyxHQUFHLEVBQUU7UUFDNUQsTUFBTSxJQUFJLGlDQUFrQixDQUN4QixpQkFBaUIsYUFBYSxDQUFDLElBQUksSUFBSSxhQUFhLENBQUMsTUFDckQsK0RBQStELENBQUMsQ0FBQztLQUN4RTtJQUNELElBQUksVUFBVSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFO1FBQzVDLE1BQU0sSUFBSSxpQ0FBa0IsQ0FDeEIsaUJBQWlCLGFBQWEsQ0FBQyxJQUFJLElBQUksYUFBYSxDQUFDLE1BQ3JELDhEQUE4RCxDQUFDLENBQUM7S0FDdkU7SUFFRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNwRCxJQUFJLFVBQVUsS0FBSyxjQUFjLEVBQUU7UUFDL0IsTUFBTSxJQUFJLGlDQUFrQixDQUN4QixpQkFBaUIsYUFBYSxDQUFDLElBQUksSUFBSSxhQUFhLENBQUMsTUFDckQsOERBQThELENBQUMsQ0FBQztLQUN2RTtJQUNELElBQUksa0JBQVUsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLEVBQUU7UUFDdkMsTUFBTSxJQUFJLGlDQUFrQixDQUN4QixxREFBcUQsYUFBYSxDQUFDLElBQUksSUFBSSxhQUFhLENBQUMsTUFDekYsMEJBQTBCLENBQUMsQ0FBQztLQUNuQztJQUNELElBQUksa0JBQVUsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLEVBQUU7UUFDckMsTUFBTSxJQUFJLGlDQUFrQixDQUN4Qix3REFBd0QsYUFBYSxDQUFDLElBQUksSUFBSSxhQUFhLENBQUMsTUFDNUYsMEJBQTBCLENBQUMsQ0FBQztLQUNuQztBQUNMLENBQUM7QUEvQ0QsZ0RBK0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IEludmFsaWRDb25maWdFcnJvciB9IGZyb20gJy4uL2Vycm9yLW1vZGVscyc7XG5pbXBvcnQgeyBBcHBQcm9qZWN0Q29uZmlnSW50ZXJuYWwsIExpYlByb2plY3RDb25maWdJbnRlcm5hbCB9IGZyb20gJy4uL2ludGVyZmFjZXMvaW50ZXJuYWxzJztcbmltcG9ydCB7IGlzSW5Gb2xkZXIsIGlzU2FtZVBhdGhzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVPdXRwdXRQYXRoKHdvcmtzcGFjZVJvb3Q6IHN0cmluZywgcHJvamVjdENvbmZpZzogQXBwUHJvamVjdENvbmZpZ0ludGVybmFsIHwgTGliUHJvamVjdENvbmZpZ0ludGVybmFsKTogdm9pZCB7XG4gICAgaWYgKCFwcm9qZWN0Q29uZmlnLm91dHB1dFBhdGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRDb25maWdFcnJvcihcbiAgICAgICAgICAgIGBUaGUgJ3Byb2plY3RzWyR7cHJvamVjdENvbmZpZy5uYW1lIHx8IHByb2plY3RDb25maWcuX2luZGV4fV0ub3V0cHV0UGF0aCcgaXMgcmVxdWlyZWQuYCk7XG4gICAgfVxuXG4gICAgaWYgKHBhdGguaXNBYnNvbHV0ZShwcm9qZWN0Q29uZmlnLm91dHB1dFBhdGgpKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQ29uZmlnRXJyb3IoXG4gICAgICAgICAgICBgVGhlICdwcm9qZWN0c1ske3Byb2plY3RDb25maWcubmFtZSB8fCBwcm9qZWN0Q29uZmlnLl9pbmRleH1dLm91dHB1dFBhdGgnIG11c3QgYmUgcmVsYXRpdmUgcGF0aC5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9qZWN0Um9vdCA9IHBhdGgucmVzb2x2ZSh3b3Jrc3BhY2VSb290LCBwcm9qZWN0Q29uZmlnLnJvb3QgfHwgJycpO1xuXG4gICAgY29uc3Qgb3V0cHV0UGF0aCA9IHBhdGgucmVzb2x2ZSh3b3Jrc3BhY2VSb290LCBwcm9qZWN0Q29uZmlnLm91dHB1dFBhdGgpO1xuXG4gICAgaWYgKGlzU2FtZVBhdGhzKHdvcmtzcGFjZVJvb3QsIG91dHB1dFBhdGgpKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQ29uZmlnRXJyb3IoXG4gICAgICAgICAgICBgVGhlICdwcm9qZWN0c1ske3Byb2plY3RDb25maWcubmFtZSB8fCBwcm9qZWN0Q29uZmlnLl9pbmRleFxuICAgICAgICAgICAgfV0ub3V0cHV0UGF0aCcgbXVzdCBub3QgYmUgdGhlIHNhbWUgYXMgd29ya3NwYWNlIHJvb3QgZGlyZWN0b3J5LmApO1xuICAgIH1cbiAgICBpZiAoaXNTYW1lUGF0aHMocHJvamVjdFJvb3QsIG91dHB1dFBhdGgpIHx8IG91dHB1dFBhdGggPT09ICcuJykge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZENvbmZpZ0Vycm9yKFxuICAgICAgICAgICAgYFRoZSAncHJvamVjdHNbJHtwcm9qZWN0Q29uZmlnLm5hbWUgfHwgcHJvamVjdENvbmZpZy5faW5kZXhcbiAgICAgICAgICAgIH1dLm91dHB1dFBhdGgnIG11c3Qgbm90IGJlIHRoZSBzYW1lIGFzIHByb2plY3Qgcm9vdCBkaXJlY3RvcnkuYCk7XG4gICAgfVxuICAgIGlmIChvdXRwdXRQYXRoID09PSBwYXRoLnBhcnNlKG91dHB1dFBhdGgpLnJvb3QpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRDb25maWdFcnJvcihcbiAgICAgICAgICAgIGBUaGUgJ3Byb2plY3RzWyR7cHJvamVjdENvbmZpZy5uYW1lIHx8IHByb2plY3RDb25maWcuX2luZGV4XG4gICAgICAgICAgICB9XS5vdXRwdXRQYXRoJyBtdXN0IG5vdCBiZSB0aGUgc2FtZSBhcyBzeXN0ZW0gcm9vdCBkaXJlY3RvcnkuYCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3JjRGlySG9tZVJvb3QgPSBwYXRoLnBhcnNlKHByb2plY3RSb290KS5yb290O1xuICAgIGlmIChvdXRwdXRQYXRoID09PSBzcmNEaXJIb21lUm9vdCkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZENvbmZpZ0Vycm9yKFxuICAgICAgICAgICAgYFRoZSAncHJvamVjdHNbJHtwcm9qZWN0Q29uZmlnLm5hbWUgfHwgcHJvamVjdENvbmZpZy5faW5kZXhcbiAgICAgICAgICAgIH1dLm91dHB1dFBhdGgnIG11c3Qgbm90IGJlIHRoZSBzYW1lIGFzIHN5c3RlbSByb290IGRpcmVjdG9yeS5gKTtcbiAgICB9XG4gICAgaWYgKGlzSW5Gb2xkZXIob3V0cHV0UGF0aCwgd29ya3NwYWNlUm9vdCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRDb25maWdFcnJvcihcbiAgICAgICAgICAgIGBUaGUgd29ya3NwYWNlIGZvbGRlciBtdXN0IG5vdCBiZSBpbnNpZGUgJ3Byb2plY3RzWyR7cHJvamVjdENvbmZpZy5uYW1lIHx8IHByb2plY3RDb25maWcuX2luZGV4XG4gICAgICAgICAgICB9XS5vdXRwdXRQYXRoJyBkaXJlY3RvcnkuYCk7XG4gICAgfVxuICAgIGlmIChpc0luRm9sZGVyKG91dHB1dFBhdGgsIHByb2plY3RSb290KSkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZENvbmZpZ0Vycm9yKFxuICAgICAgICAgICAgYFRoZSBwcm9qZWN0IHJvb3QgZm9sZGVyIG11c3Qgbm90IGJlIGluc2lkZSAncHJvamVjdHNbJHtwcm9qZWN0Q29uZmlnLm5hbWUgfHwgcHJvamVjdENvbmZpZy5faW5kZXhcbiAgICAgICAgICAgIH1dLm91dHB1dFBhdGgnIGRpcmVjdG9yeS5gKTtcbiAgICB9XG59XG4iXX0= |
\ | No newline at end of file |