aboutsummaryrefslogtreecommitdiff
path: root/sandbox/testAppNevena/Front/node_modules/@schematics/angular/migrations/update-13/update-libraries.js
blob: b548f519f2974547f5ea008c0ed049103e3e15f2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
"use strict";
/**
 * @license
 * Copyright Google LLC All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("@angular-devkit/core");
const json_file_1 = require("../../utility/json-file");
const workspace_1 = require("../../utility/workspace");
function* visit(directory) {
    for (const path of directory.subfiles) {
        if (path === 'package.json') {
            const entry = directory.file(path);
            if ((entry === null || entry === void 0 ? void 0 : entry.content.toString().includes('ngPackage')) !== true) {
                continue;
            }
        }
        else if (path !== 'ng-package.json') {
            continue;
        }
        yield (0, core_1.join)(directory.path, path);
    }
    for (const path of directory.subdirs) {
        if (path === 'node_modules' || path.startsWith('.')) {
            continue;
        }
        yield* visit(directory.dir(path));
    }
}
function default_1() {
    const ENABLE_IVY_JSON_PATH = ['angularCompilerOptions', 'enableIvy'];
    const COMPILATION_MODE_JSON_PATH = ['angularCompilerOptions', 'compilationMode'];
    const NG_PACKAGR_DEPRECATED_OPTIONS_PATHS = [
        ['lib', 'umdModuleIds'],
        ['lib', 'amdId'],
        ['lib', 'umdId'],
        ['ngPackage', 'lib', 'umdModuleIds'],
        ['ngPackage', 'lib', 'amdId'],
        ['ngPackage', 'lib', 'umdId'],
    ];
    return async (tree, context) => {
        const workspace = await (0, workspace_1.getWorkspace)(tree);
        const librariesTsConfig = new Set();
        const ngPackagrConfig = new Set();
        for (const [, project] of workspace.projects) {
            for (const [_, target] of project.targets) {
                if (target.builder !== '@angular-devkit/build-angular:ng-packagr') {
                    continue;
                }
                for (const [, options] of (0, workspace_1.allTargetOptions)(target)) {
                    if (typeof options.tsConfig === 'string') {
                        librariesTsConfig.add(options.tsConfig);
                    }
                    if (typeof options.project === 'string') {
                        if (options.project.endsWith('.json')) {
                            ngPackagrConfig.add(options.project);
                        }
                        else {
                            context.logger
                                .warn(core_1.tags.stripIndent `Expected a JSON configuration file but found "${options.project}".
                  You may need to adjust the configuration file to remove invalid options.
                  For more information, see the breaking changes section within the release notes: https://github.com/ng-packagr/ng-packagr/releases/tag/v13.0.0/.`);
                        }
                    }
                }
            }
        }
        // Gather configurations which are not referecned in angular.json
        // (This happens when users have secondary entry-points)
        for (const p of visit(tree.root)) {
            ngPackagrConfig.add(p);
        }
        // Update ng-packagr configuration
        for (const config of ngPackagrConfig) {
            const json = new json_file_1.JSONFile(tree, config);
            for (const optionPath of NG_PACKAGR_DEPRECATED_OPTIONS_PATHS) {
                json.remove(optionPath);
            }
        }
        // Update tsconfig files
        for (const tsConfig of librariesTsConfig) {
            const json = new json_file_1.JSONFile(tree, tsConfig);
            if (json.get(ENABLE_IVY_JSON_PATH) === false) {
                json.remove(ENABLE_IVY_JSON_PATH);
                json.modify(COMPILATION_MODE_JSON_PATH, 'partial');
            }
        }
    };
}
exports.default = default_1;