/* * Copyright 2016-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. */ apply from: rootProject.file('gradle/node-js.gradle') kotlin { targets { fromPreset(presets.js, 'js') } sourceSets { jsMain.dependencies { api "org.jetbrains.kotlin:kotlin-stdlib-js:$kotlin_version" } jsTest.dependencies { api "org.jetbrains.kotlin:kotlin-test-js:$kotlin_version" } } } // When source sets are configured apply from: rootProject.file('gradle/test-mocha-js.gradle') compileKotlinJs { kotlinOptions.metaInfo = true kotlinOptions.sourceMap = true kotlinOptions.moduleKind = 'umd' kotlinOptions { // drop -js suffix from outputFile def baseName = project.name - "-js" outputFile = new File(outputFile.parent, baseName + ".js") } } compileTestKotlinJs { kotlinOptions.metaInfo = true kotlinOptions.sourceMap = true kotlinOptions.moduleKind = 'umd' } task populateNodeModules(type: Copy, dependsOn: compileTestKotlinJs) { // we must copy output that is transformed by atomicfu from(kotlin.targets.js.compilations.main.output.allOutputs) into "$node.nodeModulesDir/node_modules" def configuration = configurations.jsTestRuntimeClasspath from(files { configuration.collect { File file -> file.name.endsWith(".jar") ? zipTree(file.absolutePath).matching { include '*.js' include '*.js.map' } : files() } }.builtBy(configuration)) } npmInstall.dependsOn populateNodeModules