miniflare

Types

A fetcher is the class that is a worker This type signature cannot be represented in Gleam The best effort might be to assume fetch, connect, queue and scheduled And additionally offer a to dynamic or rpc interface https://workers-types.pages.dev/experimental/#Fetcher

pub type Fetcher
pub type Log
pub type LogLevel {
  NONE
  ERROR
  WARN
  INFO
  DEBUG
  VERBOSE
}

Constructors

  • NONE
  • ERROR
  • WARN
  • INFO
  • DEBUG
  • VERBOSE
pub type Miniflare {
  Miniflare(opts: MiniflareOptions)
}

Constructors

pub type MiniflareOptions {
  MiniflareOptions(
    shared_options: SharedOptions,
    worker_options: List(WorkerOptions),
  )
}

Constructors

pub type ModuleDefinition {
  ModuleDefinition(
    type_: ModuleRuleType,
    path: String,
    contents: option.Option(String),
  )
}

Constructors

pub type ModuleRule {
  ModuleRule(
    type_: ModuleRuleType,
    include: List(String),
    fallthrough: option.Option(Bool),
  )
}

Constructors

pub type ModuleRuleType {
  ESModule
  CommonJS
  Text
  Data
  CompiledWasm
}

Constructors

  • ESModule
  • CommonJS
  • Text
  • Data
  • CompiledWasm
pub type Modules {
  ESModules
  ServiceWorkerFormat
}

Constructors

  • ESModules
  • ServiceWorkerFormat
pub type Persistence {
  PersistenceBool(Bool)
  PersistenceString(String)
  PersistenceUndefined
}

Constructors

  • PersistenceBool(Bool)
  • PersistenceString(String)
  • PersistenceUndefined
pub type QueueConsumerOptions {
  QueueConsumerOptions(
    max_batch_size: option.Option(Int),
    max_batch_timeout: option.Option(Int),
    max_retries: option.Option(Int),
    dead_letter_queue: option.Option(String),
    retry_delay: option.Option(Int),
  )
}

Constructors

pub type QueueProducerOptions {
  QueueProducerOptions(
    queue_name: String,
    delivery_delay: option.Option(Int),
  )
}

Constructors

  • QueueProducerOptions(
      queue_name: String,
      delivery_delay: option.Option(Int),
    )
pub type SharedOptions {
  SharedOptions(
    root_path: option.Option(String),
    host: option.Option(String),
    port: option.Option(Int),
    https: option.Option(Bool),
    https_key: option.Option(String),
    https_key_path: option.Option(String),
    https_cert: option.Option(String),
    https_cert_path: option.Option(String),
    inspector_port: option.Option(Int),
    verbose: option.Option(Bool),
    log: option.Option(Log),
    upstream: option.Option(String),
    live_reload: option.Option(Bool),
    cache_persist: option.Option(Persistence),
    durable_objects_persist: option.Option(Persistence),
    kv_persist: option.Option(Persistence),
    r2_persist: option.Option(Persistence),
    d1_persist: option.Option(Persistence),
    workflows_persist: option.Option(Persistence),
  )
}

Constructors

pub type WorkerOptions {
  WorkerOptions(
    name: option.Option(String),
    root_path: option.Option(String),
    script: option.Option(String),
    script_path: option.Option(String),
    modules: Modules,
    modules_root: option.Option(String),
    compatibility_date: option.Option(String),
    bindings: dict.Dict(String, json.Json),
    durable_objects: dict.Dict(String, String),
    r2_buckets: dict.Dict(String, String),
    queue_producers: dict.Dict(String, QueueProducerOptions),
    queue_consumers: dict.Dict(String, QueueConsumerOptions),
  )
}

Constructors

Values

pub fn default() -> SharedOptions
pub fn dispatch_fetch_raw(
  miniflare: Miniflare,
  request: fetch.FetchRequest,
) -> promise.Promise(
  Result(fetch.FetchResponse, fetch.FetchError),
)

Takes a request as defined by undici. https://github.com/cloudflare/workers-sdk/blob/c7de92e8702da59fd0858147192c2a70abfb35e9/packages/miniflare/src/http/request.ts#L1-L5

undici fetch implement Web fetch https://github.com/nodejs/undici?tab=readme-ov-file#undicifetchinput-init-promise

pub fn es(
  compatibility_date: String,
  path: String,
) -> WorkerOptions
pub fn fetch(
  miniflare: Miniflare,
  request: request.Request(String),
) -> promise.Promise(
  Result(response.Response(String), fetch.FetchError),
)
pub fn get_bindings(
  miniflare: Miniflare,
  worker_name: option.Option(String),
) -> promise.Promise(dynamic.Dynamic)
pub fn get_d1_database(
  miniflare: Miniflare,
  binding_name: String,
  worker_name: option.Option(String),
) -> promise.Promise(d1.Database)
pub fn get_durable_object_namespace(
  miniflare: Miniflare,
  binding_name: String,
  worker_name: option.Option(String),
) -> promise.Promise(durable_object.Namespace)
pub fn get_r2_bucket(
  miniflare: Miniflare,
  binding_name: String,
  worker_name: option.Option(String),
) -> promise.Promise(r2.Bucket)
pub fn get_worker(
  miniflare: Miniflare,
  worker_name: option.Option(String),
) -> promise.Promise(Fetcher)
pub fn log(
  level: LogLevel,
  prefix: option.Option(String),
  suffix: option.Option(String),
) -> Log
pub fn modules_to_arg(modukes: Modules) -> json.Json
pub fn new(
  shared_options: SharedOptions,
  worker_options: List(WorkerOptions),
) -> Miniflare
pub fn no_op_log() -> Log
pub fn ready(miniflare: Miniflare) -> promise.Promise(String)
pub fn set_options(
  miniflare: Miniflare,
  opts: MiniflareOptions,
) -> Nil
pub fn unsafe_to_json(any: a) -> json.Json
Search Document