com.raquo.waypoint

This is the public API. Import com.raquo.waypoint or com.raquo.waypoint._

Attributes

Members list

Type members

Classlikes

class ContextRouteBuilder[Bundle, Page, Ctx, CtxArgs](encodeContext: Ctx => CtxArgs, decodeContext: CtxArgs => Ctx, contextPattern: QueryParameters[CtxArgs, DummyError], pageFromBundle: Bundle => Page, contextFromBundle: Bundle => Ctx, bundleFromPageWithContext: (Page, Ctx) => Bundle)(implicit evidence$1: ClassTag[Bundle], evidence$2: ClassTag[Ctx])

A builder for routes with context.

A builder for routes with context.

Context, in this context (heheh), is a type that encodes a set of query params that is shared between the routes created by this builder.

For example, your Laminar web app might have a big documentation section with many routes, but where every route is expected to have a "lang" query param to indicate the selected language and a "version" param to indicate the product version (unrealistic doc standards, I know).

So, you could add these two params to every page type that needs them and to every route for those page types, but that could be annoying. So instead, you could create a ContextRouteBuilder which will let you specify the necessary types / conversions / patterns only once.

See ContextRouteBuilderSpec for a concrete example.

Type parameters

Bundle
  • The type of pages (including the context part) handled by the routes produced by this builder. A bundle consists of a route-specific Page, and a Context shared by all routes by this builder. In the simplest case, imagine case class Bundle(p: Page, ctx: Context)
Ctx
  • The part of the Bundle shared by all routes made by this builder, In the simplest case, imagine case class SharedParams(lang: Option[String], version: Option[String])
Page
  • The base type for the route-specific parts of the Bundle

Attributes

Supertypes
class Object
trait Matchable
class Any
class Route[Page, Args]

Encoding and decoding are partial functions. Their partial-ness should be symmetrical, otherwise you'll end up with a route that can parse a URL into a Page but can't encode the page into the same URL (or vice versa)

Encoding and decoding are partial functions. Their partial-ness should be symmetrical, otherwise you'll end up with a route that can parse a URL into a Page but can't encode the page into the same URL (or vice versa)

Type parameters

Args
  • Type of data saved in the URL for pages matched by this route Note: the Route might match only a subset of args of this type.
Page
  • Types of pages that this Route is capable of matching. Note: the Route might match only a subset of pages of this type.

Value parameters

basePath
  • This string is inserted after origin. If not empty, must start with /.
decodePF
  • Decode Args into Page, if args are valid
matchEncodePF
  • Match Any to Page, and if successful, encode it into Args

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
object Route

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
Route.type
object Utils

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Utils.type
class Waypoint[PathErr, QueryErr, FragErr](val pathError: PathMatchingError[PathErr], val queryError: ParamMatchingError[QueryErr], val fragmentError: FragmentMatchingError[FragErr]) extends PathSegmentImpl[PathErr], QueryParametersImpl[QueryErr], FragmentImpl[FragErr]

Attributes

Supertypes
trait FragmentImpl[FragErr]
trait QueryParametersImpl[QueryErr]
trait PathSegmentImpl[PathErr]
class Object
trait Matchable
class Any
Show all

Types

type FragmentPatternArgs[PathArgs, QueryArgs, FragmentArgs] = PathQueryFragmentMatching[PathArgs, QueryArgs, FragmentArgs]

A bundle of path args, query param args, and fragment args

A bundle of path args, query param args, and fragment args

Attributes

type PatternArgs[PathArgs, QueryArgs] = UrlMatching[PathArgs, QueryArgs]

A bundle of path args and query param args

A bundle of path args and query param args

Attributes

Value members

Concrete methods

def FragmentPatternArgs: PathQueryFragmentMatching.type
def PatternArgs: UrlMatching.type

Inherited methods

final def emptyFragment: Fragment[Unit, E]

Returns a Fragment imposing that the URL does not contain any fragment.

Returns a Fragment imposing that the URL does not contain any fragment.

Note that a URL ending with "#" is considered having no fragment.

Attributes

Inherited from:
FragmentImpl
final def fragment[T](implicit fromString: FromString[T, DummyError], printer: Printer[T]): Fragment[T, E]

Returns a Fragment matching an element of type T. If the fragment is missing, it fails with a missing fragment error.

Returns a Fragment matching an element of type T. If the fragment is missing, it fails with a missing fragment error.

Attributes

Inherited from:
FragmentImpl
def listParam[Q](paramName: String)(implicit fromString: FromString[Q, DummyError], printer: Printer[Q]): QueryParameters[List[Q], A]

Attributes

Inherited from:
QueryParametersImpl
final def maybeFragment[T](implicit fromString: FromString[T, DummyError], printer: Printer[T]): Fragment[Option[T], E]

Returns a Fragment matching an element of type T. If the fragment is missing, it succeeds with None.

Returns a Fragment matching an element of type T. If the fragment is missing, it succeeds with None.

Attributes

Inherited from:
FragmentImpl
def oneOf[T](t: T, ts: T*)(implicit fromString: FromString[T, DummyError], printer: Printer[T]): PathSegment[Unit, A]

Attributes

Inherited from:
PathSegmentImpl
def param[Q](paramName: String)(implicit fromString: FromString[Q, DummyError], printer: Printer[Q]): QueryParameters[Q, A]

Attributes

Inherited from:
QueryParametersImpl
def segment[T](implicit fromString: FromString[T, DummyError], printer: Printer[T]): PathSegment[T, A]

Attributes

Inherited from:
PathSegmentImpl

Inherited fields

lazy val endOfSegments: PathSegment[Unit, DummyError]

Attributes

Inherited from:
PathSegmentImpl
val ignore: QueryParameters[Unit, DummyError]

Attributes

Inherited from:
QueryParametersImpl
lazy val noMatch: PathSegment[Unit, DummyError]

Attributes

Inherited from:
PathSegmentImpl
val remainingSegments: PathSegment[List[String], DummyError]

Attributes

Inherited from:
PathSegmentImpl
val root: PathSegment[Unit, DummyError]

Attributes

Inherited from:
PathSegmentImpl

Deprecated and Inherited fields

val empty: QueryParameters[Unit, DummyError]

Attributes

Deprecated
[Since version 0.3.0]
Inherited from:
QueryParametersImpl

Implicits

Inherited implicits

final implicit def asFragment[T](t: T)(implicit fromString: FromString[T, DummyError], printer: Printer[T], classTag: ClassTag[T]): Fragment[Unit, E]

Attributes

Inherited from:
FragmentImpl
implicit def unaryPathSegment[T](t: T)(implicit fromString: FromString[T, DummyError], printer: Printer[T]): PathSegment[Unit, A]

Attributes

Inherited from:
PathSegmentImpl