Collection.html 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>JSDoc: Class: Collection</title>
  6. <script src="scripts/prettify/prettify.js"> </script>
  7. <script src="scripts/prettify/lang-css.js"> </script>
  8. <!--[if lt IE 9]>
  9. <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  10. <![endif]-->
  11. <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
  12. <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
  13. </head>
  14. <body>
  15. <div id="main">
  16. <h1 class="page-title">Class: Collection</h1>
  17. <section>
  18. <header>
  19. <h2>Collection</h2>
  20. <div class="class-description">This represents a generic collection of node paths. It only has a generic
  21. API to access and process the elements of the list. It doesn't know anything
  22. about AST types.</div>
  23. </header>
  24. <article>
  25. <div class="container-overview">
  26. <h2>Constructor</h2>
  27. <h4 class="name" id="Collection"><span class="type-signature"></span>new Collection<span class="signature">(paths, parent, types)</span><span class="type-signature"></span></h4>
  28. <h5>Parameters:</h5>
  29. <table class="params">
  30. <thead>
  31. <tr>
  32. <th>Name</th>
  33. <th>Type</th>
  34. <th class="last">Description</th>
  35. </tr>
  36. </thead>
  37. <tbody>
  38. <tr>
  39. <td class="name"><code>paths</code></td>
  40. <td class="type">
  41. <span class="param-type">Array</span>
  42. </td>
  43. <td class="description last">An array of AST paths</td>
  44. </tr>
  45. <tr>
  46. <td class="name"><code>parent</code></td>
  47. <td class="type">
  48. <span class="param-type"><a href="Collection.html">Collection</a></span>
  49. </td>
  50. <td class="description last">A parent collection</td>
  51. </tr>
  52. <tr>
  53. <td class="name"><code>types</code></td>
  54. <td class="type">
  55. <span class="param-type">Array</span>
  56. </td>
  57. <td class="description last">An array of types all the paths in the collection
  58. have in common. If not passed, it will be inferred from the paths.</td>
  59. </tr>
  60. </tbody>
  61. </table>
  62. <dl class="details">
  63. <dt class="mixes">Mixes In:</dt>
  64. <dd class="mixes"><ul>
  65. <li><a href="traversalMethods.html">traversalMethods</a></li>
  66. <li><a href="mutationMethods.html">mutationMethods</a></li>
  67. <li><a href="transformMethods.html">transformMethods</a></li>
  68. <li><a href="globalMethods.html">globalMethods</a></li>
  69. </ul></dd>
  70. <dt class="tag-source">Source:</dt>
  71. <dd class="tag-source"><ul class="dummy"><li>
  72. <a href="Collection.js.html">Collection.js</a>, <a href="Collection.js.html#line32">line 32</a>
  73. </li></ul></dd>
  74. </dl>
  75. </div>
  76. <h3 class="subsection-title">Members</h3>
  77. <h4 class="name" id="length"><span class="type-signature"></span>length<span class="type-signature"></span></h4>
  78. <div class="description">
  79. Returns the number of elements in this collection.
  80. </div>
  81. <dl class="details">
  82. <dt class="tag-source">Source:</dt>
  83. <dd class="tag-source"><ul class="dummy"><li>
  84. <a href="Collection.js.html">Collection.js</a>, <a href="Collection.js.html#line126">line 126</a>
  85. </li></ul></dd>
  86. </dl>
  87. <h3 class="subsection-title">Methods</h3>
  88. <h4 class="name" id="at"><span class="type-signature"></span>at<span class="signature">(index)</span><span class="type-signature"> &rarr; {<a href="Collection.html">Collection</a>}</span></h4>
  89. <div class="description">
  90. Returns a new collection containing only the element at position index.
  91. In case of a negative index, the element is taken from the end:
  92. .at(0) - first element
  93. .at(-1) - last element
  94. </div>
  95. <h5>Parameters:</h5>
  96. <table class="params">
  97. <thead>
  98. <tr>
  99. <th>Name</th>
  100. <th>Type</th>
  101. <th class="last">Description</th>
  102. </tr>
  103. </thead>
  104. <tbody>
  105. <tr>
  106. <td class="name"><code>index</code></td>
  107. <td class="type">
  108. <span class="param-type">number</span>
  109. </td>
  110. <td class="description last"></td>
  111. </tr>
  112. </tbody>
  113. </table>
  114. <dl class="details">
  115. <dt class="tag-source">Source:</dt>
  116. <dd class="tag-source"><ul class="dummy"><li>
  117. <a href="Collection.js.html">Collection.js</a>, <a href="Collection.js.html#line172">line 172</a>
  118. </li></ul></dd>
  119. </dl>
  120. <h5>Returns:</h5>
  121. <dl>
  122. <dt>
  123. Type
  124. </dt>
  125. <dd>
  126. <span class="param-type"><a href="Collection.html">Collection</a></span>
  127. </dd>
  128. </dl>
  129. <h4 class="name" id="childElements"><span class="type-signature"></span>childElements<span class="signature">()</span><span class="type-signature"> &rarr; {JSXElementCollection}</span></h4>
  130. <div class="description">
  131. Returns all children that are JSXElements.
  132. </div>
  133. <dl class="details">
  134. <dt class="mixes">Mixes In:</dt>
  135. <dd class="mixes"><ul>
  136. <li><a href="traversalMethods.html#.childElements">traversalMethods.childElements</a></li>
  137. </ul></dd>
  138. <dt class="tag-source">Source:</dt>
  139. <dd class="tag-source"><ul class="dummy"><li>
  140. <a href="collections_JSXElement.js.html">collections/JSXElement.js</a>, <a href="collections_JSXElement.js.html#line155">line 155</a>
  141. </li></ul></dd>
  142. </dl>
  143. <h5>Returns:</h5>
  144. <dl>
  145. <dt>
  146. Type
  147. </dt>
  148. <dd>
  149. <span class="param-type">JSXElementCollection</span>
  150. </dd>
  151. </dl>
  152. <h4 class="name" id="childNodes"><span class="type-signature"></span>childNodes<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Collection.html">Collection</a>}</span></h4>
  153. <div class="description">
  154. Returns all child nodes, including literals and expressions.
  155. </div>
  156. <dl class="details">
  157. <dt class="mixes">Mixes In:</dt>
  158. <dd class="mixes"><ul>
  159. <li><a href="traversalMethods.html#.childNodes">traversalMethods.childNodes</a></li>
  160. </ul></dd>
  161. <dt class="tag-source">Source:</dt>
  162. <dd class="tag-source"><ul class="dummy"><li>
  163. <a href="collections_JSXElement.js.html">collections/JSXElement.js</a>, <a href="collections_JSXElement.js.html#line138">line 138</a>
  164. </li></ul></dd>
  165. </dl>
  166. <h5>Returns:</h5>
  167. <dl>
  168. <dt>
  169. Type
  170. </dt>
  171. <dd>
  172. <span class="param-type"><a href="Collection.html">Collection</a></span>
  173. </dd>
  174. </dl>
  175. <h4 class="name" id="closest"><span class="type-signature"></span>closest<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Collection.html">Collection</a>}</span></h4>
  176. <div class="description">
  177. Traverse the AST up and finds the closest node of the provided type.
  178. </div>
  179. <h5>Parameters:</h5>
  180. <table class="params">
  181. <thead>
  182. <tr>
  183. <th>Type</th>
  184. <th class="last">Description</th>
  185. </tr>
  186. </thead>
  187. <tbody>
  188. <tr>
  189. <td class="type">
  190. <span class="param-type"><a href="Collection.html">Collection</a></span>
  191. </td>
  192. <td class="description last"></td>
  193. </tr>
  194. <tr>
  195. <td class="type">
  196. <span class="param-type">filter</span>
  197. </td>
  198. <td class="description last"></td>
  199. </tr>
  200. </tbody>
  201. </table>
  202. <dl class="details">
  203. <dt class="mixes">Mixes In:</dt>
  204. <dd class="mixes"><ul>
  205. <li><a href="traversalMethods.html#.closest">traversalMethods.closest</a></li>
  206. </ul></dd>
  207. <dt class="tag-source">Source:</dt>
  208. <dd class="tag-source"><ul class="dummy"><li>
  209. <a href="collections_Node.js.html">collections/Node.js</a>, <a href="collections_Node.js.html#line78">line 78</a>
  210. </li></ul></dd>
  211. </dl>
  212. <h5>Returns:</h5>
  213. <dl>
  214. <dt>
  215. Type
  216. </dt>
  217. <dd>
  218. <span class="param-type"><a href="Collection.html">Collection</a></span>
  219. </dd>
  220. </dl>
  221. <h4 class="name" id="closestScope"><span class="type-signature"></span>closestScope<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Collection.html">Collection</a>}</span></h4>
  222. <div class="description">
  223. Returns a collection containing the paths that create the scope of the
  224. currently selected paths. Dedupes the paths.
  225. </div>
  226. <dl class="details">
  227. <dt class="mixes">Mixes In:</dt>
  228. <dd class="mixes"><ul>
  229. <li><a href="traversalMethods.html#.closestScope">traversalMethods.closestScope</a></li>
  230. </ul></dd>
  231. <dt class="tag-source">Source:</dt>
  232. <dd class="tag-source"><ul class="dummy"><li>
  233. <a href="collections_Node.js.html">collections/Node.js</a>, <a href="collections_Node.js.html#line67">line 67</a>
  234. </li></ul></dd>
  235. </dl>
  236. <h5>Returns:</h5>
  237. <dl>
  238. <dt>
  239. Type
  240. </dt>
  241. <dd>
  242. <span class="param-type"><a href="Collection.html">Collection</a></span>
  243. </dd>
  244. </dl>
  245. <h4 class="name" id="filter"><span class="type-signature"></span>filter<span class="signature">(callback)</span><span class="type-signature"> &rarr; {<a href="Collection.html">Collection</a>}</span></h4>
  246. <div class="description">
  247. Returns a new collection containing the nodes for which the callback
  248. returns true.
  249. </div>
  250. <h5>Parameters:</h5>
  251. <table class="params">
  252. <thead>
  253. <tr>
  254. <th>Name</th>
  255. <th>Type</th>
  256. <th class="last">Description</th>
  257. </tr>
  258. </thead>
  259. <tbody>
  260. <tr>
  261. <td class="name"><code>callback</code></td>
  262. <td class="type">
  263. <span class="param-type">function</span>
  264. </td>
  265. <td class="description last"></td>
  266. </tr>
  267. </tbody>
  268. </table>
  269. <dl class="details">
  270. <dt class="tag-source">Source:</dt>
  271. <dd class="tag-source"><ul class="dummy"><li>
  272. <a href="Collection.js.html">Collection.js</a>, <a href="Collection.js.html#line64">line 64</a>
  273. </li></ul></dd>
  274. </dl>
  275. <h5>Returns:</h5>
  276. <dl>
  277. <dt>
  278. Type
  279. </dt>
  280. <dd>
  281. <span class="param-type"><a href="Collection.html">Collection</a></span>
  282. </dd>
  283. </dl>
  284. <h4 class="name" id="find"><span class="type-signature"></span>find<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Collection.html">Collection</a>}</span></h4>
  285. <div class="description">
  286. Find nodes of a specific type within the nodes of this collection.
  287. </div>
  288. <h5>Parameters:</h5>
  289. <table class="params">
  290. <thead>
  291. <tr>
  292. <th>Type</th>
  293. <th class="last">Description</th>
  294. </tr>
  295. </thead>
  296. <tbody>
  297. <tr>
  298. <td class="type">
  299. <span class="param-type">type</span>
  300. </td>
  301. <td class="description last"></td>
  302. </tr>
  303. <tr>
  304. <td class="type">
  305. <span class="param-type">filter</span>
  306. </td>
  307. <td class="description last"></td>
  308. </tr>
  309. </tbody>
  310. </table>
  311. <dl class="details">
  312. <dt class="mixes">Mixes In:</dt>
  313. <dd class="mixes"><ul>
  314. <li><a href="traversalMethods.html#.find">traversalMethods.find</a></li>
  315. </ul></dd>
  316. <dt class="tag-source">Source:</dt>
  317. <dd class="tag-source"><ul class="dummy"><li>
  318. <a href="collections_Node.js.html">collections/Node.js</a>, <a href="collections_Node.js.html#line34">line 34</a>
  319. </li></ul></dd>
  320. </dl>
  321. <h5>Returns:</h5>
  322. <dl>
  323. <dt>
  324. Type
  325. </dt>
  326. <dd>
  327. <span class="param-type"><a href="Collection.html">Collection</a></span>
  328. </dd>
  329. </dl>
  330. <h4 class="name" id="findJSXElements"><span class="type-signature"></span>findJSXElements<span class="signature">(name)</span><span class="type-signature"> &rarr; {<a href="Collection.html">Collection</a>}</span></h4>
  331. <div class="description">
  332. Finds all JSXElements optionally filtered by name
  333. </div>
  334. <h5>Parameters:</h5>
  335. <table class="params">
  336. <thead>
  337. <tr>
  338. <th>Name</th>
  339. <th>Type</th>
  340. <th class="last">Description</th>
  341. </tr>
  342. </thead>
  343. <tbody>
  344. <tr>
  345. <td class="name"><code>name</code></td>
  346. <td class="type">
  347. <span class="param-type">string</span>
  348. </td>
  349. <td class="description last"></td>
  350. </tr>
  351. </tbody>
  352. </table>
  353. <dl class="details">
  354. <dt class="mixes">Mixes In:</dt>
  355. <dd class="mixes"><ul>
  356. <li><a href="globalMethods.html#.findJSXElements">globalMethods.findJSXElements</a></li>
  357. </ul></dd>
  358. <dt class="tag-source">Source:</dt>
  359. <dd class="tag-source"><ul class="dummy"><li>
  360. <a href="collections_JSXElement.js.html">collections/JSXElement.js</a>, <a href="collections_JSXElement.js.html#line37">line 37</a>
  361. </li></ul></dd>
  362. </dl>
  363. <h5>Returns:</h5>
  364. <dl>
  365. <dt>
  366. Type
  367. </dt>
  368. <dd>
  369. <span class="param-type"><a href="Collection.html">Collection</a></span>
  370. </dd>
  371. </dl>
  372. <h4 class="name" id="findJSXElementsByModuleName"><span class="type-signature"></span>findJSXElementsByModuleName<span class="signature">()</span><span class="type-signature"></span></h4>
  373. <div class="description">
  374. Finds all JSXElements by module name. Given
  375. var Bar = require('Foo');
  376. <Bar />
  377. findJSXElementsByModuleName('Foo') will find <Bar />, without having to
  378. know the variable name.
  379. </div>
  380. <dl class="details">
  381. <dt class="mixes">Mixes In:</dt>
  382. <dd class="mixes"><ul>
  383. <li><a href="globalMethods.html#.findJSXElementsByModuleName">globalMethods.findJSXElementsByModuleName</a></li>
  384. </ul></dd>
  385. <dt class="tag-source">Source:</dt>
  386. <dd class="tag-source"><ul class="dummy"><li>
  387. <a href="collections_JSXElement.js.html">collections/JSXElement.js</a>, <a href="collections_JSXElement.js.html#line51">line 51</a>
  388. </li></ul></dd>
  389. </dl>
  390. <h4 class="name" id="findVariableDeclarators"><span class="type-signature"></span>findVariableDeclarators<span class="signature">(name)</span><span class="type-signature"> &rarr; {<a href="Collection.html">Collection</a>}</span></h4>
  391. <div class="description">
  392. Finds all variable declarators, optionally filtered by name.
  393. </div>
  394. <h5>Parameters:</h5>
  395. <table class="params">
  396. <thead>
  397. <tr>
  398. <th>Name</th>
  399. <th>Type</th>
  400. <th class="last">Description</th>
  401. </tr>
  402. </thead>
  403. <tbody>
  404. <tr>
  405. <td class="name"><code>name</code></td>
  406. <td class="type">
  407. <span class="param-type">string</span>
  408. </td>
  409. <td class="description last"></td>
  410. </tr>
  411. </tbody>
  412. </table>
  413. <dl class="details">
  414. <dt class="mixes">Mixes In:</dt>
  415. <dd class="mixes"><ul>
  416. <li><a href="globalMethods.html#.findVariableDeclarators">globalMethods.findVariableDeclarators</a></li>
  417. </ul></dd>
  418. <dt class="tag-source">Source:</dt>
  419. <dd class="tag-source"><ul class="dummy"><li>
  420. <a href="collections_VariableDeclarator.js.html">collections/VariableDeclarator.js</a>, <a href="collections_VariableDeclarator.js.html#line35">line 35</a>
  421. </li></ul></dd>
  422. </dl>
  423. <h5>Returns:</h5>
  424. <dl>
  425. <dt>
  426. Type
  427. </dt>
  428. <dd>
  429. <span class="param-type"><a href="Collection.html">Collection</a></span>
  430. </dd>
  431. </dl>
  432. <h4 class="name" id="forEach"><span class="type-signature"></span>forEach<span class="signature">(callback)</span><span class="type-signature"> &rarr; {<a href="Collection.html">Collection</a>}</span></h4>
  433. <div class="description">
  434. Executes callback for each node/path in the collection.
  435. </div>
  436. <h5>Parameters:</h5>
  437. <table class="params">
  438. <thead>
  439. <tr>
  440. <th>Name</th>
  441. <th>Type</th>
  442. <th class="last">Description</th>
  443. </tr>
  444. </thead>
  445. <tbody>
  446. <tr>
  447. <td class="name"><code>callback</code></td>
  448. <td class="type">
  449. <span class="param-type">function</span>
  450. </td>
  451. <td class="description last"></td>
  452. </tr>
  453. </tbody>
  454. </table>
  455. <dl class="details">
  456. <dt class="tag-source">Source:</dt>
  457. <dd class="tag-source"><ul class="dummy"><li>
  458. <a href="Collection.js.html">Collection.js</a>, <a href="Collection.js.html#line74">line 74</a>
  459. </li></ul></dd>
  460. </dl>
  461. <h5>Returns:</h5>
  462. <div class="param-desc">
  463. The collection itself
  464. </div>
  465. <dl>
  466. <dt>
  467. Type
  468. </dt>
  469. <dd>
  470. <span class="param-type"><a href="Collection.html">Collection</a></span>
  471. </dd>
  472. </dl>
  473. <h4 class="name" id="get"><span class="type-signature"></span>get<span class="signature">()</span><span class="type-signature"></span></h4>
  474. <div class="description">
  475. Proxies to NodePath#get of the first path.
  476. </div>
  477. <h5>Parameters:</h5>
  478. <table class="params">
  479. <thead>
  480. <tr>
  481. <th>Name</th>
  482. <th>Type</th>
  483. <th class="last">Description</th>
  484. </tr>
  485. </thead>
  486. <tbody>
  487. <tr>
  488. <td class="name"><code>...fields</code></td>
  489. <td class="type">
  490. <span class="param-type">string</span>
  491. |
  492. <span class="param-type">number</span>
  493. </td>
  494. <td class="description last"></td>
  495. </tr>
  496. </tbody>
  497. </table>
  498. <dl class="details">
  499. <dt class="tag-source">Source:</dt>
  500. <dd class="tag-source"><ul class="dummy"><li>
  501. <a href="Collection.js.html">Collection.js</a>, <a href="Collection.js.html#line187">line 187</a>
  502. </li></ul></dd>
  503. </dl>
  504. <h4 class="name" id="getTypes"><span class="type-signature"></span>getTypes<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;string>}</span></h4>
  505. <div class="description">
  506. Returns the type(s) of the collection. This is only used for unit tests,
  507. I don't think other consumers would need it.
  508. </div>
  509. <dl class="details">
  510. <dt class="tag-source">Source:</dt>
  511. <dd class="tag-source"><ul class="dummy"><li>
  512. <a href="Collection.js.html">Collection.js</a>, <a href="Collection.js.html#line204">line 204</a>
  513. </li></ul></dd>
  514. </dl>
  515. <h5>Returns:</h5>
  516. <dl>
  517. <dt>
  518. Type
  519. </dt>
  520. <dd>
  521. <span class="param-type">Array.&lt;string></span>
  522. </dd>
  523. </dl>
  524. <h4 class="name" id="getVariableDeclarators"><span class="type-signature"></span>getVariableDeclarators<span class="signature">(nameGetter)</span><span class="type-signature"> &rarr; {<a href="Collection.html">Collection</a>}</span></h4>
  525. <div class="description">
  526. Finds the declaration for each selected path. Useful for member expressions
  527. or JSXElements. Expects a callback function that maps each path to the name
  528. to look for.
  529. If the callback returns a falsey value, the element is skipped.
  530. </div>
  531. <h5>Parameters:</h5>
  532. <table class="params">
  533. <thead>
  534. <tr>
  535. <th>Name</th>
  536. <th>Type</th>
  537. <th class="last">Description</th>
  538. </tr>
  539. </thead>
  540. <tbody>
  541. <tr>
  542. <td class="name"><code>nameGetter</code></td>
  543. <td class="type">
  544. <span class="param-type">function</span>
  545. </td>
  546. <td class="description last"></td>
  547. </tr>
  548. </tbody>
  549. </table>
  550. <dl class="details">
  551. <dt class="mixes">Mixes In:</dt>
  552. <dd class="mixes"><ul>
  553. <li><a href="traversalMethods.html#.getVariableDeclarators">traversalMethods.getVariableDeclarators</a></li>
  554. </ul></dd>
  555. <dt class="tag-source">Source:</dt>
  556. <dd class="tag-source"><ul class="dummy"><li>
  557. <a href="collections_Node.js.html">collections/Node.js</a>, <a href="collections_Node.js.html#line105">line 105</a>
  558. </li></ul></dd>
  559. </dl>
  560. <h5>Returns:</h5>
  561. <dl>
  562. <dt>
  563. Type
  564. </dt>
  565. <dd>
  566. <span class="param-type"><a href="Collection.html">Collection</a></span>
  567. </dd>
  568. </dl>
  569. <h4 class="name" id="insertAfter"><span class="type-signature"></span>insertAfter<span class="signature">(insert)</span><span class="type-signature"> &rarr; {<a href="Collection.html">Collection</a>}</span></h4>
  570. <div class="description">
  571. Inserts a new node after the current one.
  572. </div>
  573. <h5>Parameters:</h5>
  574. <table class="params">
  575. <thead>
  576. <tr>
  577. <th>Name</th>
  578. <th>Type</th>
  579. <th class="last">Description</th>
  580. </tr>
  581. </thead>
  582. <tbody>
  583. <tr>
  584. <td class="name"><code>insert</code></td>
  585. <td class="type">
  586. <span class="param-type">Node</span>
  587. |
  588. <span class="param-type">Array.&lt;Node></span>
  589. |
  590. <span class="param-type">function</span>
  591. </td>
  592. <td class="description last"></td>
  593. </tr>
  594. </tbody>
  595. </table>
  596. <dl class="details">
  597. <dt class="mixes">Mixes In:</dt>
  598. <dd class="mixes"><ul>
  599. <li><a href="mutationMethods.html#.insertAfter">mutationMethods.insertAfter</a></li>
  600. </ul></dd>
  601. <dt class="tag-source">Source:</dt>
  602. <dd class="tag-source"><ul class="dummy"><li>
  603. <a href="collections_Node.js.html">collections/Node.js</a>, <a href="collections_Node.js.html#line169">line 169</a>
  604. </li></ul></dd>
  605. </dl>
  606. <h5>Returns:</h5>
  607. <dl>
  608. <dt>
  609. Type
  610. </dt>
  611. <dd>
  612. <span class="param-type"><a href="Collection.html">Collection</a></span>
  613. </dd>
  614. </dl>
  615. <h4 class="name" id="insertBefore"><span class="type-signature"></span>insertBefore<span class="signature">(insert)</span><span class="type-signature"> &rarr; {<a href="Collection.html">Collection</a>}</span></h4>
  616. <div class="description">
  617. Inserts a new node before the current one.
  618. </div>
  619. <h5>Parameters:</h5>
  620. <table class="params">
  621. <thead>
  622. <tr>
  623. <th>Name</th>
  624. <th>Type</th>
  625. <th class="last">Description</th>
  626. </tr>
  627. </thead>
  628. <tbody>
  629. <tr>
  630. <td class="name"><code>insert</code></td>
  631. <td class="type">
  632. <span class="param-type">Node</span>
  633. |
  634. <span class="param-type">Array.&lt;Node></span>
  635. |
  636. <span class="param-type">function</span>
  637. </td>
  638. <td class="description last"></td>
  639. </tr>
  640. </tbody>
  641. </table>
  642. <dl class="details">
  643. <dt class="mixes">Mixes In:</dt>
  644. <dd class="mixes"><ul>
  645. <li><a href="mutationMethods.html#.insertBefore">mutationMethods.insertBefore</a></li>
  646. </ul></dd>
  647. <dt class="tag-source">Source:</dt>
  648. <dd class="tag-source"><ul class="dummy"><li>
  649. <a href="collections_Node.js.html">collections/Node.js</a>, <a href="collections_Node.js.html#line155">line 155</a>
  650. </li></ul></dd>
  651. </dl>
  652. <h5>Returns:</h5>
  653. <dl>
  654. <dt>
  655. Type
  656. </dt>
  657. <dd>
  658. <span class="param-type"><a href="Collection.html">Collection</a></span>
  659. </dd>
  660. </dl>
  661. <h4 class="name" id="isOfType"><span class="type-signature"></span>isOfType<span class="signature">(type)</span><span class="type-signature"> &rarr; {boolean}</span></h4>
  662. <div class="description">
  663. Returns true if this collection has the type 'type'.
  664. </div>
  665. <h5>Parameters:</h5>
  666. <table class="params">
  667. <thead>
  668. <tr>
  669. <th>Name</th>
  670. <th>Type</th>
  671. <th class="last">Description</th>
  672. </tr>
  673. </thead>
  674. <tbody>
  675. <tr>
  676. <td class="name"><code>type</code></td>
  677. <td class="type">
  678. <span class="param-type">Type</span>
  679. </td>
  680. <td class="description last"></td>
  681. </tr>
  682. </tbody>
  683. </table>
  684. <dl class="details">
  685. <dt class="tag-source">Source:</dt>
  686. <dd class="tag-source"><ul class="dummy"><li>
  687. <a href="Collection.js.html">Collection.js</a>, <a href="Collection.js.html#line214">line 214</a>
  688. </li></ul></dd>
  689. </dl>
  690. <h5>Returns:</h5>
  691. <dl>
  692. <dt>
  693. Type
  694. </dt>
  695. <dd>
  696. <span class="param-type">boolean</span>
  697. </dd>
  698. </dl>
  699. <h4 class="name" id="map"><span class="type-signature"></span>map<span class="signature">(callback, type)</span><span class="type-signature"></span></h4>
  700. <div class="description">
  701. Executes the callback for every path in the collection and returns a new
  702. collection from the return values (which must be paths).
  703. The callback can return null to indicate to exclude the element from the
  704. new collection.
  705. If an array is returned, the array will be flattened into the result
  706. collection.
  707. </div>
  708. <h5>Parameters:</h5>
  709. <table class="params">
  710. <thead>
  711. <tr>
  712. <th>Name</th>
  713. <th>Type</th>
  714. <th class="last">Description</th>
  715. </tr>
  716. </thead>
  717. <tbody>
  718. <tr>
  719. <td class="name"><code>callback</code></td>
  720. <td class="type">
  721. <span class="param-type">function</span>
  722. </td>
  723. <td class="description last"></td>
  724. </tr>
  725. <tr>
  726. <td class="name"><code>type</code></td>
  727. <td class="type">
  728. <span class="param-type">Type</span>
  729. </td>
  730. <td class="description last">Force the new collection to be of a specific type</td>
  731. </tr>
  732. </tbody>
  733. </table>
  734. <dl class="details">
  735. <dt class="tag-source">Source:</dt>
  736. <dd class="tag-source"><ul class="dummy"><li>
  737. <a href="Collection.js.html">Collection.js</a>, <a href="Collection.js.html#line94">line 94</a>
  738. </li></ul></dd>
  739. </dl>
  740. <h4 class="name" id="nodes"><span class="type-signature"></span>nodes<span class="signature">()</span><span class="type-signature"> &rarr; {Array}</span></h4>
  741. <div class="description">
  742. Returns an array of AST nodes in this collection.
  743. </div>
  744. <dl class="details">
  745. <dt class="tag-source">Source:</dt>
  746. <dd class="tag-source"><ul class="dummy"><li>
  747. <a href="Collection.js.html">Collection.js</a>, <a href="Collection.js.html#line135">line 135</a>
  748. </li></ul></dd>
  749. </dl>
  750. <h5>Returns:</h5>
  751. <dl>
  752. <dt>
  753. Type
  754. </dt>
  755. <dd>
  756. <span class="param-type">Array</span>
  757. </dd>
  758. </dl>
  759. <h4 class="name" id="renameTo"><span class="type-signature"></span>renameTo<span class="signature">(newName)</span><span class="type-signature"> &rarr; {<a href="Collection.html">Collection</a>}</span></h4>
  760. <div class="description">
  761. Renames a variable and all its occurrences.
  762. </div>
  763. <h5>Parameters:</h5>
  764. <table class="params">
  765. <thead>
  766. <tr>
  767. <th>Name</th>
  768. <th>Type</th>
  769. <th class="last">Description</th>
  770. </tr>
  771. </thead>
  772. <tbody>
  773. <tr>
  774. <td class="name"><code>newName</code></td>
  775. <td class="type">
  776. <span class="param-type">string</span>
  777. </td>
  778. <td class="description last"></td>
  779. </tr>
  780. </tbody>
  781. </table>
  782. <dl class="details">
  783. <dt class="mixes">Mixes In:</dt>
  784. <dd class="mixes"><ul>
  785. <li><a href="transformMethods.html#.renameTo">transformMethods.renameTo</a></li>
  786. </ul></dd>
  787. <dt class="tag-source">Source:</dt>
  788. <dd class="tag-source"><ul class="dummy"><li>
  789. <a href="collections_VariableDeclarator.js.html">collections/VariableDeclarator.js</a>, <a href="collections_VariableDeclarator.js.html#line79">line 79</a>
  790. </li></ul></dd>
  791. </dl>
  792. <h5>Returns:</h5>
  793. <dl>
  794. <dt>
  795. Type
  796. </dt>
  797. <dd>
  798. <span class="param-type"><a href="Collection.html">Collection</a></span>
  799. </dd>
  800. </dl>
  801. <h4 class="name" id="replaceWith"><span class="type-signature"></span>replaceWith<span class="signature">(nodes)</span><span class="type-signature"> &rarr; {<a href="Collection.html">Collection</a>}</span></h4>
  802. <div class="description">
  803. Simply replaces the selected nodes with the provided node. If a function
  804. is provided it is executed for every node and the node is replaced with the
  805. functions return value.
  806. </div>
  807. <h5>Parameters:</h5>
  808. <table class="params">
  809. <thead>
  810. <tr>
  811. <th>Name</th>
  812. <th>Type</th>
  813. <th class="last">Description</th>
  814. </tr>
  815. </thead>
  816. <tbody>
  817. <tr>
  818. <td class="name"><code>nodes</code></td>
  819. <td class="type">
  820. <span class="param-type">Node</span>
  821. |
  822. <span class="param-type">Array.&lt;Node></span>
  823. |
  824. <span class="param-type">function</span>
  825. </td>
  826. <td class="description last"></td>
  827. </tr>
  828. </tbody>
  829. </table>
  830. <dl class="details">
  831. <dt class="mixes">Mixes In:</dt>
  832. <dd class="mixes"><ul>
  833. <li><a href="mutationMethods.html#.replaceWith">mutationMethods.replaceWith</a></li>
  834. </ul></dd>
  835. <dt class="tag-source">Source:</dt>
  836. <dd class="tag-source"><ul class="dummy"><li>
  837. <a href="collections_Node.js.html">collections/Node.js</a>, <a href="collections_Node.js.html#line141">line 141</a>
  838. </li></ul></dd>
  839. </dl>
  840. <h5>Returns:</h5>
  841. <dl>
  842. <dt>
  843. Type
  844. </dt>
  845. <dd>
  846. <span class="param-type"><a href="Collection.html">Collection</a></span>
  847. </dd>
  848. </dl>
  849. <h4 class="name" id="size"><span class="type-signature"></span>size<span class="signature">()</span><span class="type-signature"> &rarr; {number}</span></h4>
  850. <div class="description">
  851. Returns the number of elements in this collection.
  852. </div>
  853. <dl class="details">
  854. <dt class="tag-source">Source:</dt>
  855. <dd class="tag-source"><ul class="dummy"><li>
  856. <a href="Collection.js.html">Collection.js</a>, <a href="Collection.js.html#line117">line 117</a>
  857. </li></ul></dd>
  858. </dl>
  859. <h5>Returns:</h5>
  860. <dl>
  861. <dt>
  862. Type
  863. </dt>
  864. <dd>
  865. <span class="param-type">number</span>
  866. </dd>
  867. </dl>
  868. </article>
  869. </section>
  870. </div>
  871. <nav>
  872. <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-jscodeshift.html">jscodeshift</a></li></ul><h3>Externals</h3><ul><li><a href="external-astTypes.html">astTypes</a></li></ul><h3>Classes</h3><ul><li><a href="Collection.html">Collection</a></li></ul><h3>Mixins</h3><ul><li><a href="globalMethods.html">globalMethods</a></li><li><a href="mutationMethods.html">mutationMethods</a></li><li><a href="transformMethods.html">transformMethods</a></li><li><a href="traversalMethods.html">traversalMethods</a></li></ul><h3>Global</h3><ul><li><a href="global.html#registerMethods">registerMethods</a></li></ul>
  873. </nav>
  874. <br class="clear">
  875. <footer>
  876. Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.1</a> on Wed Sep 21 2016 16:53:09 GMT-0400 (EDT)
  877. </footer>
  878. <script> prettyPrint(); </script>
  879. <script src="scripts/linenumber.js"> </script>
  880. </body>
  881. </html>