Packages

Reactive global state for Elixir apps

Current section

Files

Jump to
dustlayer lib dust.ex
Raw

lib/dust.ex

defmodule Dust do
@moduledoc "Dust SDK — reactive global map client."
@cloud_url "wss://dustlayer.io/ws/sync"
@doc """
Returns the WebSocket URL for Dust's hosted cloud service at dustlayer.io.
Use as the `:url` option when starting the supervisor against cloud:
{Dust, stores: ["acme/site"], url: Dust.cloud_url(), token: token, cache: ...}
"""
def cloud_url, do: @cloud_url
defmacro __using__(opts) do
quote do
use Dust.Instance, unquote(opts)
end
end
def child_spec(opts) do
%{
id: __MODULE__,
start: {Dust.Supervisor, :start_link, [opts]},
type: :supervisor
}
end
defdelegate get(store, path), to: Dust.SyncEngine
defdelegate get_many(store, paths), to: Dust.SyncEngine
defdelegate entry(store, path), to: Dust.SyncEngine
defdelegate put(store, path, value), to: Dust.SyncEngine
defdelegate put(store, path, value, opts), to: Dust.SyncEngine
defdelegate delete(store, path), to: Dust.SyncEngine
defdelegate delete(store, path, opts), to: Dust.SyncEngine
defdelegate merge(store, path, map), to: Dust.SyncEngine
defdelegate merge(store, path, map, opts), to: Dust.SyncEngine
defdelegate increment(store, path, delta \\ 1), to: Dust.SyncEngine
defdelegate increment(store, path, delta, opts), to: Dust.SyncEngine
defdelegate add(store, path, member), to: Dust.SyncEngine
defdelegate add(store, path, member, opts), to: Dust.SyncEngine
defdelegate remove(store, path, member), to: Dust.SyncEngine
defdelegate remove(store, path, member, opts), to: Dust.SyncEngine
defdelegate put_file(store, path, source_path), to: Dust.SyncEngine
defdelegate put_file(store, path, source_path, opts), to: Dust.SyncEngine
defdelegate on(store, pattern, callback, opts \\ []), to: Dust.SyncEngine
defdelegate watch(store, pattern, callback, opts \\ []), to: Dust.SyncEngine, as: :on
defdelegate off(store, ref), to: Dust.SyncEngine
defdelegate unsubscribe(store, ref), to: Dust.SyncEngine, as: :off
defdelegate enum(store, pattern), to: Dust.SyncEngine
defdelegate enum(store, pattern, opts), to: Dust.SyncEngine
defdelegate range(store, from, to, opts \\ []), to: Dust.SyncEngine
defdelegate status(store), to: Dust.SyncEngine
end