subgraph-mock 0.2.1

A standalone mock subgraph server designed to be placed behind a supergraph for testing.
Documentation
use clap::Parser;
use std::panic::set_hook;
use subgraph_mock::{Args, mock_server_loop};
use tracing::error;
use tracing_subscriber::{
    filter::{EnvFilter, LevelFilter},
    fmt,
    prelude::*,
};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    tracing_subscriber::registry()
        .with(fmt::layer().compact().with_target(false))
        .with(
            EnvFilter::builder()
                .with_default_directive(LevelFilter::INFO.into())
                .from_env_lossy(),
        )
        .try_init()
        .expect("unable to set a global tracing subscriber");

    set_hook(Box::new(|panic| {
        if let Some(loc) = panic.location() {
            error!(
                message=%panic,
                panic.file=loc.file(),
                panic.line=loc.line(),
                panic.column=loc.column()
            );
        } else {
            error!(message=%panic);
        }
    }));

    let (port, state) = Args::parse().init()?;
    mock_server_loop(port, state).await
}