summaryrefslogtreecommitdiff
path: root/examples/scala-js/tools/shared/src/main/scala/scala/scalajs/tools/json/JSONObjBuilder.scala
blob: dd98f49d14321222741502ba622713bd7f8a2070 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package scala.scalajs.tools.json

import scala.collection.mutable

class JSONObjBuilder {

  private val flds = mutable.Map.empty[String, JSON]

  def fld[T : JSONSerializer](name: String, v: T): this.type = {
    flds.put(name, v.toJSON)
    this
  }

  def opt[T : JSONSerializer](name: String, v: Option[T]): this.type = {
    v.foreach(v => flds.put(name, v.toJSON))
    this
  }

  def toJSON: JSON = Impl.fromMap(flds.toMap)
}