summary refs log tree commit diff
path: root/ReferenceClientProxyImplementation/Patches/Implementations/HTMLPatches/GlobalEnvPatch.cs
blob: dc54850303e033f649b666866ea7b5364a7d644c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System.Text;
using System.Text.RegularExpressions;
using ReferenceClientProxyImplementation.Configuration;

namespace ReferenceClientProxyImplementation.Patches.Implementations.HTMLPatches;

public class GlobalEnvPatch(ProxyConfiguration config) : IPatch {
    public int GetOrder() => 1;

    public string GetName() => "Patch GLOBAL_ENV";
    public bool Applies(string relativeName, byte[] content) => relativeName is "app.html" or "developers.html" or "popout.html";

    public async Task<byte[]> Execute(string _, byte[] content) {
        var stringContent = Encoding.UTF8.GetString(content);

        foreach(var (key, value) in config.TestClient.GlobalEnv) {
            stringContent = new Regex($"{key}: \".*?\"").Replace(stringContent, $"{key}: \"{value}\"");
        }
        
        return Encoding.UTF8.GetBytes(stringContent);
    }
}