package Ġcom . repos il ite . frontend . infrastructure Ċ Ċ import Ġcom . repos il ite . frontend . Frontend Facade Ċ import Ġcom . repos il ite . shared . getSimpleName Ċ import Ġcom . repos il ite . shared . inputStream Ċ import Ġcom . repos il ite . shared . safe Resolve Ċ import Ġcom . repos il ite . web . Repos il ite Route Ċ import Ġcom . repos il ite . web . routing . Route Method . GET Ċ import Ġjava . nio . file . Files Ċ import Ġjava . nio . file . Path Ċ import Ġjava . util . stream . Collectors Ċ import Ġkotlin . io . path . isDirectory Ċ Ċ internal Ġclass ĠCustom Frontend Handler ( frontend Facade : ĠFrontend Facade , Ġdirectory : ĠPath ) Ġ: ĠFrontend Handler ( frontend Facade ) Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġroutes : ĠSet < Repos il ite Route > Ġ= ĠFiles . list ( directory ) ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isDirectory ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe pos il ite Route ("/ ${ it . getSimpleName () }/ < path >", ĠGET ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Ġ= Ġrespond With File ( ctx , Ġit . getSimpleName (), Ġit . safe Resolve ( ctx . path Param (" path ")). inputStream (). or Null ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe pos il ite Route ("/ ${ it . getSimpleName () }", ĠGET ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Ġ= Ġrespond With File ( ctx , Ġit . getSimpleName (), Ġit . inputStream (). or Null ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ. collect ( Collectors . toSet ()) ĊĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġlist Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRe pos il ite Route ("/", ĠGET ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Ġ= Ġrespond With File ( ctx , Ġ" index . html ", Ġdirectory . safe Resolve (" index . html "). inputStream (). or Null ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. let Ġ{ Ġlist . add ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ }