license import * as analyzer from 'polymer-analyzer' ; /**
 * Return whether an Analyzer document is a JavaScript document which was parsed
 * as a module.
 */ export function isEsModuleDocument ( doc ) { return doc . type === 'js' && ( doc . parsedDocument as analyzer . ParsedJavaScriptDocument ) . parsedAsSourceType === 'module' ; } /**
 * Resolve an identifier being imported or exported to the feature it refers to.
 */ export function resolveImportExportFeature ( feature , identifier , doc ) { for ( const kind of resolveKinds ) { const reference = new analyzer . ScannedReference ( kind , identifier , feature . sourceRange , feature . astNode , feature . astNodePath ) ; const resolved = reference . resolve ( doc ) ; if ( resolved . feature !== undefined ) { return resolved as analyzer . Reference < ResolvedTypes > ; } } return undefined ; } const resolveKinds = [ 'element' , 'behavior' , 'element-mixin' , 'class' , 'function' , 'namespace' , ] ; export type ResolvedTypes = analyzer . Element | analyzer . PolymerBehavior | analyzer . ElementMixin | analyzer . Class | analyzer . Function | analyzer . Namespace ;