docs/libs/typescript.js
function topLevelItems(root) {
            var topLevel = [];
            function recur(item) {
                if (isTopLevel(item)) {
                    topLevel.push(item);
                    if (item.children) {
                        for (var _i = 0, _a = item.children; _i < _a.length; _i++) {
                            var child = _a[_i];
                            recur(child);
                        }
                    }
                }
            }
            recur(root);
            return topLevel;
            function isTopLevel(item) {
                switch (navigationBarNodeKind(item)) {
                    case 221 /* ClassDeclaration */:
                    case 192 /* ClassExpression */:
                    case 224 /* EnumDeclaration */:
                    case 222 /* InterfaceDeclaration */:
                    case 225 /* ModuleDeclaration */:
                    case 256 /* SourceFile */:
                    case 223 /* TypeAliasDeclaration */:
                    case 279 /* JSDocTypedefTag */:
                        return true;
                    case 148 /* Constructor */:
                    case 147 /* MethodDeclaration */:
                    case 149 /* GetAccessor */:
                    case 150 /* SetAccessor */:
                        return hasSomeImportantChild(item);
                    case 180 /* ArrowFunction */:
                    case 220 /* FunctionDeclaration */:
                    case 179 /* FunctionExpression */:
                        return isTopLevelFunctionDeclaration(item);
                    default:
                        return false;
                }
                function isTopLevelFunctionDeclaration(item) {
                    if (!item.node.body) {
                        return false;
                    }
                    switch (navigationBarNodeKind(item.parent)) {
                        case 226 /* ModuleBlock */:
                        case 256 /* SourceFile */:
                        case 147 /* MethodDeclaration */:
                        case 148 /* Constructor */:
                            return true;
                        default:
                            return hasSomeImportantChild(item);
                    }
                }
                function hasSomeImportantChild(item) {
                    return ts.forEach(item.children, function (child) {
                        var childKind = navigationBarNodeKind(child);
                        return childKind !== 218 /* VariableDeclaration */ && childKind !== 169 /* BindingElement */;
                    });
                }
            }
        }
function topLevelItems(root) {
            var topLevel = [];
            function recur(item) {
                if (isTopLevel(item)) {
                    topLevel.push(item);
                    if (item.children) {
                        for (var _i = 0, _a = item.children; _i < _a.length; _i++) {
                            var child = _a[_i];
                            recur(child);
                        }
                    }
                }
            }
            recur(root);
            return topLevel;
            function isTopLevel(item) {
                switch (navigationBarNodeKind(item)) {
                    case 221 /* ClassDeclaration */:
                    case 192 /* ClassExpression */:
                    case 224 /* EnumDeclaration */:
                    case 222 /* InterfaceDeclaration */:
                    case 225 /* ModuleDeclaration */:
                    case 256 /* SourceFile */:
                    case 223 /* TypeAliasDeclaration */:
                    case 279 /* JSDocTypedefTag */:
                        return true;
                    case 148 /* Constructor */:
                    case 147 /* MethodDeclaration */:
                    case 149 /* GetAccessor */:
                    case 150 /* SetAccessor */:
                        return hasSomeImportantChild(item);
                    case 180 /* ArrowFunction */:
                    case 220 /* FunctionDeclaration */:
                    case 179 /* FunctionExpression */:
                        return isTopLevelFunctionDeclaration(item);
                    default:
                        return false;
                }
                function isTopLevelFunctionDeclaration(item) {
                    if (!item.node.body) {
                        return false;
                    }
                    switch (navigationBarNodeKind(item.parent)) {
                        case 226 /* ModuleBlock */:
                        case 256 /* SourceFile */:
                        case 147 /* MethodDeclaration */:
                        case 148 /* Constructor */:
                            return true;
                        default:
                            return hasSomeImportantChild(item);
                    }
                }
                function hasSomeImportantChild(item) {
                    return ts.forEach(item.children, function (child) {
                        var childKind = navigationBarNodeKind(child);
                        return childKind !== 218 /* VariableDeclaration */ && childKind !== 169 /* BindingElement */;
                    });
                }
            }
        }
function topLevelItems ( root ) { var topLevel = [ ] ; function recur ( item ) { if ( isTopLevel ( item ) ) { topLevel . push ( item ) ; if ( item . children ) { for ( var _i = 0 , _a = item . children ; _i < _a . length ; _i ++ ) { var child = _a [ _i ] ; recur ( child ) ; } } } } recur ( root ) ; return topLevel ; function isTopLevel ( item ) { switch ( navigationBarNodeKind ( item ) ) { case 221 /* ClassDeclaration */ : case 192 /* ClassExpression */ : case 224 /* EnumDeclaration */ : case 222 /* InterfaceDeclaration */ : case 225 /* ModuleDeclaration */ : case 256 /* SourceFile */ : case 223 /* TypeAliasDeclaration */ : case 279 /* JSDocTypedefTag */ : return true ; case 148 /* Constructor */ : case 147 /* MethodDeclaration */ : case 149 /* GetAccessor */ : case 150 /* SetAccessor */ : return hasSomeImportantChild ( item ) ; case 180 /* ArrowFunction */ : case 220 /* FunctionDeclaration */ : case 179 /* FunctionExpression */ : return isTopLevelFunctionDeclaration ( item ) ; default : return false ; } function isTopLevelFunctionDeclaration ( item ) { if ( ! item . node . body ) { return false ; } switch ( navigationBarNodeKind ( item . parent ) ) { case 226 /* ModuleBlock */ : case 256 /* SourceFile */ : case 147 /* MethodDeclaration */ : case 148 /* Constructor */ : return true ; default : return hasSomeImportantChild ( item ) ; } } function hasSomeImportantChild ( item ) { return ts . forEach ( item . children , function ( child ) { var childKind = navigationBarNodeKind ( child ) ; return childKind !== 218 /* VariableDeclaration */ && childKind !== 169 /* BindingElement */ ; } ) ; } } }
Flattens the NavNode tree to a list, keeping only the top-level items.
Flattens the NavNode tree to a list keeping only the top - level items .