/+
    This file is part of Reloaded Vibes.
    Copyright (c) 2019  0xEAB

    Distributed under the Boost Software License, Version 1.0.
       (See accompanying file LICENSE_1_0.txt or copy at
             https://www.boost.org/LICENSE_1_0.txt)
 +/
module reloadedvibes.script;

import std.conv : to;
import reloadedvibes.utils;

@safe pure:

string buildScript(Socket socketRV, bool quiet = false) nothrow
{
    immutable msg = ((quiet) ? buildQuietVarLine!true() : buildQuietVarLine!false());
    return "(function(){" ~ socketRV.buildURLVarLine() ~ msg ~ scriptBody ~ "})();";
}

string buildURLVarLine(Socket socketRV) nothrow
{
    return "let rvURL = 'ws://" ~ socketRV.toString ~ "/reloaded-vibes.ws';";
}

string buildQuietVarLine(bool quiet)()
{
    return "let rvQuiet = " ~ ((quiet) ? "true" : "false") ~ ";";
}

string buildScriptURL(Socket socketRV) nothrow
{
    return "http://" ~ socketRV.toString ~ "/reloaded-vibes.js";
}

string buildScriptLoaderHTML(Socket socketRV) nothrow
{
    return `<script src="` ~ socketRV.buildScriptURL() ~ `"></script>`;
}

private:

enum scriptBody = import("script.js");