UNPKG

@angular/core

Version:

Angular - the core framework

79 lines 8.3 kB
/** * @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 */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; (function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define("@angular/core/schematics/utils/load_esm", ["require", "exports"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.loadCompilerCliMigrationsModule = exports.loadEsmModule = void 0; /** * This uses a dynamic import to load a module which may be ESM. * CommonJS code can load ESM code via a dynamic import. Unfortunately, TypeScript * will currently, unconditionally downlevel dynamic import into a require call. * require calls cannot load ESM code and will result in a runtime error. To workaround * this, a Function constructor is used to prevent TypeScript from changing the dynamic import. * Once TypeScript provides support for keeping the dynamic import this workaround can * be dropped. * This is only intended to be used with Angular framework packages. * * @param modulePath The path of the module to load. * @returns A Promise that resolves to the dynamically imported module. */ function loadEsmModule(modulePath) { return __awaiter(this, void 0, void 0, function* () { const namespaceObject = (yield new Function('modulePath', `return import(modulePath);`)(modulePath)); // If it is not ESM then the values needed will be stored in the `default` property. // TODO_ESM: This can be removed once `@angular/*` packages are ESM only. if (namespaceObject.default) { return namespaceObject.default; } else { return namespaceObject; } }); } exports.loadEsmModule = loadEsmModule; /** * Attempt to load the new `@angular/compiler-cli/private/migrations` entry. If not yet present * the previous deep imports are used to constructor an equivalent object. * * @returns A Promise that resolves to the dynamically imported compiler-cli private migrations * entry or an equivalent object if not available. */ function loadCompilerCliMigrationsModule() { return __awaiter(this, void 0, void 0, function* () { try { return yield loadEsmModule('@angular/compiler-cli/private/migrations'); } catch (_a) { // rules_nodejs currently does not support exports field entries. This is a temporary workaround // that leverages devmode currently being CommonJS. If that changes before rules_nodejs supports // exports then this workaround needs to be reworked. // TODO_ESM: This can be removed once Bazel supports exports fields. return require('@angular/compiler-cli/private/migrations.js'); } }); } exports.loadCompilerCliMigrationsModule = loadCompilerCliMigrationsModule; }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZF9lc20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvdXRpbHMvbG9hZF9lc20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBSUg7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsU0FBc0IsYUFBYSxDQUFJLFVBQXNCOztZQUMzRCxNQUFNLGVBQWUsR0FDakIsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLFlBQVksRUFBRSw0QkFBNEIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFFakYsb0ZBQW9GO1lBQ3BGLHlFQUF5RTtZQUN6RSxJQUFJLGVBQWUsQ0FBQyxPQUFPLEVBQUU7Z0JBQzNCLE9BQU8sZUFBZSxDQUFDLE9BQU8sQ0FBQzthQUNoQztpQkFBTTtnQkFDTCxPQUFPLGVBQWUsQ0FBQzthQUN4QjtRQUNILENBQUM7S0FBQTtJQVhELHNDQVdDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsU0FBc0IsK0JBQStCOztZQUVuRCxJQUFJO2dCQUNGLE9BQU8sTUFBTSxhQUFhLENBQUMsMENBQTBDLENBQUMsQ0FBQzthQUN4RTtZQUFDLFdBQU07Z0JBQ04sZ0dBQWdHO2dCQUNoRyxnR0FBZ0c7Z0JBQ2hHLHFEQUFxRDtnQkFDckQsb0VBQW9FO2dCQUNwRSxPQUFPLE9BQU8sQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO2FBQy9EO1FBQ0gsQ0FBQztLQUFBO0lBWEQsMEVBV0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtVUkx9IGZyb20gJ3VybCc7XG5cbi8qKlxuICogVGhpcyB1c2VzIGEgZHluYW1pYyBpbXBvcnQgdG8gbG9hZCBhIG1vZHVsZSB3aGljaCBtYXkgYmUgRVNNLlxuICogQ29tbW9uSlMgY29kZSBjYW4gbG9hZCBFU00gY29kZSB2aWEgYSBkeW5hbWljIGltcG9ydC4gVW5mb3J0dW5hdGVseSwgVHlwZVNjcmlwdFxuICogd2lsbCBjdXJyZW50bHksIHVuY29uZGl0aW9uYWxseSBkb3dubGV2ZWwgZHluYW1pYyBpbXBvcnQgaW50byBhIHJlcXVpcmUgY2FsbC5cbiAqIHJlcXVpcmUgY2FsbHMgY2Fubm90IGxvYWQgRVNNIGNvZGUgYW5kIHdpbGwgcmVzdWx0IGluIGEgcnVudGltZSBlcnJvci4gVG8gd29ya2Fyb3VuZFxuICogdGhpcywgYSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyB1c2VkIHRvIHByZXZlbnQgVHlwZVNjcmlwdCBmcm9tIGNoYW5naW5nIHRoZSBkeW5hbWljIGltcG9ydC5cbiAqIE9uY2UgVHlwZVNjcmlwdCBwcm92aWRlcyBzdXBwb3J0IGZvciBrZWVwaW5nIHRoZSBkeW5hbWljIGltcG9ydCB0aGlzIHdvcmthcm91bmQgY2FuXG4gKiBiZSBkcm9wcGVkLlxuICogVGhpcyBpcyBvbmx5IGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aCBBbmd1bGFyIGZyYW1ld29yayBwYWNrYWdlcy5cbiAqXG4gKiBAcGFyYW0gbW9kdWxlUGF0aCBUaGUgcGF0aCBvZiB0aGUgbW9kdWxlIHRvIGxvYWQuXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgZHluYW1pY2FsbHkgaW1wb3J0ZWQgbW9kdWxlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEVzbU1vZHVsZTxUPihtb2R1bGVQYXRoOiBzdHJpbmd8VVJMKTogUHJvbWlzZTxUPiB7XG4gIGNvbnN0IG5hbWVzcGFjZU9iamVjdCA9XG4gICAgICAoYXdhaXQgbmV3IEZ1bmN0aW9uKCdtb2R1bGVQYXRoJywgYHJldHVybiBpbXBvcnQobW9kdWxlUGF0aCk7YCkobW9kdWxlUGF0aCkpO1xuXG4gIC8vIElmIGl0IGlzIG5vdCBFU00gdGhlbiB0aGUgdmFsdWVzIG5lZWRlZCB3aWxsIGJlIHN0b3JlZCBpbiB0aGUgYGRlZmF1bHRgIHByb3BlcnR5LlxuICAvLyBUT0RPX0VTTTogVGhpcyBjYW4gYmUgcmVtb3ZlZCBvbmNlIGBAYW5ndWxhci8qYCBwYWNrYWdlcyBhcmUgRVNNIG9ubHkuXG4gIGlmIChuYW1lc3BhY2VPYmplY3QuZGVmYXVsdCkge1xuICAgIHJldHVybiBuYW1lc3BhY2VPYmplY3QuZGVmYXVsdDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbmFtZXNwYWNlT2JqZWN0O1xuICB9XG59XG5cbi8qKlxuICogQXR0ZW1wdCB0byBsb2FkIHRoZSBuZXcgYEBhbmd1bGFyL2NvbXBpbGVyLWNsaS9wcml2YXRlL21pZ3JhdGlvbnNgIGVudHJ5LiBJZiBub3QgeWV0IHByZXNlbnRcbiAqIHRoZSBwcmV2aW91cyBkZWVwIGltcG9ydHMgYXJlIHVzZWQgdG8gY29uc3RydWN0b3IgYW4gZXF1aXZhbGVudCBvYmplY3QuXG4gKlxuICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGR5bmFtaWNhbGx5IGltcG9ydGVkIGNvbXBpbGVyLWNsaSBwcml2YXRlIG1pZ3JhdGlvbnNcbiAqIGVudHJ5IG9yIGFuIGVxdWl2YWxlbnQgb2JqZWN0IGlmIG5vdCBhdmFpbGFibGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkQ29tcGlsZXJDbGlNaWdyYXRpb25zTW9kdWxlKCk6XG4gICAgUHJvbWlzZTx0eXBlb2YgaW1wb3J0KCdAYW5ndWxhci9jb21waWxlci1jbGkvcHJpdmF0ZS9taWdyYXRpb25zJyk+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgbG9hZEVzbU1vZHVsZSgnQGFuZ3VsYXIvY29tcGlsZXItY2xpL3ByaXZhdGUvbWlncmF0aW9ucycpO1xuICB9IGNhdGNoIHtcbiAgICAvLyBydWxlc19ub2RlanMgY3VycmVudGx5IGRvZXMgbm90IHN1cHBvcnQgZXhwb3J0cyBmaWVsZCBlbnRyaWVzLiBUaGlzIGlzIGEgdGVtcG9yYXJ5IHdvcmthcm91bmRcbiAgICAvLyB0aGF0IGxldmVyYWdlcyBkZXZtb2RlIGN1cnJlbnRseSBiZWluZyBDb21tb25KUy4gSWYgdGhhdCBjaGFuZ2VzIGJlZm9yZSBydWxlc19ub2RlanMgc3VwcG9ydHNcbiAgICAvLyBleHBvcnRzIHRoZW4gdGhpcyB3b3JrYXJvdW5kIG5lZWRzIHRvIGJlIHJld29ya2VkLlxuICAgIC8vIFRPRE9fRVNNOiBUaGlzIGNhbiBiZSByZW1vdmVkIG9uY2UgQmF6ZWwgc3VwcG9ydHMgZXhwb3J0cyBmaWVsZHMuXG4gICAgcmV0dXJuIHJlcXVpcmUoJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9wcml2YXRlL21pZ3JhdGlvbnMuanMnKTtcbiAgfVxufVxuIl19