package Ġorg . jetbrains . kotlin . gradle . frontend . karma Ċ Ċ import Ġorg . gradle . api .* Ċ import Ġorg . jetbrains . kotlin . gradle . dsl .* Ċ import Ġorg . jetbrains . kotlin . gradle . frontend .* Ċ import Ġorg . jetbrains . kotlin . gradle . frontend . util .* Ċ import Ġorg . jetbrains . kotlin . gradle . frontend . webpack .* Ċ import Ġorg . jetbrains . kotlin . gradle . tasks .* Ċ import Ġjava . io .* Ċ Ċ object ĠK arma Launcher Ġ: ĠLaunch er Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġapply ( package Manager : ĠPackage Manager , Ġproject : ĠProject , Ġstart Task : ĠTask , Ġstop Task : ĠTask ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġk arma Ġ= Ġproject . extensions . create (" karma ", ĠK arma Extension :: class . java ) ĊĠĠĠĠĠĠĠ Ġproject . after Evaluate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcompile Test Kotlin Ġ= Ġproject . tasks . findBy Path (" compile Test Kotlin 2 Js ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( compile Test Kotlin Ġ!= Ġnull Ġ&& Ġ( compile Test Kotlin Ġas ? ĠKotlin 2 Js Compile )?. kotlin Options ?. outputFile Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġk arma Start Ġ= Ġproject . tasks . create (" karma - start ", ĠK arma Start Stop Task :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . start Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . only If Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . tasks . filter Is Instance < Kotlin Js Compile >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . name . contains (" test ", Ġignore Case Ġ= Ġtrue ) Ġ&& Ġit . kotlin Options . outputFile Ġ!= Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. any Ġ{ ĠFile ( it . kotlin Options . outputFile ). exists () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġk arma Stop Ġ= Ġproject . tasks . create (" karma - stop ", ĠK arma Start Stop Task :: class . java ) Ġ{ Ġit . start Ġ= Ġfalse Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . tasks . get ByName (" test "). depends On ( karma Start ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk arma Start . depends On ( compile Test Kotlin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Task . depends On ( karma Start ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstop Task . depends On ( karma Stop ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire (" karma ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire (" q unit js ", Ġ" 1 . 2 3 . 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire (" karma - q unit ") Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġrequire (" karma - junit - reporter ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire (" karma - source map - loader ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire (" karma - phantom js - launcher ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire (" phantom js - pre built ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġweb Pack Require Added Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . with Task ( Generate Web Pack Config Task :: class ) Ġ{ Ġtask Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! web Pack Require Added ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire (" karma - webpack ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweb Pack Require Added Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk arma . enable Web Pack Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk arma Start . depends On ( task ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( project . extensions . getBy Type ( Kotlin Frontend Extension :: class . java ). source Maps ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire (" karma - source map - loader ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ }