package Ġorg . jetbrains . du kat . moduleName Resolver Ċ Ċ import Ġkotlinx . serialization . json . Json Ċ import Ġjava . io . File Ċ Ċ class ĠCommon Js Name Resolver Ġ: ĠModule Name Resolver Ġ{ ĊĊĠĠĠ Ġfun Ġresolve Name ( source File : ĠFile ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparent Dirs Ġ= Ġgenerate Sequence ( source File . parent File ) Ġ{ Ġit . parent File Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġpackage Json Owner Ġ= Ġparent Dirs . find Ġ{ Ġparent Dir Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( parent Dir , Ġ" package . json "). exists () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġpackage Json Owner ?. let Ġ{ Ġjson Owner Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpackage Json File Ġ= ĠFile ( json Owner , Ġ" package . json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpackage Json Content Ġ= Ġpackage Json File . read Text () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpackage Json Ġ= ĠJson Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġignore Unknown Keys Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. decode FromString ( Package Json Model . serializer (), Ġpackage Json Content ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( package Json . name Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson Owner . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Json . name . remove Prefix ("@ types /") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġresolve Name ( source Name : ĠString ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġresolve Name ( File ( source Name )) ĊĠĠĠ Ġ} Ċ }