Skip to content

Instantly share code, notes, and snippets.

View japgolly's full-sized avatar
☠️
Non-existant

David Barri japgolly

☠️
Non-existant
View GitHub Profile
@japgolly
japgolly / DependencyLib.scala
Last active September 24, 2015 18:16
SBT JVM/JS DependencyLib
import sbt._
import scala.languageFeature._
import org.scalajs.sbtplugin.ScalaJSPlugin
import ScalaJSPlugin.autoImport._
object DependencyLib {
sealed trait HasDialect
sealed trait HasJvm extends HasDialect
sealed trait HasJs extends HasDialect
package japgolly.scalajs.react
import scala.concurrent.duration.Duration
import scala.concurrent.{ExecutionContext, Await, Future}
object Blah {
private val DefaultMaxWait = Duration.Inf
implicit class FutureExt[A](val f: Future[A]) {
@japgolly
japgolly / AutoCompleteFeature.scala
Created February 3, 2016 00:05
scalajs-react + AutoComplete
package shipreq.webapp.client.feature
import japgolly.scalajs.react._
import japgolly.scalajs.react.extra._
import org.scalajs.dom.html
import scala.scalajs.js
import shipreq.base.util.ScalaExt.EndoFn
import shipreq.base.util.Vector1
import shipreq.webapp.client.jsfacade.TextComplete
import shipreq.webapp.client.lib.TextEditor
{-# LANGUAGE TypeOperators #-}
module Main where
import Data.Bifunctor (first)
type (~>?) s a = (Either a s) -> (Either s a)
data Inter s a = Inter { getE :: s ~>? a
, reverseGetE :: a ~>? s }
composeS :: (a ~>? b) -> (b ~>? c) -> (a ~>? c)
@japgolly
japgolly / InBrowserTesting.scala
Last active November 18, 2016 22:35
SBT + Scala.JS + Selenium
import sbt._
import sbt.Keys._
import org.scalajs.sbtplugin.ScalaJSPlugin.autoImport._
import org.scalajs.sbtplugin.cross.CrossProject
import org.scalajs.sbtplugin.ScalaJSPluginInternal._
import org.scalajs.jsenv.selenium._
object InBrowserTesting {
lazy val testAll = TaskKey[Unit]("test-all", "Run tests in all test platforms.")
import scala.util.Try
import scalajs.js.Dynamic.global
object JsEnvUtils {
/** Sample (real) values are:
* - Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1
* - Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0
* - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36
*/
import japgolly.scalajs.react._
import scalajs.js.{undefined, Dictionary, Dynamic, Object, UndefOr}
import shipreq.base.util.Memo
import ReactCollapse._
/**
* Component-wrapper for collapse animation with react-motion for elements with variable (and dynamic) height.
*
* https://github.com/nkbt/react-collapse
*/
@japgolly
japgolly / keybase.md
Created September 3, 2016 13:07
keybase.md

Keybase proof

I hereby claim:

  • I am japgolly on github.
  • I am japgolly (https://keybase.io/japgolly) on keybase.
  • I have a public key ASA2mh3TjdvZuvSBDifylawPHaTJDuBE4NQhXtZR8vhF4Ao

To claim this, I am signing this object:

@japgolly
japgolly / setup.sh
Last active April 27, 2017 07:06
NodeJS + Scala.JS
npm config set prefix ~/.npm
npm install -g jsdom source-map-support yarn
export NODE_PATH="$(npm config get prefix)"/lib/node_modules
export PATH="$PATH:$(npm config get prefix)/bin"
@japgolly
japgolly / blog-201706.scala
Created June 5, 2017 10:44
blog-201706.scala
sealed trait Field {
type Value
def fold[F[_]](f: Field.Fold[F]): F[Value]
}
object Field {
case object Name extends Field {
override type Value = String
override def fold[F[_]](f: Field.Fold[F]): F[Value] = f.name(this)
}