@angular/compiler-cli 9.0.3 → 9.0.7
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/ngcc/index.d.ts +2 -2
- package/ngcc/index.js +4 -3
- package/ngcc/main-ngcc.js +4 -3
- package/ngcc/src/dependencies/dependency_resolver.d.ts +7 -1
- package/ngcc/src/dependencies/dependency_resolver.js +20 -6
- package/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.d.ts +3 -2
- package/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.js +36 -21
- package/ngcc/src/entry_point_finder/targeted_entry_point_finder.js +15 -10
- package/ngcc/src/execution/api.d.ts +2 -4
- package/ngcc/src/execution/api.js +1 -1
- package/ngcc/src/execution/cluster/executor.d.ts +2 -2
- package/ngcc/src/execution/cluster/executor.js +1 -1
- package/ngcc/src/execution/cluster/master.js +15 -8
- package/ngcc/src/execution/single_process_executor.d.ts +13 -7
- package/ngcc/src/execution/single_process_executor.js +55 -38
- package/ngcc/src/execution/utils.js +1 -1
- package/ngcc/src/host/commonjs_host.js +2 -7
- package/ngcc/src/host/delegating_host.d.ts +44 -0
- package/ngcc/src/host/delegating_host.js +146 -0
- package/ngcc/src/host/esm5_host.js +1 -7
- package/ngcc/src/host/umd_host.js +2 -7
- package/ngcc/src/locking/lock_file.d.ts +29 -0
- package/ngcc/src/locking/lock_file.js +17 -0
- package/ngcc/src/locking/lock_file_with_child_process/index.d.ts +41 -0
- package/ngcc/src/locking/lock_file_with_child_process/index.js +91 -0
- package/ngcc/src/locking/lock_file_with_child_process/unlocker.d.ts +2 -0
- package/ngcc/src/locking/lock_file_with_child_process/unlocker.js +44 -0
- package/ngcc/src/locking/lock_file_with_child_process/util.d.ts +17 -0
- package/ngcc/src/locking/lock_file_with_child_process/util.js +42 -0
- package/ngcc/src/locking/sync_locker.d.ts +36 -0
- package/ngcc/src/locking/sync_locker.js +67 -0
- package/ngcc/src/logging/console_logger.d.ts +3 -9
- package/ngcc/src/logging/console_logger.js +16 -15
- package/ngcc/src/logging/logger.d.ts +7 -0
- package/ngcc/src/logging/logger.js +8 -1
- package/ngcc/src/main.js +32 -24
- package/ngcc/src/packages/build_marker.d.ts +1 -1
- package/ngcc/src/packages/build_marker.js +1 -1
- package/ngcc/src/packages/configuration.d.ts +8 -0
- package/ngcc/src/packages/configuration.js +2 -2
- package/ngcc/src/packages/entry_point.d.ts +26 -2
- package/ngcc/src/packages/entry_point.js +34 -24
- package/ngcc/src/packages/transformer.js +8 -4
- package/ngcc/src/rendering/dts_renderer.js +2 -2
- package/ngcc/src/rendering/renderer.js +2 -2
- package/ngcc/src/rendering/source_maps.d.ts +2 -1
- package/ngcc/src/rendering/source_maps.js +24 -13
- package/ngcc/src/sourcemaps/segment_marker.d.ts +7 -15
- package/ngcc/src/sourcemaps/segment_marker.js +12 -41
- package/ngcc/src/sourcemaps/source_file.d.ts +31 -4
- package/ngcc/src/sourcemaps/source_file.js +130 -37
- package/package.json +2 -2
- package/src/ngtsc/annotations/src/directive.js +3 -2
- package/src/ngtsc/core/api/index.d.ts +11 -0
- package/src/ngtsc/core/api/index.js +20 -0
- package/src/ngtsc/core/api/src/interfaces.d.ts +65 -0
- package/src/ngtsc/core/api/src/interfaces.js +20 -0
- package/src/ngtsc/core/api/src/options.d.ts +32 -0
- package/src/ngtsc/core/api/src/options.js +20 -0
- package/src/ngtsc/core/{api.d.ts → api/src/public_options.d.ts} +14 -81
- package/src/ngtsc/core/api/src/public_options.js +20 -0
- package/src/ngtsc/diagnostics/src/error_code.d.ts +9 -0
- package/src/ngtsc/diagnostics/src/error_code.js +10 -1
- package/src/ngtsc/scope/src/local.js +50 -47
- package/src/ngtsc/typecheck/src/oob.d.ts +10 -0
- package/src/ngtsc/typecheck/src/oob.js +14 -1
- package/src/ngtsc/typecheck/src/type_check_block.js +11 -2
- package/src/version.js +1 -1
- package/ngcc/src/execution/lock_file.d.ts +0 -43
- package/ngcc/src/execution/lock_file.js +0 -129
- package/src/ngtsc/core/api.js +0 -20
|
@@ -0,0 +1,91 @@
|
|
|
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/locking/lock_file_with_child_process/index", ["require", "exports", "child_process", "@angular/compiler-cli/src/ngtsc/file_system", "@angular/compiler-cli/ngcc/src/logging/logger", "@angular/compiler-cli/ngcc/src/locking/lock_file", "@angular/compiler-cli/ngcc/src/locking/lock_file_with_child_process/util"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
/**
|
|
13
|
+
* @license
|
|
14
|
+
* Copyright Google Inc. All Rights Reserved.
|
|
15
|
+
*
|
|
16
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
17
|
+
* found in the LICENSE file at https://angular.io/license
|
|
18
|
+
*/
|
|
19
|
+
var child_process_1 = require("child_process");
|
|
20
|
+
var file_system_1 = require("@angular/compiler-cli/src/ngtsc/file_system");
|
|
21
|
+
var logger_1 = require("@angular/compiler-cli/ngcc/src/logging/logger");
|
|
22
|
+
var lock_file_1 = require("@angular/compiler-cli/ngcc/src/locking/lock_file");
|
|
23
|
+
var util_1 = require("@angular/compiler-cli/ngcc/src/locking/lock_file_with_child_process/util");
|
|
24
|
+
/// <reference types="node" />
|
|
25
|
+
/**
|
|
26
|
+
* This `LockFile` implementation uses a child-process to remove the lock file when the main process
|
|
27
|
+
* exits (for whatever reason).
|
|
28
|
+
*
|
|
29
|
+
* There are a few milliseconds between the child-process being forked and it registering its
|
|
30
|
+
* `disconnect` event, which is responsible for tidying up the lock-file in the event that the main
|
|
31
|
+
* process exits unexpectedly.
|
|
32
|
+
*
|
|
33
|
+
* We eagerly create the unlocker child-process so that it maximizes the time before the lock-file
|
|
34
|
+
* is actually written, which makes it very unlikely that the unlocker would not be ready in the
|
|
35
|
+
* case that the developer hits Ctrl-C or closes the terminal within a fraction of a second of the
|
|
36
|
+
* lock-file being created.
|
|
37
|
+
*
|
|
38
|
+
* The worst case scenario is that ngcc is killed too quickly and leaves behind an orphaned
|
|
39
|
+
* lock-file. In which case the next ngcc run will display a helpful error message about deleting
|
|
40
|
+
* the lock-file.
|
|
41
|
+
*/
|
|
42
|
+
var LockFileWithChildProcess = /** @class */ (function () {
|
|
43
|
+
function LockFileWithChildProcess(fs, logger) {
|
|
44
|
+
this.fs = fs;
|
|
45
|
+
this.logger = logger;
|
|
46
|
+
this.path = lock_file_1.getLockFilePath(fs);
|
|
47
|
+
this.unlocker = this.createUnlocker(this.path);
|
|
48
|
+
}
|
|
49
|
+
LockFileWithChildProcess.prototype.write = function () {
|
|
50
|
+
if (this.unlocker === null) {
|
|
51
|
+
// In case we already disconnected the previous unlocker child-process, perhaps by calling
|
|
52
|
+
// `remove()`. Normally the LockFile should only be used once per instance.
|
|
53
|
+
this.unlocker = this.createUnlocker(this.path);
|
|
54
|
+
}
|
|
55
|
+
this.logger.debug("Attemping to write lock-file at " + this.path + " with PID " + process.pid);
|
|
56
|
+
// To avoid race conditions, check for existence of the lock-file by trying to create it.
|
|
57
|
+
// This will throw an error if the file already exists.
|
|
58
|
+
this.fs.writeFile(this.path, process.pid.toString(), /* exclusive */ true);
|
|
59
|
+
this.logger.debug("Written lock-file at " + this.path + " with PID " + process.pid);
|
|
60
|
+
};
|
|
61
|
+
LockFileWithChildProcess.prototype.read = function () {
|
|
62
|
+
try {
|
|
63
|
+
if (this.fs instanceof file_system_1.CachedFileSystem) {
|
|
64
|
+
// The lock-file file is "volatile", it might be changed by an external process,
|
|
65
|
+
// so we must not rely upon the cached value when reading it.
|
|
66
|
+
this.fs.invalidateCaches(this.path);
|
|
67
|
+
}
|
|
68
|
+
return this.fs.readFile(this.path);
|
|
69
|
+
}
|
|
70
|
+
catch (_a) {
|
|
71
|
+
return '{unknown}';
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
LockFileWithChildProcess.prototype.remove = function () {
|
|
75
|
+
util_1.removeLockFile(this.fs, this.logger, this.path, process.pid.toString());
|
|
76
|
+
if (this.unlocker !== null) {
|
|
77
|
+
// If there is an unlocker child-process then disconnect from it so that it can exit itself.
|
|
78
|
+
this.unlocker.disconnect();
|
|
79
|
+
this.unlocker = null;
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
LockFileWithChildProcess.prototype.createUnlocker = function (path) {
|
|
83
|
+
this.logger.debug('Forking unlocker child-process');
|
|
84
|
+
var logLevel = this.logger.level !== undefined ? this.logger.level.toString() : logger_1.LogLevel.info.toString();
|
|
85
|
+
return child_process_1.fork(this.fs.resolve(__dirname, './unlocker.js'), [path, logLevel], { detached: true });
|
|
86
|
+
};
|
|
87
|
+
return LockFileWithChildProcess;
|
|
88
|
+
}());
|
|
89
|
+
exports.LockFileWithChildProcess = LockFileWithChildProcess;
|
|
90
|
+
});
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbmdjYy9zcmMvbG9ja2luZy9sb2NrX2ZpbGVfd2l0aF9jaGlsZF9wcm9jZXNzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBQUE7Ozs7OztPQU1HO0lBQ0gsK0NBQWlEO0lBRWpELDJFQUErRjtJQUMvRix3RUFBc0Q7SUFDdEQsOEVBQXVEO0lBRXZELGlHQUFzQztJQUV0Qyw4QkFBOEI7SUFFOUI7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnQkc7SUFDSDtRQUlFLGtDQUFzQixFQUFjLEVBQVksTUFBYztZQUF4QyxPQUFFLEdBQUYsRUFBRSxDQUFZO1lBQVksV0FBTSxHQUFOLE1BQU0sQ0FBUTtZQUM1RCxJQUFJLENBQUMsSUFBSSxHQUFHLDJCQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBR0Qsd0NBQUssR0FBTDtZQUNFLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUU7Z0JBQzFCLDBGQUEwRjtnQkFDMUYsMkVBQTJFO2dCQUMzRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2hEO1lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMscUNBQW1DLElBQUksQ0FBQyxJQUFJLGtCQUFhLE9BQU8sQ0FBQyxHQUFLLENBQUMsQ0FBQztZQUMxRix5RkFBeUY7WUFDekYsdURBQXVEO1lBQ3ZELElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsMEJBQXdCLElBQUksQ0FBQyxJQUFJLGtCQUFhLE9BQU8sQ0FBQyxHQUFLLENBQUMsQ0FBQztRQUNqRixDQUFDO1FBRUQsdUNBQUksR0FBSjtZQUNFLElBQUk7Z0JBQ0YsSUFBSSxJQUFJLENBQUMsRUFBRSxZQUFZLDhCQUFnQixFQUFFO29CQUN2QyxnRkFBZ0Y7b0JBQ2hGLDZEQUE2RDtvQkFDN0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3JDO2dCQUNELE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3BDO1lBQUMsV0FBTTtnQkFDTixPQUFPLFdBQVcsQ0FBQzthQUNwQjtRQUNILENBQUM7UUFFRCx5Q0FBTSxHQUFOO1lBQ0UscUJBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDeEUsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRTtnQkFDMUIsNEZBQTRGO2dCQUM1RixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzthQUN0QjtRQUNILENBQUM7UUFFUyxpREFBYyxHQUF4QixVQUF5QixJQUFvQjtZQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQ3BELElBQU0sUUFBUSxHQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlGLE9BQU8sb0JBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUMvRixDQUFDO1FBQ0gsK0JBQUM7SUFBRCxDQUFDLEFBbkRELElBbURDO0lBbkRZLDREQUF3QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7Q2hpbGRQcm9jZXNzLCBmb3JrfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcblxuaW1wb3J0IHtBYnNvbHV0ZUZzUGF0aCwgQ2FjaGVkRmlsZVN5c3RlbSwgRmlsZVN5c3RlbX0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL25ndHNjL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7TG9nTGV2ZWwsIExvZ2dlcn0gZnJvbSAnLi4vLi4vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtMb2NrRmlsZSwgZ2V0TG9ja0ZpbGVQYXRofSBmcm9tICcuLi9sb2NrX2ZpbGUnO1xuXG5pbXBvcnQge3JlbW92ZUxvY2tGaWxlfSBmcm9tICcuL3V0aWwnO1xuXG4vLy8gPHJlZmVyZW5jZSB0eXBlcz1cIm5vZGVcIiAvPlxuXG4vKipcbiAqIFRoaXMgYExvY2tGaWxlYCBpbXBsZW1lbnRhdGlvbiB1c2VzIGEgY2hpbGQtcHJvY2VzcyB0byByZW1vdmUgdGhlIGxvY2sgZmlsZSB3aGVuIHRoZSBtYWluIHByb2Nlc3NcbiAqIGV4aXRzIChmb3Igd2hhdGV2ZXIgcmVhc29uKS5cbiAqXG4gKiBUaGVyZSBhcmUgYSBmZXcgbWlsbGlzZWNvbmRzIGJldHdlZW4gdGhlIGNoaWxkLXByb2Nlc3MgYmVpbmcgZm9ya2VkIGFuZCBpdCByZWdpc3RlcmluZyBpdHNcbiAqIGBkaXNjb25uZWN0YCBldmVudCwgd2hpY2ggaXMgcmVzcG9uc2libGUgZm9yIHRpZHlpbmcgdXAgdGhlIGxvY2stZmlsZSBpbiB0aGUgZXZlbnQgdGhhdCB0aGUgbWFpblxuICogcHJvY2VzcyBleGl0cyB1bmV4cGVjdGVkbHkuXG4gKlxuICogV2UgZWFnZXJseSBjcmVhdGUgdGhlIHVubG9ja2VyIGNoaWxkLXByb2Nlc3Mgc28gdGhhdCBpdCBtYXhpbWl6ZXMgdGhlIHRpbWUgYmVmb3JlIHRoZSBsb2NrLWZpbGVcbiAqIGlzIGFjdHVhbGx5IHdyaXR0ZW4sIHdoaWNoIG1ha2VzIGl0IHZlcnkgdW5saWtlbHkgdGhhdCB0aGUgdW5sb2NrZXIgd291bGQgbm90IGJlIHJlYWR5IGluIHRoZVxuICogY2FzZSB0aGF0IHRoZSBkZXZlbG9wZXIgaGl0cyBDdHJsLUMgb3IgY2xvc2VzIHRoZSB0ZXJtaW5hbCB3aXRoaW4gYSBmcmFjdGlvbiBvZiBhIHNlY29uZCBvZiB0aGVcbiAqIGxvY2stZmlsZSBiZWluZyBjcmVhdGVkLlxuICpcbiAqIFRoZSB3b3JzdCBjYXNlIHNjZW5hcmlvIGlzIHRoYXQgbmdjYyBpcyBraWxsZWQgdG9vIHF1aWNrbHkgYW5kIGxlYXZlcyBiZWhpbmQgYW4gb3JwaGFuZWRcbiAqIGxvY2stZmlsZS4gSW4gd2hpY2ggY2FzZSB0aGUgbmV4dCBuZ2NjIHJ1biB3aWxsIGRpc3BsYXkgYSBoZWxwZnVsIGVycm9yIG1lc3NhZ2UgYWJvdXQgZGVsZXRpbmdcbiAqIHRoZSBsb2NrLWZpbGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBMb2NrRmlsZVdpdGhDaGlsZFByb2Nlc3MgaW1wbGVtZW50cyBMb2NrRmlsZSB7XG4gIHBhdGg6IEFic29sdXRlRnNQYXRoO1xuICBwcml2YXRlIHVubG9ja2VyOiBDaGlsZFByb2Nlc3N8bnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZnM6IEZpbGVTeXN0ZW0sIHByb3RlY3RlZCBsb2dnZXI6IExvZ2dlcikge1xuICAgIHRoaXMucGF0aCA9IGdldExvY2tGaWxlUGF0aChmcyk7XG4gICAgdGhpcy51bmxvY2tlciA9IHRoaXMuY3JlYXRlVW5sb2NrZXIodGhpcy5wYXRoKTtcbiAgfVxuXG5cbiAgd3JpdGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudW5sb2NrZXIgPT09IG51bGwpIHtcbiAgICAgIC8vIEluIGNhc2Ugd2UgYWxyZWFkeSBkaXNjb25uZWN0ZWQgdGhlIHByZXZpb3VzIHVubG9ja2VyIGNoaWxkLXByb2Nlc3MsIHBlcmhhcHMgYnkgY2FsbGluZ1xuICAgICAgLy8gYHJlbW92ZSgpYC4gTm9ybWFsbHkgdGhlIExvY2tGaWxlIHNob3VsZCBvbmx5IGJlIHVzZWQgb25jZSBwZXIgaW5zdGFuY2UuXG4gICAgICB0aGlzLnVubG9ja2VyID0gdGhpcy5jcmVhdGVVbmxvY2tlcih0aGlzLnBhdGgpO1xuICAgIH1cbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgQXR0ZW1waW5nIHRvIHdyaXRlIGxvY2stZmlsZSBhdCAke3RoaXMucGF0aH0gd2l0aCBQSUQgJHtwcm9jZXNzLnBpZH1gKTtcbiAgICAvLyBUbyBhdm9pZCByYWNlIGNvbmRpdGlvbnMsIGNoZWNrIGZvciBleGlzdGVuY2Ugb2YgdGhlIGxvY2stZmlsZSBieSB0cnlpbmcgdG8gY3JlYXRlIGl0LlxuICAgIC8vIFRoaXMgd2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgZmlsZSBhbHJlYWR5IGV4aXN0cy5cbiAgICB0aGlzLmZzLndyaXRlRmlsZSh0aGlzLnBhdGgsIHByb2Nlc3MucGlkLnRvU3RyaW5nKCksIC8qIGV4Y2x1c2l2ZSAqLyB0cnVlKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgV3JpdHRlbiBsb2NrLWZpbGUgYXQgJHt0aGlzLnBhdGh9IHdpdGggUElEICR7cHJvY2Vzcy5waWR9YCk7XG4gIH1cblxuICByZWFkKCk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLmZzIGluc3RhbmNlb2YgQ2FjaGVkRmlsZVN5c3RlbSkge1xuICAgICAgICAvLyBUaGUgbG9jay1maWxlIGZpbGUgaXMgXCJ2b2xhdGlsZVwiLCBpdCBtaWdodCBiZSBjaGFuZ2VkIGJ5IGFuIGV4dGVybmFsIHByb2Nlc3MsXG4gICAgICAgIC8vIHNvIHdlIG11c3Qgbm90IHJlbHkgdXBvbiB0aGUgY2FjaGVkIHZhbHVlIHdoZW4gcmVhZGluZyBpdC5cbiAgICAgICAgdGhpcy5mcy5pbnZhbGlkYXRlQ2FjaGVzKHRoaXMucGF0aCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5mcy5yZWFkRmlsZSh0aGlzLnBhdGgpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuICd7dW5rbm93bn0nO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZSgpIHtcbiAgICByZW1vdmVMb2NrRmlsZSh0aGlzLmZzLCB0aGlzLmxvZ2dlciwgdGhpcy5wYXRoLCBwcm9jZXNzLnBpZC50b1N0cmluZygpKTtcbiAgICBpZiAodGhpcy51bmxvY2tlciAhPT0gbnVsbCkge1xuICAgICAgLy8gSWYgdGhlcmUgaXMgYW4gdW5sb2NrZXIgY2hpbGQtcHJvY2VzcyB0aGVuIGRpc2Nvbm5lY3QgZnJvbSBpdCBzbyB0aGF0IGl0IGNhbiBleGl0IGl0c2VsZi5cbiAgICAgIHRoaXMudW5sb2NrZXIuZGlzY29ubmVjdCgpO1xuICAgICAgdGhpcy51bmxvY2tlciA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZVVubG9ja2VyKHBhdGg6IEFic29sdXRlRnNQYXRoKTogQ2hpbGRQcm9jZXNzIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRm9ya2luZyB1bmxvY2tlciBjaGlsZC1wcm9jZXNzJyk7XG4gICAgY29uc3QgbG9nTGV2ZWwgPVxuICAgICAgICB0aGlzLmxvZ2dlci5sZXZlbCAhPT0gdW5kZWZpbmVkID8gdGhpcy5sb2dnZXIubGV2ZWwudG9TdHJpbmcoKSA6IExvZ0xldmVsLmluZm8udG9TdHJpbmcoKTtcbiAgICByZXR1cm4gZm9yayh0aGlzLmZzLnJlc29sdmUoX19kaXJuYW1lLCAnLi91bmxvY2tlci5qcycpLCBbcGF0aCwgbG9nTGV2ZWxdLCB7ZGV0YWNoZWQ6IHRydWV9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,44 @@
|
|
|
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/locking/lock_file_with_child_process/unlocker", ["require", "exports", "@angular/compiler-cli/src/ngtsc/file_system", "@angular/compiler-cli/ngcc/src/logging/console_logger", "@angular/compiler-cli/ngcc/src/locking/lock_file_with_child_process/util"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
/**
|
|
13
|
+
* @license
|
|
14
|
+
* Copyright Google Inc. All Rights Reserved.
|
|
15
|
+
*
|
|
16
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
17
|
+
* found in the LICENSE file at https://angular.io/license
|
|
18
|
+
*/
|
|
19
|
+
var file_system_1 = require("@angular/compiler-cli/src/ngtsc/file_system");
|
|
20
|
+
var console_logger_1 = require("@angular/compiler-cli/ngcc/src/logging/console_logger");
|
|
21
|
+
var util_1 = require("@angular/compiler-cli/ngcc/src/locking/lock_file_with_child_process/util");
|
|
22
|
+
/// <reference types="node" />
|
|
23
|
+
// This file is an entry-point for the child-process that is started by `LockFileWithChildProcess`
|
|
24
|
+
// to ensure that the lock-file is removed when the primary process exits unexpectedly.
|
|
25
|
+
// We have no choice but to use the node.js file-system here since we are in a separate process
|
|
26
|
+
// from the main ngcc run, which may be running a mock file-system from within a test.
|
|
27
|
+
var fs = new file_system_1.NodeJSFileSystem();
|
|
28
|
+
// We create a logger that has the same logging level as the parent process, since it should have
|
|
29
|
+
// been passed through as one of the args
|
|
30
|
+
var logLevel = parseInt(process.argv.pop(), 10);
|
|
31
|
+
var logger = new console_logger_1.ConsoleLogger(logLevel);
|
|
32
|
+
// We must store the parent PID now as it changes if the parent process is killed early
|
|
33
|
+
var ppid = process.ppid.toString();
|
|
34
|
+
// The path to the lock-file to remove should have been passed as one of the args
|
|
35
|
+
var lockFilePath = fs.resolve(process.argv.pop());
|
|
36
|
+
logger.debug("Starting unlocker at process " + process.pid + " on behalf of process " + ppid);
|
|
37
|
+
logger.debug("The lock-file path is " + lockFilePath);
|
|
38
|
+
/**
|
|
39
|
+
* When the parent process exits (for whatever reason) remove the loc-file if it exists and as long
|
|
40
|
+
* as it was one that was created by the parent process.
|
|
41
|
+
*/
|
|
42
|
+
process.on('disconnect', function () { util_1.removeLockFile(fs, logger, lockFilePath, ppid); });
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5sb2NrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbmdjYy9zcmMvbG9ja2luZy9sb2NrX2ZpbGVfd2l0aF9jaGlsZF9wcm9jZXNzL3VubG9ja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBQUE7Ozs7OztPQU1HO0lBQ0gsMkVBQW1FO0lBQ25FLHdGQUEyRDtJQUMzRCxpR0FBc0M7SUFFdEMsOEJBQThCO0lBRTlCLGtHQUFrRztJQUNsRyx1RkFBdUY7SUFFdkYsK0ZBQStGO0lBQy9GLHNGQUFzRjtJQUN0RixJQUFNLEVBQUUsR0FBRyxJQUFJLDhCQUFnQixFQUFFLENBQUM7SUFFbEMsaUdBQWlHO0lBQ2pHLHlDQUF5QztJQUN6QyxJQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRCxJQUFNLE1BQU0sR0FBRyxJQUFJLDhCQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFM0MsdUZBQXVGO0lBQ3ZGLElBQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFFckMsaUZBQWlGO0lBQ2pGLElBQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUksQ0FBQyxDQUFDO0lBRXRELE1BQU0sQ0FBQyxLQUFLLENBQUMsa0NBQWdDLE9BQU8sQ0FBQyxHQUFHLDhCQUF5QixJQUFNLENBQUMsQ0FBQztJQUN6RixNQUFNLENBQUMsS0FBSyxDQUFDLDJCQUF5QixZQUFjLENBQUMsQ0FBQztJQUV0RDs7O09BR0c7SUFDSCxPQUFPLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxjQUFRLHFCQUFjLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7Tm9kZUpTRmlsZVN5c3RlbX0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL25ndHNjL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7Q29uc29sZUxvZ2dlcn0gZnJvbSAnLi4vLi4vbG9nZ2luZy9jb25zb2xlX2xvZ2dlcic7XG5pbXBvcnQge3JlbW92ZUxvY2tGaWxlfSBmcm9tICcuL3V0aWwnO1xuXG4vLy8gPHJlZmVyZW5jZSB0eXBlcz1cIm5vZGVcIiAvPlxuXG4vLyBUaGlzIGZpbGUgaXMgYW4gZW50cnktcG9pbnQgZm9yIHRoZSBjaGlsZC1wcm9jZXNzIHRoYXQgaXMgc3RhcnRlZCBieSBgTG9ja0ZpbGVXaXRoQ2hpbGRQcm9jZXNzYFxuLy8gdG8gZW5zdXJlIHRoYXQgdGhlIGxvY2stZmlsZSBpcyByZW1vdmVkIHdoZW4gdGhlIHByaW1hcnkgcHJvY2VzcyBleGl0cyB1bmV4cGVjdGVkbHkuXG5cbi8vIFdlIGhhdmUgbm8gY2hvaWNlIGJ1dCB0byB1c2UgdGhlIG5vZGUuanMgZmlsZS1zeXN0ZW0gaGVyZSBzaW5jZSB3ZSBhcmUgaW4gYSBzZXBhcmF0ZSBwcm9jZXNzXG4vLyBmcm9tIHRoZSBtYWluIG5nY2MgcnVuLCB3aGljaCBtYXkgYmUgcnVubmluZyBhIG1vY2sgZmlsZS1zeXN0ZW0gZnJvbSB3aXRoaW4gYSB0ZXN0LlxuY29uc3QgZnMgPSBuZXcgTm9kZUpTRmlsZVN5c3RlbSgpO1xuXG4vLyBXZSBjcmVhdGUgYSBsb2dnZXIgdGhhdCBoYXMgdGhlIHNhbWUgbG9nZ2luZyBsZXZlbCBhcyB0aGUgcGFyZW50IHByb2Nlc3MsIHNpbmNlIGl0IHNob3VsZCBoYXZlXG4vLyBiZWVuIHBhc3NlZCB0aHJvdWdoIGFzIG9uZSBvZiB0aGUgYXJnc1xuY29uc3QgbG9nTGV2ZWwgPSBwYXJzZUludChwcm9jZXNzLmFyZ3YucG9wKCkgISwgMTApO1xuY29uc3QgbG9nZ2VyID0gbmV3IENvbnNvbGVMb2dnZXIobG9nTGV2ZWwpO1xuXG4vLyBXZSBtdXN0IHN0b3JlIHRoZSBwYXJlbnQgUElEIG5vdyBhcyBpdCBjaGFuZ2VzIGlmIHRoZSBwYXJlbnQgcHJvY2VzcyBpcyBraWxsZWQgZWFybHlcbmNvbnN0IHBwaWQgPSBwcm9jZXNzLnBwaWQudG9TdHJpbmcoKTtcblxuLy8gVGhlIHBhdGggdG8gdGhlIGxvY2stZmlsZSB0byByZW1vdmUgc2hvdWxkIGhhdmUgYmVlbiBwYXNzZWQgYXMgb25lIG9mIHRoZSBhcmdzXG5jb25zdCBsb2NrRmlsZVBhdGggPSBmcy5yZXNvbHZlKHByb2Nlc3MuYXJndi5wb3AoKSAhKTtcblxubG9nZ2VyLmRlYnVnKGBTdGFydGluZyB1bmxvY2tlciBhdCBwcm9jZXNzICR7cHJvY2Vzcy5waWR9IG9uIGJlaGFsZiBvZiBwcm9jZXNzICR7cHBpZH1gKTtcbmxvZ2dlci5kZWJ1ZyhgVGhlIGxvY2stZmlsZSBwYXRoIGlzICR7bG9ja0ZpbGVQYXRofWApO1xuXG4vKipcbiAqIFdoZW4gdGhlIHBhcmVudCBwcm9jZXNzIGV4aXRzIChmb3Igd2hhdGV2ZXIgcmVhc29uKSByZW1vdmUgdGhlIGxvYy1maWxlIGlmIGl0IGV4aXN0cyBhbmQgYXMgbG9uZ1xuICogYXMgaXQgd2FzIG9uZSB0aGF0IHdhcyBjcmVhdGVkIGJ5IHRoZSBwYXJlbnQgcHJvY2Vzcy5cbiAqL1xucHJvY2Vzcy5vbignZGlzY29ubmVjdCcsICgpID0+IHsgcmVtb3ZlTG9ja0ZpbGUoZnMsIGxvZ2dlciwgbG9ja0ZpbGVQYXRoLCBwcGlkKTsgfSk7XG4iXX0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/// <amd-module name="@angular/compiler-cli/ngcc/src/locking/lock_file_with_child_process/util" />
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright Google Inc. All Rights Reserved.
|
|
5
|
+
*
|
|
6
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
+
* found in the LICENSE file at https://angular.io/license
|
|
8
|
+
*/
|
|
9
|
+
import { AbsoluteFsPath, FileSystem } from '../../../../src/ngtsc/file_system';
|
|
10
|
+
import { Logger } from '../../logging/logger';
|
|
11
|
+
/**
|
|
12
|
+
* Remove the lock-file at the provided `lockFilePath` from the given file-system.
|
|
13
|
+
*
|
|
14
|
+
* It only removes the file if the pid stored in the file matches the provided `pid`.
|
|
15
|
+
* The provided `pid` is of the process that is exiting and so no longer needs to hold the lock.
|
|
16
|
+
*/
|
|
17
|
+
export declare function removeLockFile(fs: FileSystem, logger: Logger, lockFilePath: AbsoluteFsPath, pid: string): void;
|
|
@@ -0,0 +1,42 @@
|
|
|
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/locking/lock_file_with_child_process/util", ["require", "exports"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
/**
|
|
13
|
+
* Remove the lock-file at the provided `lockFilePath` from the given file-system.
|
|
14
|
+
*
|
|
15
|
+
* It only removes the file if the pid stored in the file matches the provided `pid`.
|
|
16
|
+
* The provided `pid` is of the process that is exiting and so no longer needs to hold the lock.
|
|
17
|
+
*/
|
|
18
|
+
function removeLockFile(fs, logger, lockFilePath, pid) {
|
|
19
|
+
try {
|
|
20
|
+
logger.debug("Attempting to remove lock-file at " + lockFilePath + ".");
|
|
21
|
+
var lockFilePid = fs.readFile(lockFilePath);
|
|
22
|
+
if (lockFilePid === pid) {
|
|
23
|
+
logger.debug("PIDs match (" + pid + "), so removing " + lockFilePath + ".");
|
|
24
|
+
fs.removeFile(lockFilePath);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
logger.debug("PIDs do not match (" + pid + " and " + lockFilePid + "), so not removing " + lockFilePath + ".");
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
if (e.code === 'ENOENT') {
|
|
32
|
+
logger.debug("The lock-file at " + lockFilePath + " was already removed.");
|
|
33
|
+
// File already removed so quietly exit
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
throw e;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.removeLockFile = removeLockFile;
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9uZ2NjL3NyYy9sb2NraW5nL2xvY2tfZmlsZV93aXRoX2NoaWxkX3Byb2Nlc3MvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQVVBOzs7OztPQUtHO0lBQ0gsU0FBZ0IsY0FBYyxDQUMxQixFQUFjLEVBQUUsTUFBYyxFQUFFLFlBQTRCLEVBQUUsR0FBVztRQUMzRSxJQUFJO1lBQ0YsTUFBTSxDQUFDLEtBQUssQ0FBQyx1Q0FBcUMsWUFBWSxNQUFHLENBQUMsQ0FBQztZQUNuRSxJQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzlDLElBQUksV0FBVyxLQUFLLEdBQUcsRUFBRTtnQkFDdkIsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBZSxHQUFHLHVCQUFrQixZQUFZLE1BQUcsQ0FBQyxDQUFDO2dCQUNsRSxFQUFFLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQzdCO2lCQUFNO2dCQUNMLE1BQU0sQ0FBQyxLQUFLLENBQ1Isd0JBQXNCLEdBQUcsYUFBUSxXQUFXLDJCQUFzQixZQUFZLE1BQUcsQ0FBQyxDQUFDO2FBQ3hGO1NBQ0Y7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQ3ZCLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0JBQW9CLFlBQVksMEJBQXVCLENBQUMsQ0FBQztnQkFDdEUsdUNBQXVDO2FBQ3hDO2lCQUFNO2dCQUNMLE1BQU0sQ0FBQyxDQUFDO2FBQ1Q7U0FDRjtJQUNILENBQUM7SUFwQkQsd0NBb0JDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtBYnNvbHV0ZUZzUGF0aCwgRmlsZVN5c3RlbX0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL25ndHNjL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7TG9nZ2VyfSBmcm9tICcuLi8uLi9sb2dnaW5nL2xvZ2dlcic7XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBsb2NrLWZpbGUgYXQgdGhlIHByb3ZpZGVkIGBsb2NrRmlsZVBhdGhgIGZyb20gdGhlIGdpdmVuIGZpbGUtc3lzdGVtLlxuICpcbiAqIEl0IG9ubHkgcmVtb3ZlcyB0aGUgZmlsZSBpZiB0aGUgcGlkIHN0b3JlZCBpbiB0aGUgZmlsZSBtYXRjaGVzIHRoZSBwcm92aWRlZCBgcGlkYC5cbiAqIFRoZSBwcm92aWRlZCBgcGlkYCBpcyBvZiB0aGUgcHJvY2VzcyB0aGF0IGlzIGV4aXRpbmcgYW5kIHNvIG5vIGxvbmdlciBuZWVkcyB0byBob2xkIHRoZSBsb2NrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlTG9ja0ZpbGUoXG4gICAgZnM6IEZpbGVTeXN0ZW0sIGxvZ2dlcjogTG9nZ2VyLCBsb2NrRmlsZVBhdGg6IEFic29sdXRlRnNQYXRoLCBwaWQ6IHN0cmluZykge1xuICB0cnkge1xuICAgIGxvZ2dlci5kZWJ1ZyhgQXR0ZW1wdGluZyB0byByZW1vdmUgbG9jay1maWxlIGF0ICR7bG9ja0ZpbGVQYXRofS5gKTtcbiAgICBjb25zdCBsb2NrRmlsZVBpZCA9IGZzLnJlYWRGaWxlKGxvY2tGaWxlUGF0aCk7XG4gICAgaWYgKGxvY2tGaWxlUGlkID09PSBwaWQpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgUElEcyBtYXRjaCAoJHtwaWR9KSwgc28gcmVtb3ZpbmcgJHtsb2NrRmlsZVBhdGh9LmApO1xuICAgICAgZnMucmVtb3ZlRmlsZShsb2NrRmlsZVBhdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2dnZXIuZGVidWcoXG4gICAgICAgICAgYFBJRHMgZG8gbm90IG1hdGNoICgke3BpZH0gYW5kICR7bG9ja0ZpbGVQaWR9KSwgc28gbm90IHJlbW92aW5nICR7bG9ja0ZpbGVQYXRofS5gKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgbG9nZ2VyLmRlYnVnKGBUaGUgbG9jay1maWxlIGF0ICR7bG9ja0ZpbGVQYXRofSB3YXMgYWxyZWFkeSByZW1vdmVkLmApO1xuICAgICAgLy8gRmlsZSBhbHJlYWR5IHJlbW92ZWQgc28gcXVpZXRseSBleGl0XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/// <amd-module name="@angular/compiler-cli/ngcc/src/locking/sync_locker" />
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright Google Inc. All Rights Reserved.
|
|
5
|
+
*
|
|
6
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
+
* found in the LICENSE file at https://angular.io/license
|
|
8
|
+
*/
|
|
9
|
+
import { LockFile } from './lock_file';
|
|
10
|
+
/**
|
|
11
|
+
* SyncLocker is used to prevent more than one instance of ngcc executing at the same time,
|
|
12
|
+
* when being called in a synchronous context.
|
|
13
|
+
*
|
|
14
|
+
* * When ngcc starts executing, it creates a file in the `compiler-cli/ngcc` folder.
|
|
15
|
+
* * If it finds one is already there then it fails with a suitable error message.
|
|
16
|
+
* * When ngcc completes executing, it removes the file so that future ngcc executions can start.
|
|
17
|
+
*/
|
|
18
|
+
export declare class SyncLocker {
|
|
19
|
+
private lockFile;
|
|
20
|
+
constructor(lockFile: LockFile);
|
|
21
|
+
/**
|
|
22
|
+
* Run the given function guarded by the lock file.
|
|
23
|
+
*
|
|
24
|
+
* @param fn the function to run.
|
|
25
|
+
* @returns the value returned from the `fn` call.
|
|
26
|
+
*/
|
|
27
|
+
lock<T>(fn: () => T): T;
|
|
28
|
+
/**
|
|
29
|
+
* Write a lock file to disk, or error if there is already one there.
|
|
30
|
+
*/
|
|
31
|
+
protected create(): void;
|
|
32
|
+
/**
|
|
33
|
+
* The lock-file already exists so raise a helpful error.
|
|
34
|
+
*/
|
|
35
|
+
protected handleExistingLockFile(): void;
|
|
36
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
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/locking/sync_locker", ["require", "exports"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
/**
|
|
13
|
+
* SyncLocker is used to prevent more than one instance of ngcc executing at the same time,
|
|
14
|
+
* when being called in a synchronous context.
|
|
15
|
+
*
|
|
16
|
+
* * When ngcc starts executing, it creates a file in the `compiler-cli/ngcc` folder.
|
|
17
|
+
* * If it finds one is already there then it fails with a suitable error message.
|
|
18
|
+
* * When ngcc completes executing, it removes the file so that future ngcc executions can start.
|
|
19
|
+
*/
|
|
20
|
+
var SyncLocker = /** @class */ (function () {
|
|
21
|
+
function SyncLocker(lockFile) {
|
|
22
|
+
this.lockFile = lockFile;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Run the given function guarded by the lock file.
|
|
26
|
+
*
|
|
27
|
+
* @param fn the function to run.
|
|
28
|
+
* @returns the value returned from the `fn` call.
|
|
29
|
+
*/
|
|
30
|
+
SyncLocker.prototype.lock = function (fn) {
|
|
31
|
+
this.create();
|
|
32
|
+
try {
|
|
33
|
+
return fn();
|
|
34
|
+
}
|
|
35
|
+
finally {
|
|
36
|
+
this.lockFile.remove();
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Write a lock file to disk, or error if there is already one there.
|
|
41
|
+
*/
|
|
42
|
+
SyncLocker.prototype.create = function () {
|
|
43
|
+
try {
|
|
44
|
+
this.lockFile.write();
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
if (e.code !== 'EEXIST') {
|
|
48
|
+
throw e;
|
|
49
|
+
}
|
|
50
|
+
this.handleExistingLockFile();
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* The lock-file already exists so raise a helpful error.
|
|
55
|
+
*/
|
|
56
|
+
SyncLocker.prototype.handleExistingLockFile = function () {
|
|
57
|
+
var pid = this.lockFile.read();
|
|
58
|
+
throw new Error("ngcc is already running at process with id " + pid + ".\n" +
|
|
59
|
+
"If you are running multiple builds in parallel then you should pre-process your node_modules via the command line ngcc tool before starting the builds;\n" +
|
|
60
|
+
"See https://v9.angular.io/guide/ivy#speeding-up-ngcc-compilation.\n" +
|
|
61
|
+
("(If you are sure no ngcc process is running then you should delete the lock-file at " + this.lockFile.path + ".)"));
|
|
62
|
+
};
|
|
63
|
+
return SyncLocker;
|
|
64
|
+
}());
|
|
65
|
+
exports.SyncLocker = SyncLocker;
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luY19sb2NrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbmdjYy9zcmMvbG9ja2luZy9zeW5jX2xvY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQVNBOzs7Ozs7O09BT0c7SUFDSDtRQUNFLG9CQUFvQixRQUFrQjtZQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQUcsQ0FBQztRQUUxQzs7Ozs7V0FLRztRQUNILHlCQUFJLEdBQUosVUFBUSxFQUFXO1lBQ2pCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNkLElBQUk7Z0JBQ0YsT0FBTyxFQUFFLEVBQUUsQ0FBQzthQUNiO29CQUFTO2dCQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDeEI7UUFDSCxDQUFDO1FBRUQ7O1dBRUc7UUFDTywyQkFBTSxHQUFoQjtZQUNFLElBQUk7Z0JBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUN2QjtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7b0JBQ3ZCLE1BQU0sQ0FBQyxDQUFDO2lCQUNUO2dCQUNELElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2FBQy9CO1FBQ0gsQ0FBQztRQUVEOztXQUVHO1FBQ08sMkNBQXNCLEdBQWhDO1lBQ0UsSUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQyxNQUFNLElBQUksS0FBSyxDQUNYLGdEQUE4QyxHQUFHLFFBQUs7Z0JBQ3RELDJKQUEySjtnQkFDM0oscUVBQXFFO2lCQUNyRSx5RkFBdUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQUksQ0FBQSxDQUFDLENBQUM7UUFDckgsQ0FBQztRQUNILGlCQUFDO0lBQUQsQ0FBQyxBQTNDRCxJQTJDQztJQTNDWSxnQ0FBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7TG9ja0ZpbGV9IGZyb20gJy4vbG9ja19maWxlJztcblxuLyoqXG4gKiBTeW5jTG9ja2VyIGlzIHVzZWQgdG8gcHJldmVudCBtb3JlIHRoYW4gb25lIGluc3RhbmNlIG9mIG5nY2MgZXhlY3V0aW5nIGF0IHRoZSBzYW1lIHRpbWUsXG4gKiB3aGVuIGJlaW5nIGNhbGxlZCBpbiBhIHN5bmNocm9ub3VzIGNvbnRleHQuXG4gKlxuICogKiBXaGVuIG5nY2Mgc3RhcnRzIGV4ZWN1dGluZywgaXQgY3JlYXRlcyBhIGZpbGUgaW4gdGhlIGBjb21waWxlci1jbGkvbmdjY2AgZm9sZGVyLlxuICogKiBJZiBpdCBmaW5kcyBvbmUgaXMgYWxyZWFkeSB0aGVyZSB0aGVuIGl0IGZhaWxzIHdpdGggYSBzdWl0YWJsZSBlcnJvciBtZXNzYWdlLlxuICogKiBXaGVuIG5nY2MgY29tcGxldGVzIGV4ZWN1dGluZywgaXQgcmVtb3ZlcyB0aGUgZmlsZSBzbyB0aGF0IGZ1dHVyZSBuZ2NjIGV4ZWN1dGlvbnMgY2FuIHN0YXJ0LlxuICovXG5leHBvcnQgY2xhc3MgU3luY0xvY2tlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9ja0ZpbGU6IExvY2tGaWxlKSB7fVxuXG4gIC8qKlxuICAgKiBSdW4gdGhlIGdpdmVuIGZ1bmN0aW9uIGd1YXJkZWQgYnkgdGhlIGxvY2sgZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIGZuIHRoZSBmdW5jdGlvbiB0byBydW4uXG4gICAqIEByZXR1cm5zIHRoZSB2YWx1ZSByZXR1cm5lZCBmcm9tIHRoZSBgZm5gIGNhbGwuXG4gICAqL1xuICBsb2NrPFQ+KGZuOiAoKSA9PiBUKTogVCB7XG4gICAgdGhpcy5jcmVhdGUoKTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGZuKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9ja0ZpbGUucmVtb3ZlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdyaXRlIGEgbG9jayBmaWxlIHRvIGRpc2ssIG9yIGVycm9yIGlmIHRoZXJlIGlzIGFscmVhZHkgb25lIHRoZXJlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZSgpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5sb2NrRmlsZS53cml0ZSgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlLmNvZGUgIT09ICdFRVhJU1QnKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgICB0aGlzLmhhbmRsZUV4aXN0aW5nTG9ja0ZpbGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGxvY2stZmlsZSBhbHJlYWR5IGV4aXN0cyBzbyByYWlzZSBhIGhlbHBmdWwgZXJyb3IuXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlRXhpc3RpbmdMb2NrRmlsZSgpOiB2b2lkIHtcbiAgICBjb25zdCBwaWQgPSB0aGlzLmxvY2tGaWxlLnJlYWQoKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBuZ2NjIGlzIGFscmVhZHkgcnVubmluZyBhdCBwcm9jZXNzIHdpdGggaWQgJHtwaWR9LlxcbmAgK1xuICAgICAgICBgSWYgeW91IGFyZSBydW5uaW5nIG11bHRpcGxlIGJ1aWxkcyBpbiBwYXJhbGxlbCB0aGVuIHlvdSBzaG91bGQgcHJlLXByb2Nlc3MgeW91ciBub2RlX21vZHVsZXMgdmlhIHRoZSBjb21tYW5kIGxpbmUgbmdjYyB0b29sIGJlZm9yZSBzdGFydGluZyB0aGUgYnVpbGRzO1xcbmAgK1xuICAgICAgICBgU2VlIGh0dHBzOi8vdjkuYW5ndWxhci5pby9ndWlkZS9pdnkjc3BlZWRpbmctdXAtbmdjYy1jb21waWxhdGlvbi5cXG5gICtcbiAgICAgICAgYChJZiB5b3UgYXJlIHN1cmUgbm8gbmdjYyBwcm9jZXNzIGlzIHJ1bm5pbmcgdGhlbiB5b3Ugc2hvdWxkIGRlbGV0ZSB0aGUgbG9jay1maWxlIGF0ICR7dGhpcy5sb2NrRmlsZS5wYXRofS4pYCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -6,16 +6,10 @@
|
|
|
6
6
|
* Use of this source code is governed by an MIT-style license that can be
|
|
7
7
|
* found in the LICENSE file at https://angular.io/license
|
|
8
8
|
*/
|
|
9
|
-
import { Logger } from './logger';
|
|
9
|
+
import { LogLevel, Logger } from './logger';
|
|
10
10
|
export declare const DEBUG: string;
|
|
11
11
|
export declare const WARN: string;
|
|
12
12
|
export declare const ERROR: string;
|
|
13
|
-
export declare enum LogLevel {
|
|
14
|
-
debug = 0,
|
|
15
|
-
info = 1,
|
|
16
|
-
warn = 2,
|
|
17
|
-
error = 3
|
|
18
|
-
}
|
|
19
13
|
/**
|
|
20
14
|
* A simple logger that outputs directly to the Console.
|
|
21
15
|
*
|
|
@@ -23,8 +17,8 @@ export declare enum LogLevel {
|
|
|
23
17
|
* constructor parameter.
|
|
24
18
|
*/
|
|
25
19
|
export declare class ConsoleLogger implements Logger {
|
|
26
|
-
|
|
27
|
-
constructor(
|
|
20
|
+
level: LogLevel;
|
|
21
|
+
constructor(level: LogLevel);
|
|
28
22
|
debug(...args: string[]): void;
|
|
29
23
|
info(...args: string[]): void;
|
|
30
24
|
warn(...args: string[]): void;
|
|
@@ -4,12 +4,20 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define("@angular/compiler-cli/ngcc/src/logging/console_logger", ["require", "exports", "tslib"], factory);
|
|
7
|
+
define("@angular/compiler-cli/ngcc/src/logging/console_logger", ["require", "exports", "tslib", "@angular/compiler-cli/ngcc/src/logging/logger"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
var tslib_1 = require("tslib");
|
|
13
|
+
/**
|
|
14
|
+
* @license
|
|
15
|
+
* Copyright Google Inc. All Rights Reserved.
|
|
16
|
+
*
|
|
17
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
18
|
+
* found in the LICENSE file at https://angular.io/license
|
|
19
|
+
*/
|
|
20
|
+
var logger_1 = require("@angular/compiler-cli/ngcc/src/logging/logger");
|
|
13
21
|
var RESET = '\x1b[0m';
|
|
14
22
|
var RED = '\x1b[31m';
|
|
15
23
|
var YELLOW = '\x1b[33m';
|
|
@@ -17,13 +25,6 @@
|
|
|
17
25
|
exports.DEBUG = BLUE + "Debug:" + RESET;
|
|
18
26
|
exports.WARN = YELLOW + "Warning:" + RESET;
|
|
19
27
|
exports.ERROR = RED + "Error:" + RESET;
|
|
20
|
-
var LogLevel;
|
|
21
|
-
(function (LogLevel) {
|
|
22
|
-
LogLevel[LogLevel["debug"] = 0] = "debug";
|
|
23
|
-
LogLevel[LogLevel["info"] = 1] = "info";
|
|
24
|
-
LogLevel[LogLevel["warn"] = 2] = "warn";
|
|
25
|
-
LogLevel[LogLevel["error"] = 3] = "error";
|
|
26
|
-
})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
|
|
27
28
|
/**
|
|
28
29
|
* A simple logger that outputs directly to the Console.
|
|
29
30
|
*
|
|
@@ -31,15 +32,15 @@
|
|
|
31
32
|
* constructor parameter.
|
|
32
33
|
*/
|
|
33
34
|
var ConsoleLogger = /** @class */ (function () {
|
|
34
|
-
function ConsoleLogger(
|
|
35
|
-
this.
|
|
35
|
+
function ConsoleLogger(level) {
|
|
36
|
+
this.level = level;
|
|
36
37
|
}
|
|
37
38
|
ConsoleLogger.prototype.debug = function () {
|
|
38
39
|
var args = [];
|
|
39
40
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
40
41
|
args[_i] = arguments[_i];
|
|
41
42
|
}
|
|
42
|
-
if (this.
|
|
43
|
+
if (this.level <= logger_1.LogLevel.debug)
|
|
43
44
|
console.debug.apply(console, tslib_1.__spread([exports.DEBUG], args));
|
|
44
45
|
};
|
|
45
46
|
ConsoleLogger.prototype.info = function () {
|
|
@@ -47,7 +48,7 @@
|
|
|
47
48
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
48
49
|
args[_i] = arguments[_i];
|
|
49
50
|
}
|
|
50
|
-
if (this.
|
|
51
|
+
if (this.level <= logger_1.LogLevel.info)
|
|
51
52
|
console.info.apply(console, tslib_1.__spread(args));
|
|
52
53
|
};
|
|
53
54
|
ConsoleLogger.prototype.warn = function () {
|
|
@@ -55,7 +56,7 @@
|
|
|
55
56
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
56
57
|
args[_i] = arguments[_i];
|
|
57
58
|
}
|
|
58
|
-
if (this.
|
|
59
|
+
if (this.level <= logger_1.LogLevel.warn)
|
|
59
60
|
console.warn.apply(console, tslib_1.__spread([exports.WARN], args));
|
|
60
61
|
};
|
|
61
62
|
ConsoleLogger.prototype.error = function () {
|
|
@@ -63,11 +64,11 @@
|
|
|
63
64
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
64
65
|
args[_i] = arguments[_i];
|
|
65
66
|
}
|
|
66
|
-
if (this.
|
|
67
|
+
if (this.level <= logger_1.LogLevel.error)
|
|
67
68
|
console.error.apply(console, tslib_1.__spread([exports.ERROR], args));
|
|
68
69
|
};
|
|
69
70
|
return ConsoleLogger;
|
|
70
71
|
}());
|
|
71
72
|
exports.ConsoleLogger = ConsoleLogger;
|
|
72
73
|
});
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc29sZV9sb2dnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbmdjYy9zcmMvbG9nZ2luZy9jb25zb2xlX2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFBQTs7Ozs7O09BTUc7SUFDSCx3RUFBMEM7SUFFMUMsSUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDO0lBQ3hCLElBQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQztJQUN2QixJQUFNLE1BQU0sR0FBRyxVQUFVLENBQUM7SUFDMUIsSUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDO0lBRVgsUUFBQSxLQUFLLEdBQU0sSUFBSSxjQUFTLEtBQU8sQ0FBQztJQUNoQyxRQUFBLElBQUksR0FBTSxNQUFNLGdCQUFXLEtBQU8sQ0FBQztJQUNuQyxRQUFBLEtBQUssR0FBTSxHQUFHLGNBQVMsS0FBTyxDQUFDO0lBRTVDOzs7OztPQUtHO0lBQ0g7UUFDRSx1QkFBbUIsS0FBZTtZQUFmLFVBQUssR0FBTCxLQUFLLENBQVU7UUFBRyxDQUFDO1FBQ3RDLDZCQUFLLEdBQUw7WUFBTSxjQUFpQjtpQkFBakIsVUFBaUIsRUFBakIscUJBQWlCLEVBQWpCLElBQWlCO2dCQUFqQix5QkFBaUI7O1lBQ3JCLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxpQkFBUSxDQUFDLEtBQUs7Z0JBQUUsT0FBTyxDQUFDLEtBQUssT0FBYixPQUFPLG9CQUFPLGFBQUssR0FBSyxJQUFJLEdBQUU7UUFDbEUsQ0FBQztRQUNELDRCQUFJLEdBQUo7WUFBSyxjQUFpQjtpQkFBakIsVUFBaUIsRUFBakIscUJBQWlCLEVBQWpCLElBQWlCO2dCQUFqQix5QkFBaUI7O1lBQ3BCLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxpQkFBUSxDQUFDLElBQUk7Z0JBQUUsT0FBTyxDQUFDLElBQUksT0FBWixPQUFPLG1CQUFTLElBQUksR0FBRTtRQUN6RCxDQUFDO1FBQ0QsNEJBQUksR0FBSjtZQUFLLGNBQWlCO2lCQUFqQixVQUFpQixFQUFqQixxQkFBaUIsRUFBakIsSUFBaUI7Z0JBQWpCLHlCQUFpQjs7WUFDcEIsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLGlCQUFRLENBQUMsSUFBSTtnQkFBRSxPQUFPLENBQUMsSUFBSSxPQUFaLE9BQU8sb0JBQU0sWUFBSSxHQUFLLElBQUksR0FBRTtRQUMvRCxDQUFDO1FBQ0QsNkJBQUssR0FBTDtZQUFNLGNBQWlCO2lCQUFqQixVQUFpQixFQUFqQixxQkFBaUIsRUFBakIsSUFBaUI7Z0JBQWpCLHlCQUFpQjs7WUFDckIsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLGlCQUFRLENBQUMsS0FBSztnQkFBRSxPQUFPLENBQUMsS0FBSyxPQUFiLE9BQU8sb0JBQU8sYUFBSyxHQUFLLElBQUksR0FBRTtRQUNsRSxDQUFDO1FBQ0gsb0JBQUM7SUFBRCxDQUFDLEFBZEQsSUFjQztJQWRZLHNDQUFhIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtMb2dMZXZlbCwgTG9nZ2VyfSBmcm9tICcuL2xvZ2dlcic7XG5cbmNvbnN0IFJFU0VUID0gJ1xceDFiWzBtJztcbmNvbnN0IFJFRCA9ICdcXHgxYlszMW0nO1xuY29uc3QgWUVMTE9XID0gJ1xceDFiWzMzbSc7XG5jb25zdCBCTFVFID0gJ1xceDFiWzM2bSc7XG5cbmV4cG9ydCBjb25zdCBERUJVRyA9IGAke0JMVUV9RGVidWc6JHtSRVNFVH1gO1xuZXhwb3J0IGNvbnN0IFdBUk4gPSBgJHtZRUxMT1d9V2FybmluZzoke1JFU0VUfWA7XG5leHBvcnQgY29uc3QgRVJST1IgPSBgJHtSRUR9RXJyb3I6JHtSRVNFVH1gO1xuXG4vKipcbiAqIEEgc2ltcGxlIGxvZ2dlciB0aGF0IG91dHB1dHMgZGlyZWN0bHkgdG8gdGhlIENvbnNvbGUuXG4gKlxuICogVGhlIGxvZyBtZXNzYWdlcyBjYW4gYmUgZmlsdGVyZWQgYmFzZWQgb24gc2V2ZXJpdHkgdmlhIHRoZSBgbG9nTGV2ZWxgXG4gKiBjb25zdHJ1Y3RvciBwYXJhbWV0ZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25zb2xlTG9nZ2VyIGltcGxlbWVudHMgTG9nZ2VyIHtcbiAgY29uc3RydWN0b3IocHVibGljIGxldmVsOiBMb2dMZXZlbCkge31cbiAgZGVidWcoLi4uYXJnczogc3RyaW5nW10pIHtcbiAgICBpZiAodGhpcy5sZXZlbCA8PSBMb2dMZXZlbC5kZWJ1ZykgY29uc29sZS5kZWJ1ZyhERUJVRywgLi4uYXJncyk7XG4gIH1cbiAgaW5mbyguLi5hcmdzOiBzdHJpbmdbXSkge1xuICAgIGlmICh0aGlzLmxldmVsIDw9IExvZ0xldmVsLmluZm8pIGNvbnNvbGUuaW5mbyguLi5hcmdzKTtcbiAgfVxuICB3YXJuKC4uLmFyZ3M6IHN0cmluZ1tdKSB7XG4gICAgaWYgKHRoaXMubGV2ZWwgPD0gTG9nTGV2ZWwud2FybikgY29uc29sZS53YXJuKFdBUk4sIC4uLmFyZ3MpO1xuICB9XG4gIGVycm9yKC4uLmFyZ3M6IHN0cmluZ1tdKSB7XG4gICAgaWYgKHRoaXMubGV2ZWwgPD0gTG9nTGV2ZWwuZXJyb3IpIGNvbnNvbGUuZXJyb3IoRVJST1IsIC4uLmFyZ3MpO1xuICB9XG59XG4iXX0=
|
|
@@ -11,8 +11,15 @@
|
|
|
11
11
|
* output from the standard ConsoleLogger.
|
|
12
12
|
*/
|
|
13
13
|
export interface Logger {
|
|
14
|
+
level: LogLevel;
|
|
14
15
|
debug(...args: string[]): void;
|
|
15
16
|
info(...args: string[]): void;
|
|
16
17
|
warn(...args: string[]): void;
|
|
17
18
|
error(...args: string[]): void;
|
|
18
19
|
}
|
|
20
|
+
export declare enum LogLevel {
|
|
21
|
+
debug = 0,
|
|
22
|
+
info = 1,
|
|
23
|
+
warn = 2,
|
|
24
|
+
error = 3
|
|
25
|
+
}
|
|
@@ -16,5 +16,12 @@
|
|
|
16
16
|
})(function (require, exports) {
|
|
17
17
|
"use strict";
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
var LogLevel;
|
|
20
|
+
(function (LogLevel) {
|
|
21
|
+
LogLevel[LogLevel["debug"] = 0] = "debug";
|
|
22
|
+
LogLevel[LogLevel["info"] = 1] = "info";
|
|
23
|
+
LogLevel[LogLevel["warn"] = 2] = "warn";
|
|
24
|
+
LogLevel[LogLevel["error"] = 3] = "error";
|
|
25
|
+
})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
|
|
19
26
|
});
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL25nY2Mvc3JjL2xvZ2dpbmcvbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7O0lBY0gsSUFBWSxRQUtYO0lBTEQsV0FBWSxRQUFRO1FBQ2xCLHlDQUFLLENBQUE7UUFDTCx1Q0FBSSxDQUFBO1FBQ0osdUNBQUksQ0FBQTtRQUNKLHlDQUFLLENBQUE7SUFDUCxDQUFDLEVBTFcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFLbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKlxuICogSW1wbGVtZW50IHRoaXMgaW50ZXJmYWNlIGlmIHlvdSB3YW50IHRvIHByb3ZpZGUgZGlmZmVyZW50IGxvZ2dpbmdcbiAqIG91dHB1dCBmcm9tIHRoZSBzdGFuZGFyZCBDb25zb2xlTG9nZ2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dlciB7XG4gIGxldmVsOiBMb2dMZXZlbDtcbiAgZGVidWcoLi4uYXJnczogc3RyaW5nW10pOiB2b2lkO1xuICBpbmZvKC4uLmFyZ3M6IHN0cmluZ1tdKTogdm9pZDtcbiAgd2FybiguLi5hcmdzOiBzdHJpbmdbXSk6IHZvaWQ7XG4gIGVycm9yKC4uLmFyZ3M6IHN0cmluZ1tdKTogdm9pZDtcbn1cblxuZXhwb3J0IGVudW0gTG9nTGV2ZWwge1xuICBkZWJ1ZyxcbiAgaW5mbyxcbiAgd2FybixcbiAgZXJyb3IsXG59XG4iXX0=
|