1 | (function (factory) {
|
---|
2 | if (typeof module === "object" && typeof module.exports === "object") {
|
---|
3 | var v = factory(require, exports);
|
---|
4 | if (v !== undefined) module.exports = v;
|
---|
5 | }
|
---|
6 | else if (typeof define === "function" && define.amd) {
|
---|
7 | define("@angular/compiler-cli/ngcc/src/writing/cleaning/package_cleaner", ["require", "exports", "tslib", "@angular/compiler-cli/ngcc/src/packages/build_marker", "@angular/compiler-cli/ngcc/src/writing/cleaning/cleaning_strategies", "@angular/compiler-cli/ngcc/src/writing/cleaning/utils"], factory);
|
---|
8 | }
|
---|
9 | })(function (require, exports) {
|
---|
10 | "use strict";
|
---|
11 | Object.defineProperty(exports, "__esModule", { value: true });
|
---|
12 | exports.cleanOutdatedPackages = exports.PackageCleaner = void 0;
|
---|
13 | var tslib_1 = require("tslib");
|
---|
14 | var build_marker_1 = require("@angular/compiler-cli/ngcc/src/packages/build_marker");
|
---|
15 | var cleaning_strategies_1 = require("@angular/compiler-cli/ngcc/src/writing/cleaning/cleaning_strategies");
|
---|
16 | var utils_1 = require("@angular/compiler-cli/ngcc/src/writing/cleaning/utils");
|
---|
17 | /**
|
---|
18 | * A class that can clean ngcc artifacts from a directory.
|
---|
19 | */
|
---|
20 | var PackageCleaner = /** @class */ (function () {
|
---|
21 | function PackageCleaner(fs, cleaners) {
|
---|
22 | this.fs = fs;
|
---|
23 | this.cleaners = cleaners;
|
---|
24 | }
|
---|
25 | /**
|
---|
26 | * Recurse through the file-system cleaning files and directories as determined by the configured
|
---|
27 | * cleaning-strategies.
|
---|
28 | *
|
---|
29 | * @param directory the current directory to clean
|
---|
30 | */
|
---|
31 | PackageCleaner.prototype.clean = function (directory) {
|
---|
32 | var e_1, _a, e_2, _b;
|
---|
33 | var basenames = this.fs.readdir(directory);
|
---|
34 | try {
|
---|
35 | for (var basenames_1 = tslib_1.__values(basenames), basenames_1_1 = basenames_1.next(); !basenames_1_1.done; basenames_1_1 = basenames_1.next()) {
|
---|
36 | var basename = basenames_1_1.value;
|
---|
37 | if (basename === 'node_modules') {
|
---|
38 | continue;
|
---|
39 | }
|
---|
40 | var path = this.fs.resolve(directory, basename);
|
---|
41 | try {
|
---|
42 | for (var _c = (e_2 = void 0, tslib_1.__values(this.cleaners)), _d = _c.next(); !_d.done; _d = _c.next()) {
|
---|
43 | var cleaner = _d.value;
|
---|
44 | if (cleaner.canClean(path, basename)) {
|
---|
45 | cleaner.clean(path, basename);
|
---|
46 | break;
|
---|
47 | }
|
---|
48 | }
|
---|
49 | }
|
---|
50 | catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
---|
51 | finally {
|
---|
52 | try {
|
---|
53 | if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
|
---|
54 | }
|
---|
55 | finally { if (e_2) throw e_2.error; }
|
---|
56 | }
|
---|
57 | // Recurse into subdirectories (note that a cleaner may have removed this path)
|
---|
58 | if (utils_1.isLocalDirectory(this.fs, path)) {
|
---|
59 | this.clean(path);
|
---|
60 | }
|
---|
61 | }
|
---|
62 | }
|
---|
63 | catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
---|
64 | finally {
|
---|
65 | try {
|
---|
66 | if (basenames_1_1 && !basenames_1_1.done && (_a = basenames_1.return)) _a.call(basenames_1);
|
---|
67 | }
|
---|
68 | finally { if (e_1) throw e_1.error; }
|
---|
69 | }
|
---|
70 | };
|
---|
71 | return PackageCleaner;
|
---|
72 | }());
|
---|
73 | exports.PackageCleaner = PackageCleaner;
|
---|
74 | /**
|
---|
75 | * Iterate through the given `entryPoints` identifying the package for each that has at least one
|
---|
76 | * outdated processed format, then cleaning those packages.
|
---|
77 | *
|
---|
78 | * Note that we have to clean entire packages because there is no clear file-system boundary
|
---|
79 | * between entry-points within a package. So if one entry-point is outdated we have to clean
|
---|
80 | * everything within that package.
|
---|
81 | *
|
---|
82 | * @param fileSystem the current file-system
|
---|
83 | * @param entryPoints the entry-points that have been collected for this run of ngcc
|
---|
84 | * @returns true if packages needed to be cleaned.
|
---|
85 | */
|
---|
86 | function cleanOutdatedPackages(fileSystem, entryPoints) {
|
---|
87 | var e_3, _a, e_4, _b;
|
---|
88 | var packagesToClean = new Set();
|
---|
89 | try {
|
---|
90 | for (var entryPoints_1 = tslib_1.__values(entryPoints), entryPoints_1_1 = entryPoints_1.next(); !entryPoints_1_1.done; entryPoints_1_1 = entryPoints_1.next()) {
|
---|
91 | var entryPoint = entryPoints_1_1.value;
|
---|
92 | if (build_marker_1.needsCleaning(entryPoint.packageJson)) {
|
---|
93 | packagesToClean.add(entryPoint.packagePath);
|
---|
94 | }
|
---|
95 | }
|
---|
96 | }
|
---|
97 | catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
---|
98 | finally {
|
---|
99 | try {
|
---|
100 | if (entryPoints_1_1 && !entryPoints_1_1.done && (_a = entryPoints_1.return)) _a.call(entryPoints_1);
|
---|
101 | }
|
---|
102 | finally { if (e_3) throw e_3.error; }
|
---|
103 | }
|
---|
104 | var cleaner = new PackageCleaner(fileSystem, [
|
---|
105 | new cleaning_strategies_1.PackageJsonCleaner(fileSystem),
|
---|
106 | new cleaning_strategies_1.NgccDirectoryCleaner(fileSystem),
|
---|
107 | new cleaning_strategies_1.BackupFileCleaner(fileSystem),
|
---|
108 | ]);
|
---|
109 | try {
|
---|
110 | for (var packagesToClean_1 = tslib_1.__values(packagesToClean), packagesToClean_1_1 = packagesToClean_1.next(); !packagesToClean_1_1.done; packagesToClean_1_1 = packagesToClean_1.next()) {
|
---|
111 | var packagePath = packagesToClean_1_1.value;
|
---|
112 | cleaner.clean(packagePath);
|
---|
113 | }
|
---|
114 | }
|
---|
115 | catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
---|
116 | finally {
|
---|
117 | try {
|
---|
118 | if (packagesToClean_1_1 && !packagesToClean_1_1.done && (_b = packagesToClean_1.return)) _b.call(packagesToClean_1);
|
---|
119 | }
|
---|
120 | finally { if (e_4) throw e_4.error; }
|
---|
121 | }
|
---|
122 | return packagesToClean.size > 0;
|
---|
123 | }
|
---|
124 | exports.cleanOutdatedPackages = cleanOutdatedPackages;
|
---|
125 | });
|
---|
126 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZV9jbGVhbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL25nY2Mvc3JjL3dyaXRpbmcvY2xlYW5pbmcvcGFja2FnZV9jbGVhbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7SUFRQSxxRkFBMEQ7SUFHMUQsMkdBQW9IO0lBQ3BILCtFQUF5QztJQUV6Qzs7T0FFRztJQUNIO1FBQ0Usd0JBQW9CLEVBQXNCLEVBQVUsUUFBNEI7WUFBNUQsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7WUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQUFHLENBQUM7UUFFcEY7Ozs7O1dBS0c7UUFDSCw4QkFBSyxHQUFMLFVBQU0sU0FBeUI7O1lBQzdCLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDOztnQkFDN0MsS0FBdUIsSUFBQSxjQUFBLGlCQUFBLFNBQVMsQ0FBQSxvQ0FBQSwyREFBRTtvQkFBN0IsSUFBTSxRQUFRLHNCQUFBO29CQUNqQixJQUFJLFFBQVEsS0FBSyxjQUFjLEVBQUU7d0JBQy9CLFNBQVM7cUJBQ1Y7b0JBRUQsSUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDOzt3QkFDbEQsS0FBc0IsSUFBQSxvQkFBQSxpQkFBQSxJQUFJLENBQUMsUUFBUSxDQUFBLENBQUEsZ0JBQUEsNEJBQUU7NEJBQWhDLElBQU0sT0FBTyxXQUFBOzRCQUNoQixJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFFO2dDQUNwQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztnQ0FDOUIsTUFBTTs2QkFDUDt5QkFDRjs7Ozs7Ozs7O29CQUNELCtFQUErRTtvQkFDL0UsSUFBSSx3QkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO3dCQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUNsQjtpQkFDRjs7Ozs7Ozs7O1FBQ0gsQ0FBQztRQUNILHFCQUFDO0lBQUQsQ0FBQyxBQTdCRCxJQTZCQztJQTdCWSx3Q0FBYztJQWdDM0I7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxVQUFzQixFQUFFLFdBQXlCOztRQUNyRixJQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQzs7WUFDbEQsS0FBeUIsSUFBQSxnQkFBQSxpQkFBQSxXQUFXLENBQUEsd0NBQUEsaUVBQUU7Z0JBQWpDLElBQU0sVUFBVSx3QkFBQTtnQkFDbkIsSUFBSSw0QkFBYSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRTtvQkFDekMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7aUJBQzdDO2FBQ0Y7Ozs7Ozs7OztRQUVELElBQU0sT0FBTyxHQUFHLElBQUksY0FBYyxDQUFDLFVBQVUsRUFBRTtZQUM3QyxJQUFJLHdDQUFrQixDQUFDLFVBQVUsQ0FBQztZQUNsQyxJQUFJLDBDQUFvQixDQUFDLFVBQVUsQ0FBQztZQUNwQyxJQUFJLHVDQUFpQixDQUFDLFVBQVUsQ0FBQztTQUNsQyxDQUFDLENBQUM7O1lBQ0gsS0FBMEIsSUFBQSxvQkFBQSxpQkFBQSxlQUFlLENBQUEsZ0RBQUEsNkVBQUU7Z0JBQXRDLElBQU0sV0FBVyw0QkFBQTtnQkFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUM1Qjs7Ozs7Ozs7O1FBRUQsT0FBTyxlQUFlLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBbEJELHNEQWtCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtBYnNvbHV0ZUZzUGF0aCwgRmlsZVN5c3RlbSwgUmVhZG9ubHlGaWxlU3lzdGVtfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvbmd0c2MvZmlsZV9zeXN0ZW0nO1xuaW1wb3J0IHtuZWVkc0NsZWFuaW5nfSBmcm9tICcuLi8uLi9wYWNrYWdlcy9idWlsZF9tYXJrZXInO1xuaW1wb3J0IHtFbnRyeVBvaW50fSBmcm9tICcuLi8uLi9wYWNrYWdlcy9lbnRyeV9wb2ludCc7XG5cbmltcG9ydCB7QmFja3VwRmlsZUNsZWFuZXIsIENsZWFuaW5nU3RyYXRlZ3ksIE5nY2NEaXJlY3RvcnlDbGVhbmVyLCBQYWNrYWdlSnNvbkNsZWFuZXJ9IGZyb20gJy4vY2xlYW5pbmdfc3RyYXRlZ2llcyc7XG5pbXBvcnQge2lzTG9jYWxEaXJlY3Rvcnl9IGZyb20gJy4vdXRpbHMnO1xuXG4vKipcbiAqIEEgY2xhc3MgdGhhdCBjYW4gY2xlYW4gbmdjYyBhcnRpZmFjdHMgZnJvbSBhIGRpcmVjdG9yeS5cbiAqL1xuZXhwb3J0IGNsYXNzIFBhY2thZ2VDbGVhbmVyIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmczogUmVhZG9ubHlGaWxlU3lzdGVtLCBwcml2YXRlIGNsZWFuZXJzOiBDbGVhbmluZ1N0cmF0ZWd5W10pIHt9XG5cbiAgLyoqXG4gICAqIFJlY3Vyc2UgdGhyb3VnaCB0aGUgZmlsZS1zeXN0ZW0gY2xlYW5pbmcgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIGFzIGRldGVybWluZWQgYnkgdGhlIGNvbmZpZ3VyZWRcbiAgICogY2xlYW5pbmctc3RyYXRlZ2llcy5cbiAgICpcbiAgICogQHBhcmFtIGRpcmVjdG9yeSB0aGUgY3VycmVudCBkaXJlY3RvcnkgdG8gY2xlYW5cbiAgICovXG4gIGNsZWFuKGRpcmVjdG9yeTogQWJzb2x1dGVGc1BhdGgpIHtcbiAgICBjb25zdCBiYXNlbmFtZXMgPSB0aGlzLmZzLnJlYWRkaXIoZGlyZWN0b3J5KTtcbiAgICBmb3IgKGNvbnN0IGJhc2VuYW1lIG9mIGJhc2VuYW1lcykge1xuICAgICAgaWYgKGJhc2VuYW1lID09PSAnbm9kZV9tb2R1bGVzJykge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcGF0aCA9IHRoaXMuZnMucmVzb2x2ZShkaXJlY3RvcnksIGJhc2VuYW1lKTtcbiAgICAgIGZvciAoY29uc3QgY2xlYW5lciBvZiB0aGlzLmNsZWFuZXJzKSB7XG4gICAgICAgIGlmIChjbGVhbmVyLmNhbkNsZWFuKHBhdGgsIGJhc2VuYW1lKSkge1xuICAgICAgICAgIGNsZWFuZXIuY2xlYW4ocGF0aCwgYmFzZW5hbWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBSZWN1cnNlIGludG8gc3ViZGlyZWN0b3JpZXMgKG5vdGUgdGhhdCBhIGNsZWFuZXIgbWF5IGhhdmUgcmVtb3ZlZCB0aGlzIHBhdGgpXG4gICAgICBpZiAoaXNMb2NhbERpcmVjdG9yeSh0aGlzLmZzLCBwYXRoKSkge1xuICAgICAgICB0aGlzLmNsZWFuKHBhdGgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8qKlxuICogSXRlcmF0ZSB0aHJvdWdoIHRoZSBnaXZlbiBgZW50cnlQb2ludHNgIGlkZW50aWZ5aW5nIHRoZSBwYWNrYWdlIGZvciBlYWNoIHRoYXQgaGFzIGF0IGxlYXN0IG9uZVxuICogb3V0ZGF0ZWQgcHJvY2Vzc2VkIGZvcm1hdCwgdGhlbiBjbGVhbmluZyB0aG9zZSBwYWNrYWdlcy5cbiAqXG4gKiBOb3RlIHRoYXQgd2UgaGF2ZSB0byBjbGVhbiBlbnRpcmUgcGFja2FnZXMgYmVjYXVzZSB0aGVyZSBpcyBubyBjbGVhciBmaWxlLXN5c3RlbSBib3VuZGFyeVxuICogYmV0d2VlbiBlbnRyeS1wb2ludHMgd2l0aGluIGEgcGFja2FnZS4gU28gaWYgb25lIGVudHJ5LXBvaW50IGlzIG91dGRhdGVkIHdlIGhhdmUgdG8gY2xlYW5cbiAqIGV2ZXJ5dGhpbmcgd2l0aGluIHRoYXQgcGFja2FnZS5cbiAqXG4gKiBAcGFyYW0gZmlsZVN5c3RlbSB0aGUgY3VycmVudCBmaWxlLXN5c3RlbVxuICogQHBhcmFtIGVudHJ5UG9pbnRzIHRoZSBlbnRyeS1wb2ludHMgdGhhdCBoYXZlIGJlZW4gY29sbGVjdGVkIGZvciB0aGlzIHJ1biBvZiBuZ2NjXG4gKiBAcmV0dXJucyB0cnVlIGlmIHBhY2thZ2VzIG5lZWRlZCB0byBiZSBjbGVhbmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYW5PdXRkYXRlZFBhY2thZ2VzKGZpbGVTeXN0ZW06IEZpbGVTeXN0ZW0sIGVudHJ5UG9pbnRzOiBFbnRyeVBvaW50W10pOiBib29sZWFuIHtcbiAgY29uc3QgcGFja2FnZXNUb0NsZWFuID0gbmV3IFNldDxBYnNvbHV0ZUZzUGF0aD4oKTtcbiAgZm9yIChjb25zdCBlbnRyeVBvaW50IG9mIGVudHJ5UG9pbnRzKSB7XG4gICAgaWYgKG5lZWRzQ2xlYW5pbmcoZW50cnlQb2ludC5wYWNrYWdlSnNvbikpIHtcbiAgICAgIHBhY2thZ2VzVG9DbGVhbi5hZGQoZW50cnlQb2ludC5wYWNrYWdlUGF0aCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY2xlYW5lciA9IG5ldyBQYWNrYWdlQ2xlYW5lcihmaWxlU3lzdGVtLCBbXG4gICAgbmV3IFBhY2thZ2VKc29uQ2xlYW5lcihmaWxlU3lzdGVtKSxcbiAgICBuZXcgTmdjY0RpcmVjdG9yeUNsZWFuZXIoZmlsZVN5c3RlbSksXG4gICAgbmV3IEJhY2t1cEZpbGVDbGVhbmVyKGZpbGVTeXN0ZW0pLFxuICBdKTtcbiAgZm9yIChjb25zdCBwYWNrYWdlUGF0aCBvZiBwYWNrYWdlc1RvQ2xlYW4pIHtcbiAgICBjbGVhbmVyLmNsZWFuKHBhY2thZ2VQYXRoKTtcbiAgfVxuXG4gIHJldHVybiBwYWNrYWdlc1RvQ2xlYW4uc2l6ZSA+IDA7XG59XG4iXX0= |
---|