11import  *  as  h  from  './helpers.js' ; 
22
33export  class  CustomElementsJson  { 
4-   schemaVersion ; 
5-   readme ; 
6-   modules ; 
7-   
4+   _functions  =  new  Map ( ) ; 
5+   _variables  =  new  Map ( ) ; 
86  _classes  =  new  Map ( ) ; 
97  _tagNames  =  new  Map ( ) ; 
108  _definitions  =  new  Map ( ) ; 
119  _mixins  =  new  Map ( ) ; 
1210  _classLikes  =  new  Map ( ) ; 
11+   _customElements  =  new  Map ( ) ; 
1312
14-   constructor ( 
15-     {  schemaVersion,  readme,  modules }  =  { 
16-       schemaVersion : '0.1.0' , 
17-       readme : '' , 
18-       modules : [ ] , 
19-     } , 
20-   )  { 
21-     this . schemaVersion  =  schemaVersion ; 
22-     this . readme  =  readme ; 
23-     this . modules  =  modules ; 
13+   constructor ( cem )  { 
14+     for  ( const  [ key ,  value ]  of  Object . entries ( cem ) )  { 
15+       this [ key ]  =  value ; 
16+     } 
2417    this . init ( ) ; 
2518  } 
2619
@@ -31,6 +24,18 @@ export class CustomElementsJson {
3124        this . _classLikes . set ( item . name ,  item ) ; 
3225      } 
3326
27+       if ( h . isFunction ( item ) )  { 
28+         this . _functions . set ( item . name ,  item ) ; 
29+       } 
30+ 
31+       if ( h . isVariable ( item ) )  { 
32+         this . _variables . set ( item . name ,  item ) ; 
33+       } 
34+ 
35+       if ( h . isCustomElement ( item ) )  { 
36+         this . _customElements . set ( item . name ,  item ) ; 
37+       } 
38+ 
3439      if  ( h . isMixin ( item ) )  { 
3540        this . _mixins . set ( item . name ,  item ) ; 
3641        this . _classLikes . set ( item . name ,  item ) ; 
@@ -73,22 +78,31 @@ export class CustomElementsJson {
7378    return  this . _mixins . get ( mixinName ) ; 
7479  } 
7580
81+   /** Gets all customElements from declarations */ 
82+   getCustomElements ( )  { 
83+     return  [ ...this . _customElements . values ( ) ] ; 
84+   } 
85+ 
86+   /** Gets all functions from declarations */ 
87+   getFunctions ( )  { 
88+     return  [ ...this . _functions . values ( ) ] ; 
89+   } 
90+ 
91+   /** Gets all functions from declarations */ 
92+   getVariables ( )  { 
93+     return  [ ...this . _variables . values ( ) ] ; 
94+   } 
95+ 
7696  /** Gets all classes from declarations */ 
7797  getClasses ( )  { 
7898    return  [ ...this . _classes . values ( ) ] ; 
7999  } 
80100
81-   /** Gets registered custom elements, so elements that have customElements.define called, returns class including tagName */ 
82-   getTagNames ( )  { 
83-     return  [ ...this . _tagNames . values ( ) ] ; 
84-   } 
85- 
86101  /** Gets all CustomElementDefinitions */ 
87102  getDefinitions ( )  { 
88103    return  [ ...this . _definitions . values ( ) ] ; 
89104  } 
90105
91- 
92106  getMixins ( )  { 
93107    return  [ ...this . _mixins . values ( ) ] ; 
94108  } 
0 commit comments