Gjallarhorn


Signal

Namespace: Gjallarhorn

Provides mechanisms for working with signals

Nested types and modules

ModuleDescription
Subscription

Functions and values

Function or valueDescription
both a b
Signature: a:ISignal<bool> -> b:ISignal<bool> -> ISignal<bool>

Creates a signal on two bools that is true if both inputs are true

cache provider
Signature: provider:ISignal<'a> -> ISignal<'a>
Type parameters: 'a

Create a cached signal over a provider

choose fn defaultValue provider
Signature: fn:('a -> 'b option) -> defaultValue:'b -> provider:ISignal<'a> -> ISignal<'b>
Type parameters: 'a, 'b

Returns a signal which is the projection of the input signal using the given function. All observations which return Some get mapped into the new value. The defaultValue is used if the input signal's value returns None in the projection

constant value
Signature: value:'a -> ISignal<'a>
Type parameters: 'a

Create a signal over a constant, immutable value

either a b
Signature: a:ISignal<bool> -> b:ISignal<bool> -> ISignal<bool>

Creates a signal on two bools that is true if either input is true

equal a b
Signature: a:ISignal<'b> -> b:ISignal<'b> -> ISignal<bool>
Type parameters: 'b

Creates a signal on two values that is true if both inputs are equal

filter predicate defaultValue provider
Signature: predicate:('a -> bool) -> defaultValue:'a -> provider:ISignal<'a> -> ISignal<'a>
Type parameters: 'a

Filters the signal, so only values matching the predicate are cached and propogated onwards. If the provider's value doesn't match the predicate, the resulting signal begins with the provided defaultValue.

filterBy condition defaultValue input
Signature: condition:ISignal<bool> -> defaultValue:'b -> input:ISignal<'b> -> ISignal<'b>
Type parameters: 'b

Filters the signal by using a separate bool signal If the condition's Value is initially false, the resulting signal begins with the provided defaultValue.

fromObservable initialValue observable
Signature: initialValue:'a -> observable:IObservable<'a> -> ISignal<'a>
Type parameters: 'a

Create a signal from an observable. As an ISignal always provides a value, the initial value to use upon creation is required.

get signal
Signature: signal:ISignal<'a> -> 'a
Type parameters: 'a

Gets the current value associated with the signal

iter f signal
Signature: f:('a -> unit) -> signal:ISignal<'a> -> unit
Type parameters: 'a

Executes a function for a signal value.

map mapping provider
Signature: mapping:('a -> 'b) -> provider:ISignal<'a> -> ISignal<'b>
Type parameters: 'a, 'b

Transforms a signal value by using a specified mapping function.

map10 f v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
Signature: f:('l -> 'm -> 'n -> 'o -> 'p -> 'q -> 'r -> 's -> 't -> 'a1 -> 'a2) -> v1:ISignal<'l> -> v2:ISignal<'m> -> v3:ISignal<'n> -> v4:ISignal<'o> -> v5:ISignal<'p> -> v6:ISignal<'q> -> v7:ISignal<'r> -> v8:ISignal<'s> -> v9:ISignal<'t> -> v10:ISignal<'a1> -> ISignal<'a2>
Type parameters: 'l, 'm, 'n, 'o, 'p, 'q, 'r, 's, 't, 'a1, 'a2

Combines ten signals using a specified mapping function

map2 mapping provider1 provider2
Signature: mapping:('a -> 'b -> 'c) -> provider1:ISignal<'a> -> provider2:ISignal<'b> -> ISignal<'c>
Type parameters: 'a, 'b, 'c

Combines two signals using a specified mapping function

map3 f v1 v2 v3
Signature: f:('a -> 'b -> 'c -> 'd) -> v1:ISignal<'a> -> v2:ISignal<'b> -> v3:ISignal<'c> -> ISignal<'d>
Type parameters: 'a, 'b, 'c, 'd

Combines three signals using a specified mapping function

map4 f v1 v2 v3 v4
Signature: f:('a -> 'b -> 'c -> 'd -> 'e) -> v1:ISignal<'a> -> v2:ISignal<'b> -> v3:ISignal<'c> -> v4:ISignal<'d> -> ISignal<'e>
Type parameters: 'a, 'b, 'c, 'd, 'e

Combines four signals using a specified mapping function

map5 f v1 v2 v3 v4 v5
Signature: f:('a -> 'b -> 'c -> 'd -> 'e -> 'f) -> v1:ISignal<'a> -> v2:ISignal<'b> -> v3:ISignal<'c> -> v4:ISignal<'d> -> v5:ISignal<'e> -> ISignal<'f>
Type parameters: 'a, 'b, 'c, 'd, 'e, 'f

Combines five signals using a specified mapping function

map6 f v1 v2 v3 v4 v5 v6
Signature: f:('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g) -> v1:ISignal<'a> -> v2:ISignal<'b> -> v3:ISignal<'c> -> v4:ISignal<'d> -> v5:ISignal<'e> -> v6:ISignal<'f> -> ISignal<'g>
Type parameters: 'a, 'b, 'c, 'd, 'e, 'f, 'g

Combines six signals using a specified mapping function

map7 f v1 v2 v3 v4 v5 v6 v7
Signature: f:('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'h) -> v1:ISignal<'a> -> v2:ISignal<'b> -> v3:ISignal<'c> -> v4:ISignal<'d> -> v5:ISignal<'e> -> v6:ISignal<'f> -> v7:ISignal<'g> -> ISignal<'h>
Type parameters: 'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h

Combines seven signals using a specified mapping function

map8 f v1 v2 v3 v4 v5 v6 v7 v8
Signature: f:('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'h -> 'i) -> v1:ISignal<'a> -> v2:ISignal<'b> -> v3:ISignal<'c> -> v4:ISignal<'d> -> v5:ISignal<'e> -> v6:ISignal<'f> -> v7:ISignal<'g> -> v8:ISignal<'h> -> ISignal<'i>
Type parameters: 'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i

Combines eight signals using a specified mapping function

map9 f v1 v2 v3 v4 v5 v6 v7 v8 v9
Signature: f:('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'h -> 'i -> 'j) -> v1:ISignal<'a> -> v2:ISignal<'b> -> v3:ISignal<'c> -> v4:ISignal<'d> -> v5:ISignal<'e> -> v6:ISignal<'f> -> v7:ISignal<'g> -> v8:ISignal<'h> -> v9:ISignal<'i> -> ISignal<'j>
Type parameters: 'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j

Combines nine signals using a specified mapping function

mapAsync mapping initialValue provider
Signature: mapping:('a -> Async<'b>) -> initialValue:'b -> provider:ISignal<'a> -> ISignal<'b>
Type parameters: 'a, 'b

Transforms a signal value asynchronously by using a specified mapping function.

mapAsyncTracked (...)
Signature: mapping:('a -> Async<'b>) -> initialValue:'b -> tracker:IdleTracker -> provider:ISignal<'a> -> ISignal<'b>
Type parameters: 'a, 'b

Transforms a signal value asynchronously by using a specified mapping function. Execution status is reported through the specified IdleTracker

mapFunction f v
Signature: f:('c -> 'a -> 'b) -> v:ISignal<'c> -> 'a -> 'b
Type parameters: 'c, 'a, 'b

Maps a function from a signal containing a function, where the value is fetched on execution

mapOption10 (...)
Signature: f:('?7894 -> '?7895 -> '?7896 -> '?7897 -> '?7898 -> '?7899 -> '?7900 -> '?7901 -> '?7902 -> '?7903 -> '?7904) -> v1:ISignal<'?7894 option> -> v2:ISignal<'?7895 option> -> v3:ISignal<'?7896 option> -> v4:ISignal<'?7897 option> -> v5:ISignal<'?7898 option> -> v6:ISignal<'?7899 option> -> v7:ISignal<'?7900 option> -> v8:ISignal<'?7901 option> -> v9:ISignal<'?7902 option> -> v10:ISignal<'?7903 option> -> ISignal<'?7904 option>
Type parameters: '?7894, '?7895, '?7896, '?7897, '?7898, '?7899, '?7900, '?7901, '?7902, '?7903, '?7904

Combines ten signals of options using a specified mapping function

mapOption2 mapping provider1 provider2
Signature: mapping:('a -> 'b -> 'c) -> provider1:ISignal<'a option> -> provider2:ISignal<'b option> -> ISignal<'c option>
Type parameters: 'a, 'b, 'c

Combines two signals of options, such as validation results, using a specified mapping function If either is None, the result is None

mapOption3 f v1 v2 v3
Signature: f:('?7838 -> '?7839 -> '?7840 -> '?7841) -> v1:ISignal<'?7838 option> -> v2:ISignal<'?7839 option> -> v3:ISignal<'?7840 option> -> ISignal<'?7841 option>
Type parameters: '?7838, '?7839, '?7840, '?7841

Combines three signals of options using a specified mapping function

mapOption4 f v1 v2 v3 v4
Signature: f:('?7843 -> '?7844 -> '?7845 -> '?7846 -> '?7847) -> v1:ISignal<'?7843 option> -> v2:ISignal<'?7844 option> -> v3:ISignal<'?7845 option> -> v4:ISignal<'?7846 option> -> ISignal<'?7847 option>
Type parameters: '?7843, '?7844, '?7845, '?7846, '?7847

Combines four signals of options using a specified mapping function

mapOption5 f v1 v2 v3 v4 v5
Signature: f:('?7849 -> '?7850 -> '?7851 -> '?7852 -> '?7853 -> '?7854) -> v1:ISignal<'?7849 option> -> v2:ISignal<'?7850 option> -> v3:ISignal<'?7851 option> -> v4:ISignal<'?7852 option> -> v5:ISignal<'?7853 option> -> ISignal<'?7854 option>
Type parameters: '?7849, '?7850, '?7851, '?7852, '?7853, '?7854

Combines five signals of options using a specified mapping function

mapOption6 f v1 v2 v3 v4 v5 v6
Signature: f:('?7856 -> '?7857 -> '?7858 -> '?7859 -> '?7860 -> '?7861 -> '?7862) -> v1:ISignal<'?7856 option> -> v2:ISignal<'?7857 option> -> v3:ISignal<'?7858 option> -> v4:ISignal<'?7859 option> -> v5:ISignal<'?7860 option> -> v6:ISignal<'?7861 option> -> ISignal<'?7862 option>
Type parameters: '?7856, '?7857, '?7858, '?7859, '?7860, '?7861, '?7862

Combines six signals of options using a specified mapping function

mapOption7 f v1 v2 v3 v4 v5 v6 v7
Signature: f:('?7864 -> '?7865 -> '?7866 -> '?7867 -> '?7868 -> '?7869 -> '?7870 -> '?7871) -> v1:ISignal<'?7864 option> -> v2:ISignal<'?7865 option> -> v3:ISignal<'?7866 option> -> v4:ISignal<'?7867 option> -> v5:ISignal<'?7868 option> -> v6:ISignal<'?7869 option> -> v7:ISignal<'?7870 option> -> ISignal<'?7871 option>
Type parameters: '?7864, '?7865, '?7866, '?7867, '?7868, '?7869, '?7870, '?7871

Combines seven signals of options using a specified mapping function

mapOption8 f v1 v2 v3 v4 v5 v6 v7 v8
Signature: f:('?7873 -> '?7874 -> '?7875 -> '?7876 -> '?7877 -> '?7878 -> '?7879 -> '?7880 -> '?7881) -> v1:ISignal<'?7873 option> -> v2:ISignal<'?7874 option> -> v3:ISignal<'?7875 option> -> v4:ISignal<'?7876 option> -> v5:ISignal<'?7877 option> -> v6:ISignal<'?7878 option> -> v7:ISignal<'?7879 option> -> v8:ISignal<'?7880 option> -> ISignal<'?7881 option>
Type parameters: '?7873, '?7874, '?7875, '?7876, '?7877, '?7878, '?7879, '?7880, '?7881

Combines eight signals of options using a specified mapping function

mapOption9 f v1 v2 v3 v4 v5 v6 v7 v8 v9
Signature: f:('?7883 -> '?7884 -> '?7885 -> '?7886 -> '?7887 -> '?7888 -> '?7889 -> '?7890 -> '?7891 -> '?7892) -> v1:ISignal<'?7883 option> -> v2:ISignal<'?7884 option> -> v3:ISignal<'?7885 option> -> v4:ISignal<'?7886 option> -> v5:ISignal<'?7887 option> -> v6:ISignal<'?7888 option> -> v7:ISignal<'?7889 option> -> v8:ISignal<'?7890 option> -> v9:ISignal<'?7891 option> -> ISignal<'?7892 option>
Type parameters: '?7883, '?7884, '?7885, '?7886, '?7887, '?7888, '?7889, '?7890, '?7891, '?7892

Combines nine signals of options using a specified mapping function

merge a b
Signature: a:ISignal<'b> -> b:ISignal<'b> -> ISignal<'b>
Type parameters: 'b

Merges two signals into a single signal. The value from the second signal is used as the initial value of the result

not a
Signature: a:ISignal<bool> -> ISignal<bool>

Creates a signal over a bool value that negates the input

notEqual a b
Signature: a:ISignal<'b> -> b:ISignal<'b> -> ISignal<bool>
Type parameters: 'b

Creates a signal on two values that is true if both inputs are not equal

observeOn ctx signal
Signature: ctx:SynchronizationContext -> signal:ISignal<'a> -> ISignal<'a>
Type parameters: 'a

Creates a signal that schedules on a synchronization context

toFunction fs
Signature: fs:ISignal<('a -> 'b)> -> 'a -> 'b
Type parameters: 'a, 'b

Creates a function from a signal containing a function, where the value is fetched on execution

validate validator signal
Signature: validator:(ValidationCollector<'a> -> ValidationCollector<'b>) -> signal:ISignal<'a> -> IValidatedSignal<'a,'b>
Type parameters: 'a, 'b

Validates a signal with a validation chain

Fork me on GitHub