Skip to content

Commit b187af6

Browse files
committed
push new changes
1 parent 23b6fae commit b187af6

27 files changed

+2747
-306
lines changed

.travis.credentials.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/bin/bash
2+
3+
set -euo pipefail
4+
5+
mkdir ~/.bintray/
6+
7+
cat <<EOF > $HOME/.bintray/.credentials
8+
realm = Bintray API Realm
9+
host = api.bintray.com
10+
user = $BINTRAY_USER
11+
password = $BINTRAY_PASSWORD
12+
EOF

.travis.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
language: scala
2+
3+
scala:
4+
- 2.12.1
5+
- 2.11.8
6+
7+
jdk:
8+
- oraclejdk8
9+
10+
install:
11+
- . $HOME/.nvm/nvm.sh
12+
- nvm install stable
13+
- nvm use stable
14+
- npm install
15+
- npm install jsdom source-map-support
16+
17+
env:
18+
global:
19+
JSENV=node
20+
21+
script:
22+
- sbt ++$TRAVIS_SCALA_VERSION test:fastOptJS test:fullOptJS
23+
- sbt ++$TRAVIS_SCALA_VERSION 'set parallelExecution in ThisBuild := false' test
24+
- sbt ++$TRAVIS_SCALA_VERSION 'set parallelExecution in ThisBuild := false' 'set scalaJSStage in ThisBuild := FullOptStage' test
25+
- bin/checkDevOnly $TRAVIS_SCALA_VERSION
26+
27+
28+
deploy:
29+
provider: script
30+
script:
31+
- /bin/bash "$TRAVIS_BUILD_DIR/.travis.credentials.sh" && sbt +publish
32+
on:
33+
tags: true
34+
35+
env:
36+
global:
37+
# travis encrypt BINTRAY_USER=xxx
38+
- secure: "SaFeMNRhdV2zO4SJ0NfqHENiEpsljam47OV0EuS2Rp/kCFBaAkTY23boExe9ZDBFomwLTAnHGukPDFqlRWpn8XSPVsMfe9RSz3L043OG7rzGcx2KLi44J9meTLXklQF4XRDQMV8NGzvl/djlC1WlUJcwtPcRtmlUE8V2mTsr+ymYAglQBdiWuOCLRe3O7tX/y5vaqMNfQ9YPm+C7/ruWnjHZUxacfoj5DMZ+HvpFfcY4/W3X5EEUtJxOj1S0Kb1BZye7oK0GmnAOKK0bdpcyL7l4UQL+D5o2hQVSxF/rJ4whz7aJmztD8q7mI/B8/jUupUcVIPvQ6Y8BBDILLY8GRMnlTdHsP3PklExXm2+sq0l2m5Erch77A40zD7FHGj6pB5u2SQ5pIdadEcNZguJj4tk8QK/d1e8hJo/E8aZtxeZuwVLLl9sGbn8d2oM7ADq3f41RJYnVhJHR8+XE/tp2uvXJwL0yzdUrReGg2qs4LRFvcwddnD/aLQumpcmPYcYPM9gAwmgsW+fur4+gnRFCI7gBzWL5Cbfu0vsIg4bQr/Oeap7XcCm8mNSCje9olqr/a2ir1HsMYlOq7o3qW875tG5KnyhwqZo2xK4Zt8PpMIdQ/ie4lIeQ1kAS2J2+VByrGl1KoBamV2wSGMsSzWSOGptk+SVtqJe6eG6BZKRYDnI="
39+
# travis encrypt BINTRAY_PASSWORD=xxx
40+
- secure: "mpGMrv9A65tly/2IFUg+ZnJ80VV7xVV7QOPvwrNSGGqtm3N/YjRZr5t84Kwp2FZJn2WKTipa6ywV2hvYQt7QjfA+Nga5w4Zx+mC+/ZtUZk/rTi7tO97cgFgksIt+f+VFS28jjQUdl9TymPUGoN0voCtDoaoZ8yk9gDo+AC0GYsgI1hHTzHGTOrzZu/zEhFuhhjrO/24xQImLyhTeYNJLH771Y4gaZU/SnR8l3/hpDDOp9VOnXKQ5srlKa6YMMjRrPUWtFXromLrH3NTO8QYsTm+kQPo4yck7BHu2eT4yUYYqjyfiVSFtNRDccofdTnrNxyOM4B3Pw49ZhlbxlcbZTSUa6HVz63eW4Rbr8Fm3G2NMGlPtnhQf/W1LvB6STDD7qeO0mjvW0C1cHydkklsyfq/Oko9vLO5GemdYPHZ/YdhaWZ5YATV9zl2mHhLkGPu0eZN3rK+i9FF5sZLqBzT0cHc4M0kV04V1DQcTndh7/S9wGluJj62Myz2rj0JKh9KSHCrreWQUazNKynxHAnSseHRXU7KSbTCOs7ZGNIsvchLr5RP4OPuXjIuUndDGA97BnsYtIR0IZ0wzamps84OD+X6jW0GWDeh2dRptrwXa3js/vR2eT9anACShhotdfi2GoAO9pKmC8lWgKPaINNhZdBryl+oed9NS+Ra3EHEH668="
41+

build.sbt

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
name := "core"
22

3-
version := "2017.1.15"
3+
//version := "2017.1.16"
44

55
enablePlugins(ScalaJSPlugin)
66

77
val scala211 = "2.11.8"
88

9-
val scala212 = "2.12.0"
9+
val scala212 = "2.12.1"
1010

11-
scalaVersion := scala211
11+
scalaVersion := scala212
1212

13-
crossScalaVersions := Seq(scala211,scala212)
13+
crossScalaVersions := Seq(scala211, scala212)
1414

1515
scalacOptions ++= Seq(
1616
"-feature",
@@ -19,13 +19,13 @@ scalacOptions ++= Seq(
1919
"-language:implicitConversions"
2020
)
2121

22-
2322
//bintray
2423
resolvers += Resolver.jcenterRepo
2524

2625
organization := "scalajs-react-universe"
2726

28-
licenses += ("Apache-2.0", url("https://www.apache.org/licenses/LICENSE-2.0.html"))
27+
licenses += ("Apache-2.0", url(
28+
"http://www.opensource.org/licenses/apache2.0.php"))
2929

3030
bintrayOrganization := Some("scalajs-react-universe")
3131

@@ -36,7 +36,10 @@ bintrayVcsUrl := Some("[email protected]:scalajs-react-universe/core.git")
3636
publishArtifact in Test := false
3737

3838
//Test
39+
scalaJSModuleKind := ModuleKind.CommonJSModule
3940
resolvers += Resolver.bintrayRepo("scalajs-react-universe", "maven")
4041
libraryDependencies += "org.scalatest" %%% "scalatest" % "3.0.0" % Test
41-
//libraryDependencies += "scalajs-react-universe" %%% "enzyme" % "2017.1.0" % Test
42-
scalaJSStage in Global := FastOptStage
42+
libraryDependencies += "scalajs-react-universe" %%% "enzyme" % "2017.2.0-SNAPSHOT" % Test
43+
libraryDependencies += "scalajs-react-universe" %%% "macros" % "2017.2.0-SNAPSHOT" % Test
44+
//scalaJSStage in Global := FastOptStage
45+
scalaJSStage in Global := FullOptStage

project/plugins.sbt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1-
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.14")
1+
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.15-SNAPSHOT")
2+
addSbtPlugin("com.dwijnand" % "sbt-dynver" % "1.1.1")
23
addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.0.0")
34
addSbtPlugin("me.lessis" % "bintray-sbt" % "0.3.0")
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package sri.core
2+
3+
import scala.scalajs.js
4+
import scala.scalajs.js.{ConstructorTag, |}
5+
6+
object CreateElement {
7+
8+
@inline
9+
def apply[C <: ReactScalaClass: ConstructorTag](
10+
props: C#Props#ScalaProps,
11+
key: String | Int = null,
12+
ref: C => Unit = null,
13+
children: js.Array[ReactNode] = emptyJSArray())
14+
: ReactElement { type Instance = C } = {
15+
CreateElementJS(
16+
js.constructorTag[C].constructor.asInstanceOf[C],
17+
js.Dynamic.literal(sprops = props.asInstanceOf[js.Any]),
18+
key = key,
19+
ref = ref,
20+
children
21+
)
22+
}
23+
24+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package sri.core
2+
3+
import scala.scalajs.{LinkingInfo, js}
4+
import scala.scalajs.js.{ConstructorTag, |}
5+
6+
object CreateElementJS {
7+
8+
@inline
9+
def apply[C <: ReactClass](ctor: C,
10+
props: js.Any,
11+
key: String | Int = null,
12+
ref: C => Unit = null,
13+
children: js.Array[ReactNode] = emptyJSArray())
14+
: ReactElement { type Instance = C } = {
15+
16+
if (LinkingInfo.developmentMode || ref != null) {
17+
if (ref != null)
18+
props.asInstanceOf[js.Dynamic].updateDynamic("ref")(ref)
19+
if (key != null)
20+
props
21+
.asInstanceOf[js.Dynamic]
22+
.updateDynamic("key")(key.asInstanceOf[js.Any])
23+
React
24+
.createElement(ctor, props, children: _*)
25+
.asInstanceOf[ReactElement { type Instance = C }]
26+
} else { // https://babeljs.io/docs/plugins/transform-react-inline-elements/
27+
if (children.length == 1) {
28+
props
29+
.asInstanceOf[js.Dynamic]
30+
.updateDynamic("children")(children(0).asInstanceOf[js.Any])
31+
} else if (children.length > 1)
32+
props
33+
.asInstanceOf[js.Dynamic]
34+
.updateDynamic("children")(js.Array(children: _*))
35+
js.Dynamic
36+
.literal(
37+
`$$typeof` = js.Dynamic.global
38+
.selectDynamic("REACT_ELEMENT_TYPE"),
39+
`type` = ctor,
40+
props = props,
41+
key =
42+
if (key != null) "" + key
43+
else key.asInstanceOf[js.Any]
44+
)
45+
.asInstanceOf[ReactElement { type Instance = C }]
46+
}
47+
48+
}
49+
50+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package sri.core
2+
3+
import scala.scalajs.js.|
4+
import scala.scalajs.{LinkingInfo, js}
5+
6+
object CreateElementJSNoInline {
7+
8+
@inline
9+
def apply[C <: ReactClass](ctor: C,
10+
props: js.Any,
11+
key: String | Int = null,
12+
ref: C => Unit = null,
13+
children: js.Array[ReactNode] = emptyJSArray())
14+
: ReactElement { type Instance = C } = {
15+
16+
if (ref != null)
17+
props.asInstanceOf[js.Dynamic].updateDynamic("ref")(ref)
18+
if (key != null)
19+
props
20+
.asInstanceOf[js.Dynamic]
21+
.updateDynamic("key")(key.asInstanceOf[js.Any])
22+
React
23+
.createElement(ctor, props, children: _*)
24+
.asInstanceOf[ReactElement { type Instance = C }]
25+
}
26+
27+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package sri.core
2+
3+
import scala.scalajs.js
4+
import scala.scalajs.js.{ConstructorTag, |}
5+
6+
object CreateElementNoProps {
7+
8+
@inline
9+
def apply[C <: ReactScalaClass { type Props = Unit }: ConstructorTag](
10+
key: String | Int = null,
11+
ref: C => Unit = null,
12+
children: js.Array[ReactNode] = emptyJSArray())
13+
: ReactElement { type Instance = C } = {
14+
CreateElementJS(
15+
js.constructorTag[C].constructor.asInstanceOf[C],
16+
js.Dynamic.literal(sprops = ()),
17+
key = key,
18+
ref = ref,
19+
children
20+
)
21+
}
22+
23+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package sri.core
2+
3+
import scala.scalajs.js
4+
import scala.scalajs.js.{ConstructorTag, |}
5+
6+
object CreateFunctionElement {
7+
8+
@inline
9+
def apply[C <: ReactClass, P](func: P => ReactElement { type Instance = C }, props: P, key: String | Int = null)
10+
: ReactElement { type Instance = C } = {
11+
CreateElementJS(
12+
(((props: JSProps { type ScalaProps = P }) => func(props.sprops)): js.Function)
13+
.asInstanceOf[C],
14+
JSProps(sprops = props),
15+
key = key,
16+
children = js.Array()
17+
)
18+
}
19+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package sri.core
2+
3+
import scala.scalajs.js
4+
import scala.scalajs.js.|
5+
6+
object CreateFunctionElementNoProps {
7+
8+
@inline
9+
def apply[C <: ReactClass](func: () => ReactElement { type Instance = C }, key: String | Int = null)
10+
: ReactElement { type Instance = C } = {
11+
CreateElementJS(
12+
(((props: JSProps { type ScalaProps = Unit }) => func()): js.Function)
13+
.asInstanceOf[C],
14+
js.Dynamic.literal(),
15+
key = key,
16+
children = js.Array()
17+
)
18+
}
19+
}

0 commit comments

Comments
 (0)