fun upload()

in src/upload.kt [5:26]


fun upload(file: String, params: HashMap<String, String>): Promise<Int> {
    return Promise { resolve, reject ->
        val form = FormData()
        val host = params.get("host") ?: "https://plugins.jetbrains.com"

        form.append("userName", params.get("userName") ?: "")
        form.append("password", params.get("password") ?: "")
        form.append("pluginId", params.get("pluginId") ?: "")
        form.append("channel", params.get("channel") ?: "")
        form.append("file", fs.createReadStream(file))

        form.submit("$host/plugin/uploadPlugin", { err, resp ->
            val statusCode = resp?.statusCode ?: 0

            if (err != null)
                reject(err) else
                (if (statusCode < 200 || statusCode > 299)
                    reject(Error("${statusCode} :: JetBrains Plugin Repository")) else
                    resolve(0))
        })
    }
}