62 lines
1.6 KiB
Groovy
62 lines
1.6 KiB
Groovy
/*
|
|
* 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
|