Tunnel Plugins types

Any plugin that provides tunnel functionality should implement defineProviderand startTunnel

interface HookReturnsPerPlugin {
    public_command_metadata: {
        options: { [key: string]: never };
        pluginReturns: {
            "@shopify/app": Partial<AppSpecificMonorailFields>;
            [pluginName: string]: JsonMap;
        };
    };
    sensitive_command_metadata: {
        options: { [key: string]: never };
        pluginReturns: {
            "@shopify/app": Partial<
                PickByPrefix<
                    {
                        app_name?: Optional<string>;
                        args: string;
                        cmd_all_environment_flags?: Optional<string>;
                        cmd_dev_tunnel_custom?: Optional<string>;
                        env_plugin_installed_all?: Optional<string>;
                        error_message?: Optional<string>;
                        metadata?: Optional<string>;
                        store_fqdn?: Optional<string>;
                    },
                    "app_",
                    never,
                >,
            >;
            [pluginName: string]: JsonMap;
        };
    };
    tunnel_provider: {
        options: { [key: string]: never };
        pluginReturns: { [pluginName: string]: { name: string } };
    };
    tunnel_start: {
        options: { port: number; provider: string };
        pluginReturns: { [key: string]: Result<TunnelClient, TunnelError> };
    };
    [hookName: string]: {
        options: { [key: string]: unknown };
        pluginReturns: { [key: string]: unknown };
    };
}

Hierarchy (View Summary)

Indexable

  • [hookName: string]: {
        options: { [key: string]: unknown };
        pluginReturns: { [key: string]: unknown };
    }

Properties

public_command_metadata: {
    options: { [key: string]: never };
    pluginReturns: {
        "@shopify/app": Partial<AppSpecificMonorailFields>;
        [pluginName: string]: JsonMap;
    };
}
sensitive_command_metadata: {
    options: { [key: string]: never };
    pluginReturns: {
        "@shopify/app": Partial<
            PickByPrefix<
                {
                    app_name?: Optional<string>;
                    args: string;
                    cmd_all_environment_flags?: Optional<string>;
                    cmd_dev_tunnel_custom?: Optional<string>;
                    env_plugin_installed_all?: Optional<string>;
                    error_message?: Optional<string>;
                    metadata?: Optional<string>;
                    store_fqdn?: Optional<string>;
                },
                "app_",
                never,
            >,
        >;
        [pluginName: string]: JsonMap;
    };
}
tunnel_provider: {
    options: { [key: string]: never };
    pluginReturns: { [pluginName: string]: { name: string } };
}
tunnel_start: {
    options: { port: number; provider: string };
    pluginReturns: { [key: string]: Result<TunnelClient, TunnelError> };
}