/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 2 0 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . gradle . targets . js . yarn Ċ Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . logging . Logger Ċ import Ġorg . gradle . internal . service . Service Registry Ċ import Ġorg . jetbrains . kotlin . gradle . targets . js . nodejs . Node Js Root Extension Ċ import Ġorg . jetbrains . kotlin . gradle . targets . js . npm . N pm Api Ċ import Ġorg . jetbrains . kotlin . gradle . targets . js . npm . N pm Dependency Ċ import Ġorg . jetbrains . kotlin . gradle . targets . js . npm . resolved . Kotlin Compilation N pm Resolution Ċ import Ġjava . io . File Ċ Ċ class ĠY arn Ġ: ĠN pm Api Ġ{ ĊĠĠĠ Ġprivate Ġval Ġyarn Work spaces Ġ= ĠY arn Work spaces () ĊĊĠĠĠ Ġprivate Ġfun Ġget Delegate ( project : ĠProject ): ĠN pm Api Ġ= ĊĠĠĠĠĠĠĠ Ġyarn Work spaces ĊĊĠĠĠ Ġoverride Ġfun Ġsetup ( project : ĠProject ) Ġ= ĊĠĠĠĠĠĠĠ Ġget Delegate ( project . root Project ). setup ( project ) ĊĊĠĠĠ Ġoverride Ġfun Ġprepared Files ( node Js : ĠNode Js Root Extension ): ĠCollection < File > Ġ= ĊĠĠĠĠĠĠĠ Ġyarn Work spaces . prepared Files ( node Js ) ĊĊĠĠĠ Ġoverride Ġfun Ġprepare Root Project ( ĊĠĠĠĠĠĠĠ Ġroot Project : ĠProject ?, ĊĠĠĠĠĠĠĠ Ġnode Js : ĠNode Js Root Extension , ĊĠĠĠĠĠĠĠ Ġroot ProjectName : ĠString , ĊĠĠĠĠĠĠĠ Ġroot Project Version : ĠString , ĊĠĠĠĠĠĠĠ Ġlogger : ĠLogger , ĊĠĠĠĠĠĠĠ Ġsub Projects : ĠCollection < Kotlin Compilation N pm Resolution >, ĊĠĠĠĠĠĠĠ Ġresolution s : ĠMap < String , ĠString > ĊĠĠĠ Ġ) Ġ= Ġyarn Work spaces ĊĠĠĠĠĠĠĠ Ġ. prepare Root Project ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot Project , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode Js , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot ProjectName , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot Project Version , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsub Projects , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresolution s ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġresolve Root Project ( ĊĠĠĠĠĠĠĠ Ġservices : ĠService Registry , ĊĠĠĠĠĠĠĠ Ġlogger : ĠLogger , ĊĠĠĠĠĠĠĠ Ġnode Js : ĠNode Js Root Extension , ĊĠĠĠĠĠĠĠ Ġyarn Home : ĠFile , ĊĠĠĠĠĠĠĠ Ġnpm Projects : ĠCollection < Kotlin Compilation N pm Resolution >, ĊĠĠĠĠĠĠĠ Ġcli Args : ĠList < String > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġyarn Work spaces ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. resolve Root Project ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservices , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Js , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyarn Home , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnpm Projects , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcli Args ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġresolve Dependency ( ĊĠĠĠĠĠĠĠ Ġnpm Resolution : ĠKotlin Compilation N pm Resolution , ĊĠĠĠĠĠĠĠ Ġdependency : ĠN pm Dependency , ĊĠĠĠĠĠĠĠ Ġtrans itive : ĠBoolean ĊĠĠĠ Ġ) Ġ= Ġget Delegate ( npm Resolution . project ) ĊĠĠĠĠĠĠĠ Ġ. resolve Dependency ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnpm Resolution , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependency , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrans itive ĊĠĠĠĠĠĠĠ Ġ) Ċ }