plugins {
    id 'base'
    id "com.github.node-gradle.node" version "7.1.0"
}

group 'run.halo.darkmode.ui'

node {
    // 使用系统安装的 Node.js，避免 Gradle 下载的本地 Node 目录缺失时失败
    download = false
}

tasks.register('pnpmBuild', PnpmTask) {
    group = 'build'
    description = 'Build the UI project using pnpm'
    args = ['build']
    dependsOn tasks.named('pnpmInstall')
    inputs.dir(layout.projectDirectory.dir('src'))
    inputs.files(fileTree(
        dir: layout.projectDirectory,
        includes: ['*.cjs', '*.ts', '*.js', '*.json', '*.yaml']))
    outputs.dir(layout.buildDirectory.dir('dist'))
}

tasks.register('pnpmCheck', PnpmTask) {
    group = 'verification'
    description = 'Run unit tests for the UI project using pnpm'
    args = ['test:unit']
    dependsOn tasks.named('pnpmInstall')
}

tasks.named('check') {
    dependsOn tasks.named('pnpmCheck')
}

tasks.named('assemble') {
    dependsOn tasks.named('pnpmBuild')
}
