33 lines
909 B
D
33 lines
909 B
D
import handy_http_transport;
|
|
import slf4d;
|
|
import slf4d.default_provider;
|
|
|
|
import api_mapping;
|
|
|
|
struct AppConfig {
|
|
ushort port;
|
|
string webOrigin;
|
|
}
|
|
|
|
void main() {
|
|
const AppConfig config = readConfig();
|
|
auto provider = new DefaultProvider(Levels.TRACE);
|
|
configureLoggingProvider(provider);
|
|
infoF!"Loaded app config: port = %d, webOrigin = %s"(config.port, config.webOrigin);
|
|
|
|
HttpTransport transport = new TaskPoolHttp1Transport(mapApiHandlers(config.webOrigin), config.port);
|
|
transport.start();
|
|
}
|
|
|
|
AppConfig readConfig() {
|
|
import std.file : exists, readText;
|
|
import std.json;
|
|
import std.conv : to;
|
|
// Local dev environment if no config is given.
|
|
if (!exists("finnow-api-config.json")) {
|
|
return AppConfig(8080, "http://localhost:5173");
|
|
}
|
|
JSONValue obj = parseJSON(readText("finnow-api-config.json"));
|
|
return AppConfig(obj.object["port"].integer.to!ushort, obj.object["webOrigin"].str);
|
|
}
|