1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const path = require("path");
|
4 | const errors_1 = require("../models/errors");
|
5 | const utils_1 = require("../utils");
|
6 | function validateOutputPath(workspaceRoot, projectConfig) {
|
7 | if (!projectConfig.outputPath) {
|
8 | throw new errors_1.InvalidConfigError(`The 'projects[${projectConfig.name || projectConfig._index}].outputPath' is required.`);
|
9 | }
|
10 | if (path.isAbsolute(projectConfig.outputPath)) {
|
11 | throw new errors_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 errors_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 errors_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 errors_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 errors_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 errors_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 errors_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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtb3V0cHV0LXBhdGguanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbInNyYy9oZWxwZXJzL3ZhbGlkYXRlLW91dHB1dC1wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTZCO0FBRTdCLDZDQUFzRDtBQUV0RCxvQ0FBbUQ7QUFFbkQsU0FBZ0Isa0JBQWtCLENBQUMsYUFBcUIsRUFBRSxhQUFrRTtJQUN4SCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRTtRQUMzQixNQUFNLElBQUksMkJBQWtCLENBQ3hCLGlCQUFpQixhQUFhLENBQUMsSUFBSSxJQUFJLGFBQWEsQ0FBQyxNQUFNLDRCQUE0QixDQUFDLENBQUM7S0FDaEc7SUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQzNDLE1BQU0sSUFBSSwyQkFBa0IsQ0FDeEIsaUJBQWlCLGFBQWEsQ0FBQyxJQUFJLElBQUksYUFBYSxDQUFDLE1BQU0sc0NBQXNDLENBQUMsQ0FBQztLQUMxRztJQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFFMUUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXpFLElBQUksbUJBQVcsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLEVBQUU7UUFDeEMsTUFBTSxJQUFJLDJCQUFrQixDQUN4QixpQkFBaUIsYUFBYSxDQUFDLElBQUksSUFBSSxhQUFhLENBQUMsTUFDckQsaUVBQWlFLENBQUMsQ0FBQztLQUMxRTtJQUNELElBQUksbUJBQVcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLElBQUksVUFBVSxLQUFLLEdBQUcsRUFBRTtRQUM1RCxNQUFNLElBQUksMkJBQWtCLENBQ3hCLGlCQUFpQixhQUFhLENBQUMsSUFBSSxJQUFJLGFBQWEsQ0FBQyxNQUNyRCwrREFBK0QsQ0FBQyxDQUFDO0tBQ3hFO0lBQ0QsSUFBSSxVQUFVLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUU7UUFDNUMsTUFBTSxJQUFJLDJCQUFrQixDQUN4QixpQkFBaUIsYUFBYSxDQUFDLElBQUksSUFBSSxhQUFhLENBQUMsTUFDckQsOERBQThELENBQUMsQ0FBQztLQUN2RTtJQUVELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BELElBQUksVUFBVSxLQUFLLGNBQWMsRUFBRTtRQUMvQixNQUFNLElBQUksMkJBQWtCLENBQ3hCLGlCQUFpQixhQUFhLENBQUMsSUFBSSxJQUFJLGFBQWEsQ0FBQyxNQUNyRCw4REFBOEQsQ0FBQyxDQUFDO0tBQ3ZFO0lBQ0QsSUFBSSxrQkFBVSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsRUFBRTtRQUN2QyxNQUFNLElBQUksMkJBQWtCLENBQ3hCLHFEQUFxRCxhQUFhLENBQUMsSUFBSSxJQUFJLGFBQWEsQ0FBQyxNQUN6RiwwQkFBMEIsQ0FBQyxDQUFDO0tBQ25DO0lBQ0QsSUFBSSxrQkFBVSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsRUFBRTtRQUNyQyxNQUFNLElBQUksMkJBQWtCLENBQ3hCLHdEQUF3RCxhQUFhLENBQUMsSUFBSSxJQUFJLGFBQWEsQ0FBQyxNQUM1RiwwQkFBMEIsQ0FBQyxDQUFDO0tBQ25DO0FBQ0wsQ0FBQztBQS9DRCxnREErQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQgeyBJbnZhbGlkQ29uZmlnRXJyb3IgfSBmcm9tICcuLi9tb2RlbHMvZXJyb3JzJztcbmltcG9ydCB7IEFwcFByb2plY3RDb25maWdJbnRlcm5hbCwgTGliUHJvamVjdENvbmZpZ0ludGVybmFsIH0gZnJvbSAnLi4vbW9kZWxzL2ludGVybmFscyc7XG5pbXBvcnQgeyBpc0luRm9sZGVyLCBpc1NhbWVQYXRocyB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlT3V0cHV0UGF0aCh3b3Jrc3BhY2VSb290OiBzdHJpbmcsIHByb2plY3RDb25maWc6IEFwcFByb2plY3RDb25maWdJbnRlcm5hbCB8IExpYlByb2plY3RDb25maWdJbnRlcm5hbCk6IHZvaWQge1xuICAgIGlmICghcHJvamVjdENvbmZpZy5vdXRwdXRQYXRoKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQ29uZmlnRXJyb3IoXG4gICAgICAgICAgICBgVGhlICdwcm9qZWN0c1ske3Byb2plY3RDb25maWcubmFtZSB8fCBwcm9qZWN0Q29uZmlnLl9pbmRleH1dLm91dHB1dFBhdGgnIGlzIHJlcXVpcmVkLmApO1xuICAgIH1cblxuICAgIGlmIChwYXRoLmlzQWJzb2x1dGUocHJvamVjdENvbmZpZy5vdXRwdXRQYXRoKSkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZENvbmZpZ0Vycm9yKFxuICAgICAgICAgICAgYFRoZSAncHJvamVjdHNbJHtwcm9qZWN0Q29uZmlnLm5hbWUgfHwgcHJvamVjdENvbmZpZy5faW5kZXh9XS5vdXRwdXRQYXRoJyBtdXN0IGJlIHJlbGF0aXZlIHBhdGguYCk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJvamVjdFJvb3QgPSBwYXRoLnJlc29sdmUod29ya3NwYWNlUm9vdCwgcHJvamVjdENvbmZpZy5yb290IHx8ICcnKTtcblxuICAgIGNvbnN0IG91dHB1dFBhdGggPSBwYXRoLnJlc29sdmUod29ya3NwYWNlUm9vdCwgcHJvamVjdENvbmZpZy5vdXRwdXRQYXRoKTtcblxuICAgIGlmIChpc1NhbWVQYXRocyh3b3Jrc3BhY2VSb290LCBvdXRwdXRQYXRoKSkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZENvbmZpZ0Vycm9yKFxuICAgICAgICAgICAgYFRoZSAncHJvamVjdHNbJHtwcm9qZWN0Q29uZmlnLm5hbWUgfHwgcHJvamVjdENvbmZpZy5faW5kZXhcbiAgICAgICAgICAgIH1dLm91dHB1dFBhdGgnIG11c3Qgbm90IGJlIHRoZSBzYW1lIGFzIHdvcmtzcGFjZSByb290IGRpcmVjdG9yeS5gKTtcbiAgICB9XG4gICAgaWYgKGlzU2FtZVBhdGhzKHByb2plY3RSb290LCBvdXRwdXRQYXRoKSB8fCBvdXRwdXRQYXRoID09PSAnLicpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRDb25maWdFcnJvcihcbiAgICAgICAgICAgIGBUaGUgJ3Byb2plY3RzWyR7cHJvamVjdENvbmZpZy5uYW1lIHx8IHByb2plY3RDb25maWcuX2luZGV4XG4gICAgICAgICAgICB9XS5vdXRwdXRQYXRoJyBtdXN0IG5vdCBiZSB0aGUgc2FtZSBhcyBwcm9qZWN0IHJvb3QgZGlyZWN0b3J5LmApO1xuICAgIH1cbiAgICBpZiAob3V0cHV0UGF0aCA9PT0gcGF0aC5wYXJzZShvdXRwdXRQYXRoKS5yb290KSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQ29uZmlnRXJyb3IoXG4gICAgICAgICAgICBgVGhlICdwcm9qZWN0c1ske3Byb2plY3RDb25maWcubmFtZSB8fCBwcm9qZWN0Q29uZmlnLl9pbmRleFxuICAgICAgICAgICAgfV0ub3V0cHV0UGF0aCcgbXVzdCBub3QgYmUgdGhlIHNhbWUgYXMgc3lzdGVtIHJvb3QgZGlyZWN0b3J5LmApO1xuICAgIH1cblxuICAgIGNvbnN0IHNyY0RpckhvbWVSb290ID0gcGF0aC5wYXJzZShwcm9qZWN0Um9vdCkucm9vdDtcbiAgICBpZiAob3V0cHV0UGF0aCA9PT0gc3JjRGlySG9tZVJvb3QpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRDb25maWdFcnJvcihcbiAgICAgICAgICAgIGBUaGUgJ3Byb2plY3RzWyR7cHJvamVjdENvbmZpZy5uYW1lIHx8IHByb2plY3RDb25maWcuX2luZGV4XG4gICAgICAgICAgICB9XS5vdXRwdXRQYXRoJyBtdXN0IG5vdCBiZSB0aGUgc2FtZSBhcyBzeXN0ZW0gcm9vdCBkaXJlY3RvcnkuYCk7XG4gICAgfVxuICAgIGlmIChpc0luRm9sZGVyKG91dHB1dFBhdGgsIHdvcmtzcGFjZVJvb3QpKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQ29uZmlnRXJyb3IoXG4gICAgICAgICAgICBgVGhlIHdvcmtzcGFjZSBmb2xkZXIgbXVzdCBub3QgYmUgaW5zaWRlICdwcm9qZWN0c1ske3Byb2plY3RDb25maWcubmFtZSB8fCBwcm9qZWN0Q29uZmlnLl9pbmRleFxuICAgICAgICAgICAgfV0ub3V0cHV0UGF0aCcgZGlyZWN0b3J5LmApO1xuICAgIH1cbiAgICBpZiAoaXNJbkZvbGRlcihvdXRwdXRQYXRoLCBwcm9qZWN0Um9vdCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRDb25maWdFcnJvcihcbiAgICAgICAgICAgIGBUaGUgcHJvamVjdCByb290IGZvbGRlciBtdXN0IG5vdCBiZSBpbnNpZGUgJ3Byb2plY3RzWyR7cHJvamVjdENvbmZpZy5uYW1lIHx8IHByb2plY3RDb25maWcuX2luZGV4XG4gICAgICAgICAgICB9XS5vdXRwdXRQYXRoJyBkaXJlY3RvcnkuYCk7XG4gICAgfVxufVxuIl19 |
\ | No newline at end of file |