@angular/core
Version:
Angular - the core framework
48 lines • 5.55 kB
JavaScript
/**
* @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
*/
(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/activated-route-snapshot-fragment/util", ["require", "exports", "typescript", "@angular/core/schematics/utils/typescript/nodes", "@angular/core/schematics/utils/typescript/symbol"], factory);
}
})(function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.migrateActivatedRouteSnapshotFragment = exports.findFragmentAccesses = void 0;
const ts = require("typescript");
const nodes_1 = require("@angular/core/schematics/utils/typescript/nodes");
const symbol_1 = require("@angular/core/schematics/utils/typescript/symbol");
/**
* Finds all the accesses of `ActivatedRouteSnapshot.fragment`
* that need to be migrated within a particular file.
*/
function findFragmentAccesses(typeChecker, sourceFile) {
const results = new Set();
sourceFile.forEachChild(function walk(node) {
if (ts.isPropertyAccessExpression(node) && node.name.text === 'fragment' &&
!results.has(node) && !nodes_1.isNullCheck(node) && !nodes_1.isSafeAccess(node) &&
symbol_1.hasOneOfTypes(typeChecker, node.expression, ['ActivatedRouteSnapshot']) &&
symbol_1.isNullableType(typeChecker, node)) {
results.add(node);
}
node.forEachChild(walk);
});
return results;
}
exports.findFragmentAccesses = findFragmentAccesses;
/** Migrates an `ActivatedRouteSnapshot.fragment` access. */
function migrateActivatedRouteSnapshotFragment(node) {
// Turns `foo.fragment` into `foo.fragment!`.
return ts.createNonNullExpression(node);
}
exports.migrateActivatedRouteSnapshotFragment = migrateActivatedRouteSnapshotFragment;
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy9taWdyYXRpb25zL2FjdGl2YXRlZC1yb3V0ZS1zbmFwc2hvdC1mcmFnbWVudC91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQUVILGlDQUFpQztJQUNqQywyRUFBdUU7SUFDdkUsNkVBQTRFO0lBRTVFOzs7T0FHRztJQUNILFNBQWdCLG9CQUFvQixDQUNoQyxXQUEyQixFQUFFLFVBQXlCO1FBQ3hELE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxFQUErQixDQUFDO1FBRXZELFVBQVUsQ0FBQyxZQUFZLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBYTtZQUNqRCxJQUFJLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxVQUFVO2dCQUNwRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQy9ELHNCQUFhLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO2dCQUN2RSx1QkFBYyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNuQjtZQUVELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBaEJELG9EQWdCQztJQUVELDREQUE0RDtJQUM1RCxTQUFnQixxQ0FBcUMsQ0FBQyxJQUFpQztRQUNyRiw2Q0FBNkM7UUFDN0MsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUhELHNGQUdDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtpc051bGxDaGVjaywgaXNTYWZlQWNjZXNzfSBmcm9tICcuLi8uLi91dGlscy90eXBlc2NyaXB0L25vZGVzJztcbmltcG9ydCB7aGFzT25lT2ZUeXBlcywgaXNOdWxsYWJsZVR5cGV9IGZyb20gJy4uLy4uL3V0aWxzL3R5cGVzY3JpcHQvc3ltYm9sJztcblxuLyoqXG4gKiBGaW5kcyBhbGwgdGhlIGFjY2Vzc2VzIG9mIGBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LmZyYWdtZW50YFxuICogdGhhdCBuZWVkIHRvIGJlIG1pZ3JhdGVkIHdpdGhpbiBhIHBhcnRpY3VsYXIgZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRGcmFnbWVudEFjY2Vzc2VzKFxuICAgIHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlciwgc291cmNlRmlsZTogdHMuU291cmNlRmlsZSk6IFNldDx0cy5Qcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24+IHtcbiAgY29uc3QgcmVzdWx0cyA9IG5ldyBTZXQ8dHMuUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uPigpO1xuXG4gIHNvdXJjZUZpbGUuZm9yRWFjaENoaWxkKGZ1bmN0aW9uIHdhbGsobm9kZTogdHMuTm9kZSkge1xuICAgIGlmICh0cy5pc1Byb3BlcnR5QWNjZXNzRXhwcmVzc2lvbihub2RlKSAmJiBub2RlLm5hbWUudGV4dCA9PT0gJ2ZyYWdtZW50JyAmJlxuICAgICAgICAhcmVzdWx0cy5oYXMobm9kZSkgJiYgIWlzTnVsbENoZWNrKG5vZGUpICYmICFpc1NhZmVBY2Nlc3Mobm9kZSkgJiZcbiAgICAgICAgaGFzT25lT2ZUeXBlcyh0eXBlQ2hlY2tlciwgbm9kZS5leHByZXNzaW9uLCBbJ0FjdGl2YXRlZFJvdXRlU25hcHNob3QnXSkgJiZcbiAgICAgICAgaXNOdWxsYWJsZVR5cGUodHlwZUNoZWNrZXIsIG5vZGUpKSB7XG4gICAgICByZXN1bHRzLmFkZChub2RlKTtcbiAgICB9XG5cbiAgICBub2RlLmZvckVhY2hDaGlsZCh3YWxrKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJlc3VsdHM7XG59XG5cbi8qKiBNaWdyYXRlcyBhbiBgQWN0aXZhdGVkUm91dGVTbmFwc2hvdC5mcmFnbWVudGAgYWNjZXNzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1pZ3JhdGVBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90RnJhZ21lbnQobm9kZTogdHMuUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKTogdHMuTm9kZSB7XG4gIC8vIFR1cm5zIGBmb28uZnJhZ21lbnRgIGludG8gYGZvby5mcmFnbWVudCFgLlxuICByZXR1cm4gdHMuY3JlYXRlTm9uTnVsbEV4cHJlc3Npb24obm9kZSk7XG59XG4iXX0=