| (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/migrations/relative-link-resolution/transform", ["require", "exports", "typescript"], factory); |
| } |
| })(function (require, exports) { |
| "use strict"; |
| Object.defineProperty(exports, "__esModule", { value: true }); |
| exports.RelativeLinkResolutionTransform = void 0; |
| /** |
| * @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 |
| */ |
| const ts = require("typescript"); |
| const RELATIVE_LINK_RESOLUTION = 'relativeLinkResolution'; |
| class RelativeLinkResolutionTransform { |
| constructor(getUpdateRecorder) { |
| this.getUpdateRecorder = getUpdateRecorder; |
| this.printer = ts.createPrinter(); |
| } |
| /** Migrate the ExtraOptions#RelativeLinkResolution property assignments. */ |
| migrateRouterModuleForRootCalls(calls) { |
| calls.forEach(c => { |
| this._updateCallExpressionWithoutExtraOptions(c); |
| }); |
| } |
| migrateObjectLiterals(vars) { |
| vars.forEach(v => this._maybeUpdateLiteral(v)); |
| } |
| _updateCallExpressionWithoutExtraOptions(callExpression) { |
| const args = callExpression.arguments; |
| const emptyLiteral = ts.createObjectLiteral(); |
| const newNode = ts.updateCall(callExpression, callExpression.expression, callExpression.typeArguments, [args[0], this._getMigratedLiteralExpression(emptyLiteral)]); |
| this._updateNode(callExpression, newNode); |
| } |
| _getMigratedLiteralExpression(literal) { |
| if (literal.properties.some(prop => ts.isPropertyAssignment(prop) && |
| prop.name.getText() === RELATIVE_LINK_RESOLUTION)) { |
| // literal already defines a value for relativeLinkResolution. Skip it |
| return literal; |
| } |
| const legacyExpression = ts.createPropertyAssignment(RELATIVE_LINK_RESOLUTION, ts.createIdentifier(`'legacy'`)); |
| return ts.updateObjectLiteral(literal, [...literal.properties, legacyExpression]); |
| } |
| _maybeUpdateLiteral(literal) { |
| const updatedLiteral = this._getMigratedLiteralExpression(literal); |
| if (updatedLiteral !== literal) { |
| this._updateNode(literal, updatedLiteral); |
| } |
| } |
| _updateNode(node, newNode) { |
| const newText = this.printer.printNode(ts.EmitHint.Unspecified, newNode, node.getSourceFile()); |
| const recorder = this.getUpdateRecorder(node.getSourceFile()); |
| recorder.updateNode(node, newText); |
| } |
| } |
| exports.RelativeLinkResolutionTransform = RelativeLinkResolutionTransform; |
| }); |
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zY2hlbWF0aWNzL21pZ3JhdGlvbnMvcmVsYXRpdmUtbGluay1yZXNvbHV0aW9uL3RyYW5zZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFBQTs7Ozs7O09BTUc7SUFDSCxpQ0FBaUM7SUFLakMsTUFBTSx3QkFBd0IsR0FBRyx3QkFBd0IsQ0FBQztJQUUxRCxNQUFhLCtCQUErQjtRQUcxQyxZQUFvQixpQkFBd0Q7WUFBeEQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF1QztZQUZwRSxZQUFPLEdBQUcsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRTBDLENBQUM7UUFFaEYsNEVBQTRFO1FBQzVFLCtCQUErQixDQUFDLEtBQTBCO1lBQ3hELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxxQkFBcUIsQ0FBQyxJQUFrQztZQUN0RCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUVPLHdDQUF3QyxDQUFDLGNBQWlDO1lBQ2hGLE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUM7WUFDdEMsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDOUMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FDekIsY0FBYyxFQUFFLGNBQWMsQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLGFBQWEsRUFDdkUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBRU8sNkJBQTZCLENBQUMsT0FBbUM7WUFDdkUsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLHdCQUF3QixDQUFDLEVBQUU7Z0JBQzdELHNFQUFzRTtnQkFDdEUsT0FBTyxPQUFPLENBQUM7YUFDaEI7WUFDRCxNQUFNLGdCQUFnQixHQUNsQixFQUFFLENBQUMsd0JBQXdCLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDM0YsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUNwRixDQUFDO1FBRU8sbUJBQW1CLENBQUMsT0FBbUM7WUFDN0QsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25FLElBQUksY0FBYyxLQUFLLE9BQU8sRUFBRTtnQkFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7YUFDM0M7UUFDSCxDQUFDO1FBRU8sV0FBVyxDQUFDLElBQWEsRUFBRSxPQUFnQjtZQUNqRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFDL0YsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQzlELFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLENBQUM7S0FDRjtJQWpERCwwRUFpREMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge1VwZGF0ZVJlY29yZGVyfSBmcm9tICcuL3VwZGF0ZV9yZWNvcmRlcic7XG5cblxuY29uc3QgUkVMQVRJVkVfTElOS19SRVNPTFVUSU9OID0gJ3JlbGF0aXZlTGlua1Jlc29sdXRpb24nO1xuXG5leHBvcnQgY2xhc3MgUmVsYXRpdmVMaW5rUmVzb2x1dGlvblRyYW5zZm9ybSB7XG4gIHByaXZhdGUgcHJpbnRlciA9IHRzLmNyZWF0ZVByaW50ZXIoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGdldFVwZGF0ZVJlY29yZGVyOiAoc2Y6IHRzLlNvdXJjZUZpbGUpID0+IFVwZGF0ZVJlY29yZGVyKSB7fVxuXG4gIC8qKiBNaWdyYXRlIHRoZSBFeHRyYU9wdGlvbnMjUmVsYXRpdmVMaW5rUmVzb2x1dGlvbiBwcm9wZXJ0eSBhc3NpZ25tZW50cy4gKi9cbiAgbWlncmF0ZVJvdXRlck1vZHVsZUZvclJvb3RDYWxscyhjYWxsczogdHMuQ2FsbEV4cHJlc3Npb25bXSkge1xuICAgIGNhbGxzLmZvckVhY2goYyA9PiB7XG4gICAgICB0aGlzLl91cGRhdGVDYWxsRXhwcmVzc2lvbldpdGhvdXRFeHRyYU9wdGlvbnMoYyk7XG4gICAgfSk7XG4gIH1cblxuICBtaWdyYXRlT2JqZWN0TGl0ZXJhbHModmFyczogdHMuT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb25bXSkge1xuICAgIHZhcnMuZm9yRWFjaCh2ID0+IHRoaXMuX21heWJlVXBkYXRlTGl0ZXJhbCh2KSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVDYWxsRXhwcmVzc2lvbldpdGhvdXRFeHRyYU9wdGlvbnMoY2FsbEV4cHJlc3Npb246IHRzLkNhbGxFeHByZXNzaW9uKSB7XG4gICAgY29uc3QgYXJncyA9IGNhbGxFeHByZXNzaW9uLmFyZ3VtZW50cztcbiAgICBjb25zdCBlbXB0eUxpdGVyYWwgPSB0cy5jcmVhdGVPYmplY3RMaXRlcmFsKCk7XG4gICAgY29uc3QgbmV3Tm9kZSA9IHRzLnVwZGF0ZUNhbGwoXG4gICAgICAgIGNhbGxFeHByZXNzaW9uLCBjYWxsRXhwcmVzc2lvbi5leHByZXNzaW9uLCBjYWxsRXhwcmVzc2lvbi50eXBlQXJndW1lbnRzLFxuICAgICAgICBbYXJnc1swXSwgdGhpcy5fZ2V0TWlncmF0ZWRMaXRlcmFsRXhwcmVzc2lvbihlbXB0eUxpdGVyYWwpXSk7XG4gICAgdGhpcy5fdXBkYXRlTm9kZShjYWxsRXhwcmVzc2lvbiwgbmV3Tm9kZSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRNaWdyYXRlZExpdGVyYWxFeHByZXNzaW9uKGxpdGVyYWw6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9uKSB7XG4gICAgaWYgKGxpdGVyYWwucHJvcGVydGllcy5zb21lKFxuICAgICAgICAgICAgcHJvcCA9PiB0cy5pc1Byb3BlcnR5QXNzaWdubWVudChwcm9wKSAmJlxuICAgICAgICAgICAgICAgIHByb3AubmFtZS5nZXRUZXh0KCkgPT09IFJFTEFUSVZFX0xJTktfUkVTT0xVVElPTikpIHtcbiAgICAgIC8vIGxpdGVyYWwgYWxyZWFkeSBkZWZpbmVzIGEgdmFsdWUgZm9yIHJlbGF0aXZlTGlua1Jlc29sdXRpb24uIFNraXAgaXRcbiAgICAgIHJldHVybiBsaXRlcmFsO1xuICAgIH1cbiAgICBjb25zdCBsZWdhY3lFeHByZXNzaW9uID1cbiAgICAgICAgdHMuY3JlYXRlUHJvcGVydHlBc3NpZ25tZW50KFJFTEFUSVZFX0xJTktfUkVTT0xVVElPTiwgdHMuY3JlYXRlSWRlbnRpZmllcihgJ2xlZ2FjeSdgKSk7XG4gICAgcmV0dXJuIHRzLnVwZGF0ZU9iamVjdExpdGVyYWwobGl0ZXJhbCwgWy4uLmxpdGVyYWwucHJvcGVydGllcywgbGVnYWN5RXhwcmVzc2lvbl0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbWF5YmVVcGRhdGVMaXRlcmFsKGxpdGVyYWw6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9uKSB7XG4gICAgY29uc3QgdXBkYXRlZExpdGVyYWwgPSB0aGlzLl9nZXRNaWdyYXRlZExpdGVyYWxFeHByZXNzaW9uKGxpdGVyYWwpO1xuICAgIGlmICh1cGRhdGVkTGl0ZXJhbCAhPT0gbGl0ZXJhbCkge1xuICAgICAgdGhpcy5fdXBkYXRlTm9kZShsaXRlcmFsLCB1cGRhdGVkTGl0ZXJhbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlTm9kZShub2RlOiB0cy5Ob2RlLCBuZXdOb2RlOiB0cy5Ob2RlKSB7XG4gICAgY29uc3QgbmV3VGV4dCA9IHRoaXMucHJpbnRlci5wcmludE5vZGUodHMuRW1pdEhpbnQuVW5zcGVjaWZpZWQsIG5ld05vZGUsIG5vZGUuZ2V0U291cmNlRmlsZSgpKTtcbiAgICBjb25zdCByZWNvcmRlciA9IHRoaXMuZ2V0VXBkYXRlUmVjb3JkZXIobm9kZS5nZXRTb3VyY2VGaWxlKCkpO1xuICAgIHJlY29yZGVyLnVwZGF0ZU5vZGUobm9kZSwgbmV3VGV4dCk7XG4gIH1cbn1cbiJdfQ== |